Commit f3c8b12c authored by Izol's avatar Izol

simplify phase #1

- takeoutpagedenom on back
- added denom in homepage
- added button switch
- added page qris
- handle switch button denom to show qris
- handle tap activation
- handle launcher
- handle layout home page
parent b3caf093
...@@ -163,6 +163,7 @@ class MainActivity : MethodChannel.MethodCallHandler, FlutterActivity(), MifareT ...@@ -163,6 +163,7 @@ class MainActivity : MethodChannel.MethodCallHandler, FlutterActivity(), MifareT
kUrlPrePaid!!, kUrlPrePaid!!,
) )
} }
else -> result.notImplemented()
} }
} }
...@@ -359,28 +360,82 @@ class MainActivity : MethodChannel.MethodCallHandler, FlutterActivity(), MifareT ...@@ -359,28 +360,82 @@ class MainActivity : MethodChannel.MethodCallHandler, FlutterActivity(), MifareT
.addLine() .addLine()
.addBlankSpace(10) .addBlankSpace(10)
.setAlign(Paint.Align.LEFT) .setAlign(Paint.Align.LEFT)
.addText("Tanggal..........................: " + sdf.format(timeNow)) .addText("Tanggal" ,false)
.setAlign(Paint.Align.CENTER)
.addText(":", false)
.setAlign(Paint.Align.RIGHT)
.addText(sdf.format(timeNow), true)
.addBlankSpace(10) .addBlankSpace(10)
.addText("No Transaksi................: $approvalCode") .setAlign(Paint.Align.LEFT)
.addText("No Transaksi", false)
.setAlign(Paint.Align.CENTER)
.addText(":",false)
.setAlign(Paint.Align.RIGHT)
.addText(approvalCode,true)
.addBlankSpace(10) .addBlankSpace(10)
.addText("No Kartu........................: " + ticket.cardNumber) .setAlign(Paint.Align.LEFT)
.addText("No Kartu",false)
.setAlign(Paint.Align.CENTER)
.addText(":",false)
.setAlign(Paint.Align.RIGHT)
.addText(ticket.cardNumber,true)
.addBlankSpace(10) .addBlankSpace(10)
.addText("Masa Berlaku...............: " + sdf.format(cardExpiry)) .setAlign(Paint.Align.LEFT)
.addText("Masa Berlaku", false)
.setAlign(Paint.Align.CENTER)
.addText(":", false)
.setAlign(Paint.Align.RIGHT)
.addText(sdf.format(cardExpiry),true)
.addBlankSpace(10) .addBlankSpace(10)
if (status == "Berhasil"){ if (status == "Berhasil"){
receiptLayout.addText("Saldo Awal...................: Rp" + formatDecimalToPrice(prevBalance.toDouble()).toString()) receiptLayout.setAlign(Paint.Align.LEFT)
.addText("Saldo Awal",false)
.setAlign(Paint.Align.CENTER)
.addText(":",false)
.setAlign(Paint.Align.RIGHT)
.addText("Rp" + formatDecimalToPrice(prevBalance.toDouble()).toString(),true)
.addBlankSpace(10) .addBlankSpace(10)
.addText("Isi Saldo.........................: Rp" + formatDecimalToPrice(denom.toDouble())) .setAlign(Paint.Align.LEFT)
.addText("Isi Saldo",false )
.setAlign(Paint.Align.CENTER)
.addText(":",false)
.setAlign(Paint.Align.RIGHT)
.addText("Rp" + formatDecimalToPrice(denom.toDouble()),true)
.addBlankSpace(10) .addBlankSpace(10)
.addText("Saldo Akhir....................: Rp" + formatDecimalToPrice(ticket.balance!!.toDouble())) .setAlign(Paint.Align.LEFT)
.addText("Saldo Akhir",false )
.setAlign(Paint.Align.CENTER)
.addText(":",false)
.setAlign(Paint.Align.RIGHT)
.addText("Rp" + formatDecimalToPrice(ticket.balance!!.toDouble()),true)
.addBlankSpace(10) .addBlankSpace(10)
.addText("Biaya Layanan..............: Rp" + formatDecimalToPrice(serviceCharge.toDouble()).toString()) .setAlign(Paint.Align.LEFT)
.addText("Biaya Layanan",false)
.setAlign(Paint.Align.CENTER)
.addText(":",false)
.setAlign(Paint.Align.RIGHT)
.addText("Rp" + formatDecimalToPrice(serviceCharge.toDouble()).toString(),true)
.addBlankSpace(10) .addBlankSpace(10)
.addText("Jumlah Bayar................: Rp" + formatDecimalToPrice(serviceChargeAmount.toDouble()).toString()) .setAlign(Paint.Align.LEFT)
.addText("Jumlah Bayar",false)
.setAlign(Paint.Align.CENTER)
.addText(":",false)
.setAlign(Paint.Align.RIGHT)
.addText("Rp" + formatDecimalToPrice(serviceChargeAmount.toDouble()).toString(),true)
.addBlankSpace(10) .addBlankSpace(10)
.addText("Metode Bayar...............: $metodeBayar") .setAlign(Paint.Align.LEFT)
.addText("Metode Bayar",false)
.setAlign(Paint.Align.CENTER)
.addText(":",false)
.setAlign(Paint.Align.RIGHT)
.addText(metodeBayar,true)
.addBlankSpace(10) .addBlankSpace(10)
.addText("Status.............................: $status") .setAlign(Paint.Align.LEFT)
.addText("Status",false)
.setAlign(Paint.Align.CENTER)
.addText(":",false)
.setAlign(Paint.Align.RIGHT)
.addText(status,true)
.addBlankSpace(10) .addBlankSpace(10)
receiptLayout = receiptLayout receiptLayout = receiptLayout
.setAlign(Paint.Align.CENTER) .setAlign(Paint.Align.CENTER)
...@@ -391,19 +446,54 @@ class MainActivity : MethodChannel.MethodCallHandler, FlutterActivity(), MifareT ...@@ -391,19 +446,54 @@ class MainActivity : MethodChannel.MethodCallHandler, FlutterActivity(), MifareT
.addBlankSpace(10) .addBlankSpace(10)
.addText("powered by dolanapp.com") .addText("powered by dolanapp.com")
} else { } else {
receiptLayout.addText("Saldo Awal...................: Rp" + formatDecimalToPrice(prevBalance.toDouble()).toString()) receiptLayout.setAlign(Paint.Align.LEFT)
.addText("Saldo Awal",false)
.setAlign(Paint.Align.CENTER)
.addText(":",false)
.setAlign(Paint.Align.RIGHT)
.addText("Rp" + formatDecimalToPrice(prevBalance.toDouble()).toString(),true)
.addBlankSpace(10) .addBlankSpace(10)
.addText("Isi Saldo.........................: Rp" + formatDecimalToPrice(denom.toDouble())) .setAlign(Paint.Align.LEFT)
.addText("Isi Saldo",false)
.setAlign(Paint.Align.CENTER)
.addText(":",false)
.setAlign(Paint.Align.RIGHT)
.addText("Rp" + formatDecimalToPrice(denom.toDouble()),true)
.addBlankSpace(10) .addBlankSpace(10)
.addText("Saldo Akhir....................: Rp" + formatDecimalToPrice(ticket.balance!!.toDouble())) .setAlign(Paint.Align.LEFT)
.addText("Saldo Akhir",false)
.setAlign(Paint.Align.CENTER)
.addText(":",false)
.setAlign(Paint.Align.RIGHT)
.addText("Rp" + formatDecimalToPrice(ticket.balance!!.toDouble()),true)
.addBlankSpace(10) .addBlankSpace(10)
.addText("Biaya Layanan..............: Rp" + formatDecimalToPrice(serviceCharge.toDouble()).toString()) .setAlign(Paint.Align.LEFT)
.addText("Biaya Layanan",false)
.setAlign(Paint.Align.CENTER)
.addText(":",false)
.setAlign(Paint.Align.RIGHT)
.addText("Rp" + formatDecimalToPrice(serviceCharge.toDouble()).toString(),true)
.addBlankSpace(10) .addBlankSpace(10)
.addText("Jumlah Bayar................: Rp" + formatDecimalToPrice(serviceChargeAmount.toDouble()).toString()) .setAlign(Paint.Align.LEFT)
.addText("Jumlah Bayar",false)
.setAlign(Paint.Align.CENTER)
.addText(":",false)
.setAlign(Paint.Align.RIGHT)
.addText("Rp" + formatDecimalToPrice(serviceChargeAmount.toDouble()).toString(),true)
.addBlankSpace(10) .addBlankSpace(10)
.addText("Metode Bayar...............: $metodeBayar") .setAlign(Paint.Align.LEFT)
.addText("Metode Bayar",false)
.setAlign(Paint.Align.CENTER)
.addText(":",false)
.setAlign(Paint.Align.RIGHT)
.addText(metodeBayar,true)
.addBlankSpace(10) .addBlankSpace(10)
.addText("Status.............................: $status") .setAlign(Paint.Align.LEFT)
.addText("Status",false)
.setAlign(Paint.Align.CENTER)
.addText(":",false)
.setAlign(Paint.Align.RIGHT)
.addText(status,true)
.addBlankSpace(10) .addBlankSpace(10)
receiptLayout = receiptLayout receiptLayout = receiptLayout
.setAlign(Paint.Align.CENTER) .setAlign(Paint.Align.CENTER)
......
...@@ -31,6 +31,8 @@ class WristbandInfo { ...@@ -31,6 +31,8 @@ class WristbandInfo {
String? metodeBayar; String? metodeBayar;
@ColumnInfo(name: 'status') @ColumnInfo(name: 'status')
String? status; String? status;
@ColumnInfo(name: 'payment_notes')
String? paymentNotes;
WristbandInfo( WristbandInfo(
this.readerDate, this.readerDate,
...@@ -46,6 +48,7 @@ class WristbandInfo { ...@@ -46,6 +48,7 @@ class WristbandInfo {
this.persoReff, this.persoReff,
this.metodeBayar, this.metodeBayar,
this.status, this.status,
this.paymentNotes
); );
Map<String, dynamic> toJson() => { Map<String, dynamic> toJson() => {
...@@ -61,5 +64,6 @@ class WristbandInfo { ...@@ -61,5 +64,6 @@ class WristbandInfo {
'perso_reff': persoReff, 'perso_reff': persoReff,
'metode_bayar': metodeBayar, 'metode_bayar': metodeBayar,
'status': status, 'status': status,
'payment_notes': paymentNotes,
}; };
} }
...@@ -24,7 +24,10 @@ class StartService { ...@@ -24,7 +24,10 @@ class StartService {
String prevBalance, String prevBalance,
String cardNumber, String cardNumber,
String getRegDb, String getRegDb,
String amount) async { String amount,
String outletId,
String persoReff
) async {
var result; var result;
try { try {
result = await platform.invokeMethod("topup_inquiry", <String, dynamic>{ result = await platform.invokeMethod("topup_inquiry", <String, dynamic>{
...@@ -33,6 +36,8 @@ class StartService { ...@@ -33,6 +36,8 @@ class StartService {
'card_number': cardNumber, 'card_number': cardNumber,
'get_reg_db': getRegDb, 'get_reg_db': getRegDb,
'amount': amount, 'amount': amount,
"outlet_id": outletId,
"perso_reff": persoReff
}); });
} catch (error) { } catch (error) {
result = error.toString(); result = error.toString();
...@@ -96,6 +101,7 @@ class StartService { ...@@ -96,6 +101,7 @@ class StartService {
String approvalCode, String approvalCode,
String paymentMethod, String paymentMethod,
String paymentProvider, String paymentProvider,
String paymentNotes,
) async { ) async {
var result; var result;
try { try {
...@@ -107,6 +113,7 @@ class StartService { ...@@ -107,6 +113,7 @@ class StartService {
'approval_code': approvalCode, 'approval_code': approvalCode,
'payment_method': paymentMethod, 'payment_method': paymentMethod,
'payment_provider': paymentProvider, 'payment_provider': paymentProvider,
'payment_notes': paymentNotes
}); });
} catch (error) { } catch (error) {
result = error.toString(); result = error.toString();
...@@ -126,14 +133,33 @@ class StartService { ...@@ -126,14 +133,33 @@ class StartService {
} }
static Future<bool> initLibrary() async { static Future<bool> initLibrary() async {
int initCount = 0;
const int MAX_INIT_ATTEMPTS = 3;
var response = await platform.invokeMethod("init_library"); var response = await platform.invokeMethod("init_library");
if (response == "success init engine") { if (response == "success init engine") {
return true; return true;
} else { } else {
// Jika tidak berhasil, coba lagi dengan memanggil fungsi initLibrary() // Jika tidak berhasil dan belum mencapai batas rekursi, coba lagi dengan memanggil fungsi initLibrary()
return await initLibrary(); if(initCount < MAX_INIT_ATTEMPTS){
initCount++;
return await initLibrary();
}else{
// Jika sudah mencapai batas rekursi, keluar dari fungsi dengan mengembalikan false
return false;
}
} }
} }
// static Future<bool> initLibrary() async {
// int initCount = 0;
// const int MAX_INIT_ATTEMPTS = 3;
// var response = await platform.invokeMethod("init_library");
// if (response == "success init engine") {
// return true;
// } else {
// // Jika tidak berhasil, coba lagi dengan memanggil fungsi initLibrary()
// return await initLibrary();
// }
// }
static Future<bool> bypassActivation() async { static Future<bool> bypassActivation() async {
......
...@@ -89,6 +89,8 @@ class _HomePageState extends State<HomePage> implements AlertDialogCallback { ...@@ -89,6 +89,8 @@ class _HomePageState extends State<HomePage> implements AlertDialogCallback {
Color _tapColor3 = Colors.grey; Color _tapColor3 = Colors.grey;
int _activeContainerIndex = 1; int _activeContainerIndex = 1;
double _downloadSpeed = 0; double _downloadSpeed = 0;
bool showSectionQris = false;
bool showSectionWristband = false;
var infoCard, var infoCard,
prevInfoCard, prevInfoCard,
...@@ -99,6 +101,8 @@ class _HomePageState extends State<HomePage> implements AlertDialogCallback { ...@@ -99,6 +101,8 @@ class _HomePageState extends State<HomePage> implements AlertDialogCallback {
cardNumber, cardNumber,
name, name,
getRegDb, getRegDb,
outletId,
persoReff,
lastBalance, lastBalance,
approvalCode, approvalCode,
amount, amount,
...@@ -133,6 +137,7 @@ class _HomePageState extends State<HomePage> implements AlertDialogCallback { ...@@ -133,6 +137,7 @@ class _HomePageState extends State<HomePage> implements AlertDialogCallback {
_showTap(); _showTap();
tapDial(); tapDial();
}); });
showSectionQris = false;
idleDuration = ValueNotifier<int>(_maxDuration); idleDuration = ValueNotifier<int>(_maxDuration);
Timer.periodic(Duration(seconds: 1), (timer) { Timer.periodic(Duration(seconds: 1), (timer) {
if (idleDuration.value > 0) { if (idleDuration.value > 0) {
...@@ -341,6 +346,9 @@ class _HomePageState extends State<HomePage> implements AlertDialogCallback { ...@@ -341,6 +346,9 @@ class _HomePageState extends State<HomePage> implements AlertDialogCallback {
prevBalance = infoMap["balance"].toString(); prevBalance = infoMap["balance"].toString();
cardNumber = infoMap["cardNumber"].toString(); cardNumber = infoMap["cardNumber"].toString();
getRegDb = infoMap["regDb"]; getRegDb = infoMap["regDb"];
outletId = PreferencesHelper.getString('outletname');
outletId = outletId.substring(outletId.length -4);
persoReff = infoMap['regDb'];
var cusName = infoMap["name"].toString(); var cusName = infoMap["name"].toString();
String cardNo = cardNumber.toString(); String cardNo = cardNumber.toString();
String targetMasked = cardNo.substring(0, 12); String targetMasked = cardNo.substring(0, 12);
...@@ -355,7 +363,14 @@ class _HomePageState extends State<HomePage> implements AlertDialogCallback { ...@@ -355,7 +363,14 @@ class _HomePageState extends State<HomePage> implements AlertDialogCallback {
}); });
amount = amountController!.text.replaceAll(",", "").toString(); amount = amountController!.text.replaceAll(",", "").toString();
var responseInquiry = await StartService.topupInquiryResponse( var responseInquiry = await StartService.topupInquiryResponse(
outletName, prevBalance!, cardNumber, getRegDb, amount); outletName,
prevBalance!,
cardNumber,
getRegDb,
amount,
outletId,
persoReff,
);
var infoInquiry = jsonDecode(responseInquiry); var infoInquiry = jsonDecode(responseInquiry);
var name = infoMap["name"].toString().trim(); var name = infoMap["name"].toString().trim();
...@@ -421,6 +436,7 @@ class _HomePageState extends State<HomePage> implements AlertDialogCallback { ...@@ -421,6 +436,7 @@ class _HomePageState extends State<HomePage> implements AlertDialogCallback {
samReport, samReport,
paymentMethod, paymentMethod,
paymentProvider, paymentProvider,
paymentNotes,
metodeBayar, metodeBayar,
status; status;
...@@ -431,13 +447,14 @@ class _HomePageState extends State<HomePage> implements AlertDialogCallback { ...@@ -431,13 +447,14 @@ class _HomePageState extends State<HomePage> implements AlertDialogCallback {
paymentMethod = 'QRIS'; paymentMethod = 'QRIS';
// paymentProvider = PreferencesHelper.getString('provider'); // paymentProvider = PreferencesHelper.getString('provider');
paymentProvider = ''; paymentProvider = '';
paymentNotes = '';
tid = PreferencesHelper.getString('outletname'); tid = PreferencesHelper.getString('outletname');
tid = tid.substring(tid.length -4); tid = tid.substring(tid.length -4);
if (int.parse(lastBalance) > int.parse(prevBalance!)) { if (int.parse(lastBalance) > int.parse(prevBalance!)) {
countMax = 0; countMax = 0;
var result = await StartService.topUpConfirm(cardNumber, lastBalance, tid, var result = await StartService.topUpConfirm(cardNumber, lastBalance, tid,
samReport, approvalCode, paymentMethod, paymentProvider); samReport, approvalCode, paymentMethod, paymentProvider, paymentNotes);
print('topUpConfirm result: $result'); print('topUpConfirm result: $result');
String readerDate, String readerDate,
...@@ -491,7 +508,9 @@ class _HomePageState extends State<HomePage> implements AlertDialogCallback { ...@@ -491,7 +508,9 @@ class _HomePageState extends State<HomePage> implements AlertDialogCallback {
rawData, rawData,
persoReff, persoReff,
PreferencesHelper.getString("provider"), PreferencesHelper.getString("provider"),
'Berhasil'); 'Berhasil',
paymentNotes
);
DatabaseHelper.insertTransaction(wristbandInfo); DatabaseHelper.insertTransaction(wristbandInfo);
print("ini pesan tersimpan berhasil ke database$wristbandInfo"); print("ini pesan tersimpan berhasil ke database$wristbandInfo");
...@@ -2069,14 +2088,21 @@ class _HomePageState extends State<HomePage> implements AlertDialogCallback { ...@@ -2069,14 +2088,21 @@ class _HomePageState extends State<HomePage> implements AlertDialogCallback {
children: [ children: [
ListView( ListView(
shrinkWrap: true, shrinkWrap: true,
padding: const EdgeInsets.symmetric( // padding: const EdgeInsets.symmetric(
horizontal: 45, // horizontal: 1,
vertical: 8, // vertical: 8,
), // ),
children: [ children: [
buildcardInfo(), buildcardInfo(),
buildwalletCard(), Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
showSectionQris ? SectionQris() : buildSectionContent(),
showSectionWristband ? SectionWristband() : (showSectionQris ? SectionQris() : buildSectionContent()),
],
),
buildServices(context), buildServices(context),
// buildFloat(), // buildFloat(),
], ],
), ),
...@@ -2136,20 +2162,67 @@ class _HomePageState extends State<HomePage> implements AlertDialogCallback { ...@@ -2136,20 +2162,67 @@ class _HomePageState extends State<HomePage> implements AlertDialogCallback {
); );
} }
Widget buildSectionContent() {
if (showSectionQris) {
return SectionQris();
} else {
return SectionDenom();
}
}
Widget SectionQris(){
return Container(
width: 680,
height: 480,
decoration: BoxDecoration(
color: Colors.green
),
);
}
Widget SectionDenom(){
return Container(
width: 680,
height: 480,
decoration: BoxDecoration(
color: Colors.yellow
),
child:Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
TextButton(
onPressed: () {
setState(() {
showSectionWristband = true;
showSectionQris = true;
});
},
child: const HomeServices(
iconUrl: 'assets/ic_send.png',
title: 'Lanjut',
subtitle: 'Continue',
),
),
],
),
);
}
//SECTION walletcard //SECTION walletcard
Widget buildwalletCard() { Widget SectionWristband() {
return Center( return Container(
child: Container( width: 680,
width: 1090,
height: 480, height: 480,
decoration: BoxDecoration( decoration: BoxDecoration(
borderRadius: BorderRadius.circular(28), color: Colors.blue,
image: const DecorationImage( borderRadius: BorderRadius.circular(0),
fit: BoxFit.cover, // image: const DecorationImage(
image: AssetImage( // fit: BoxFit.cover,
'assets/img_bg_card.png', // image: AssetImage(
), // 'assets/img_bg_card.png',
), // ),
// ),
), ),
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,
...@@ -2157,15 +2230,15 @@ class _HomePageState extends State<HomePage> implements AlertDialogCallback { ...@@ -2157,15 +2230,15 @@ class _HomePageState extends State<HomePage> implements AlertDialogCallback {
children: [ children: [
Text( Text(
(balance != null) ? 'Saldo $balance' : 'Saldo 0', (balance != null) ? 'Saldo $balance' : 'Saldo 0',
style: whiteTextStyle.copyWith( style: blackTextStyle.copyWith(
fontSize: 28, fontSize: 15,
fontWeight: medium, fontWeight: medium,
letterSpacing: 3, letterSpacing: 3,
), ),
), ),
Text( Text(
'balance', 'balance',
style: whiteTextStyle.copyWith( style: blackTextStyle.copyWith(
fontSize: 15, fontSize: 15,
fontWeight: light, fontWeight: light,
fontStyle: FontStyle.italic, fontStyle: FontStyle.italic,
...@@ -2175,64 +2248,53 @@ class _HomePageState extends State<HomePage> implements AlertDialogCallback { ...@@ -2175,64 +2248,53 @@ class _HomePageState extends State<HomePage> implements AlertDialogCallback {
const SizedBox( const SizedBox(
height: 10, height: 10,
), ),
Text(
'-----------------------------',
style: whiteTextStyle.copyWith(
fontSize: 30,
fontWeight: semiBold,
letterSpacing: 16,
),
),
const SizedBox( const SizedBox(
height: 15, height: 15,
), ),
Row( Row(
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.start,
children: [ children: [
const SizedBox(
width: 100,
),
Column( Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start,
children: [ children: [
Text( Text(
'Nama/name', 'Nama/name',
style: whiteTextStyle.copyWith( style: blackTextStyle.copyWith(
fontSize: 20, fontSize: 15,
fontWeight: medium, fontWeight: medium,
letterSpacing: 3, letterSpacing: 3,
), ),
), ),
Text( Text(
'Nomor Wristband/wristband no', 'Nomor Wristband/wristband no',
style: whiteTextStyle.copyWith( style: blackTextStyle.copyWith(
fontSize: 20, fontSize: 15,
fontWeight: medium, fontWeight: medium,
letterSpacing: 3, letterSpacing: 3,
), ),
), ),
Text( Text(
'Status', 'Status',
style: whiteTextStyle.copyWith( style: blackTextStyle.copyWith(
fontSize: 20, fontSize: 15,
fontWeight: medium, fontWeight: medium,
letterSpacing: 3, letterSpacing: 3,
), ),
), ),
Text( Text(
'Masa Berlaku/expirity', 'Masa Berlaku/expirity',
style: whiteTextStyle.copyWith( style: blackTextStyle.copyWith(
fontSize: 20, fontSize: 15,
fontWeight: medium, fontWeight: medium,
letterSpacing: 3, letterSpacing: 3,
), ),
), ),
Text( Text(
'Deposit', 'Deposit',
style: whiteTextStyle.copyWith( style: blackTextStyle.copyWith(
fontSize: 20, fontSize: 15,
letterSpacing: 3, letterSpacing: 3,
fontWeight: medium, fontWeight: medium,
), ),
...@@ -2248,65 +2310,54 @@ class _HomePageState extends State<HomePage> implements AlertDialogCallback { ...@@ -2248,65 +2310,54 @@ class _HomePageState extends State<HomePage> implements AlertDialogCallback {
children: [ children: [
Text( Text(
(name != null) ? ': $name' : ': -', (name != null) ? ': $name' : ': -',
style: whiteTextStyle.copyWith( style: blackTextStyle.copyWith(
fontSize: 20, fontSize: 15,
fontWeight: medium, fontWeight: medium,
letterSpacing: 3, letterSpacing: 3,
), ),
), ),
Text( Text(
(maskedText != null) ? ': $maskedText' : ': -', (maskedText != null) ? ': $maskedText' : ': -',
style: whiteTextStyle.copyWith( style: blackTextStyle.copyWith(
fontSize: 20, fontSize: 15,
fontWeight: medium, fontWeight: medium,
letterSpacing: 3, letterSpacing: 3,
), ),
), ),
Text( Text(
(cardType != null) ? ': $cardType' : ': -', (cardType != null) ? ': $cardType' : ': -',
style: whiteTextStyle.copyWith( style: blackTextStyle.copyWith(
fontSize: 20, fontSize: 15,
fontWeight: medium, fontWeight: medium,
letterSpacing: 3, letterSpacing: 3,
), ),
), ),
Text( Text(
(cardExpirity != null) ? ': $cardExpirity' : ': -', (cardExpirity != null) ? ': $cardExpirity' : ': -',
style: whiteTextStyle.copyWith( style: blackTextStyle.copyWith(
fontSize: 20, fontSize: 15,
fontWeight: medium, fontWeight: medium,
letterSpacing: 3, letterSpacing: 3,
), ),
), ),
Text( Text(
(deposit != null) ? ': $deposit' : ': -', (deposit != null) ? ': $deposit' : ': -',
style: whiteTextStyle.copyWith( style: blackTextStyle.copyWith(
fontSize: 20, fontSize: 15,
letterSpacing: 3, letterSpacing: 3,
fontWeight: medium, fontWeight: medium,
), ),
), ),
], ],
), ),
const SizedBox(
width: 250,
),
], ],
), ),
const SizedBox( const SizedBox(
height: 25, height: 25,
), ),
Text(
'-----------------------------',
style: whiteTextStyle.copyWith(
fontSize: 30,
fontWeight: semiBold,
letterSpacing: 16,
),
),
Text( Text(
'Saldo dan deposit wristband bisa dikembalikan di Refund Center', 'Saldo dan deposit wristband bisa dikembalikan di Refund Center',
style: whiteTextStyle.copyWith( style: blackTextStyle.copyWith(
fontSize: 20, fontSize: 20,
fontWeight: medium, fontWeight: medium,
), ),
...@@ -2321,8 +2372,8 @@ class _HomePageState extends State<HomePage> implements AlertDialogCallback { ...@@ -2321,8 +2372,8 @@ class _HomePageState extends State<HomePage> implements AlertDialogCallback {
), ),
], ],
), ),
), );
);
} }
//SECTION level //SECTION level
...@@ -2331,7 +2382,8 @@ class _HomePageState extends State<HomePage> implements AlertDialogCallback { ...@@ -2331,7 +2382,8 @@ class _HomePageState extends State<HomePage> implements AlertDialogCallback {
margin: const EdgeInsets.only( margin: const EdgeInsets.only(
top: 25, top: 25,
), ),
child: Stack( child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [ children: [
// widget lainnya di sini // widget lainnya di sini
Positioned( Positioned(
...@@ -2401,80 +2453,78 @@ class _HomePageState extends State<HomePage> implements AlertDialogCallback { ...@@ -2401,80 +2453,78 @@ class _HomePageState extends State<HomePage> implements AlertDialogCallback {
), ),
), ),
// Column(
Column( // crossAxisAlignment: CrossAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center, // children: [
children: [ // GestureDetector(
GestureDetector( // child: Row(
child: Row( // mainAxisAlignment: MainAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center, // children: [
children: [ // TextButton(
TextButton( // onPressed: () {
onPressed: () { // isShowingDialog = true;
isShowingDialog = true; // if (timer != null) timer?.cancel();
if (timer != null) timer?.cancel(); // tapIdle();
tapIdle(); // amountController?.clear();
amountController?.clear(); // var infoMap = jsonDecode(infoCard);
var infoMap = jsonDecode(infoCard); // plainCardExpirity = infoMap['cardExpirity'];
plainCardExpirity = infoMap['cardExpirity']; // var change = DateTime.fromMillisecondsSinceEpoch(
var change = DateTime.fromMillisecondsSinceEpoch( // int.parse(infoMap['cardExpirity']) * 1000,
int.parse(infoMap['cardExpirity']) * 1000, // );
); // dateTimeCardExpirity = change;
dateTimeCardExpirity = change; // final DateFormat formatter = DateFormat('dd-MMM-yyyy');
final DateFormat formatter = DateFormat('dd-MMM-yyyy'); // cardExpirity = formatter.format(change);
cardExpirity = formatter.format(change); // deposit = CurrencyFormat.convertToIdr(infoMap["deposit"], 2);
deposit = CurrencyFormat.convertToIdr(infoMap["deposit"], 2); // cardNumber = infoMap["cardNumber"];
cardNumber = infoMap["cardNumber"]; // String outletName = PreferencesHelper.getString('outlet_name');
String outletName = PreferencesHelper.getString('outlet_name'); // countMax += 1;
countMax += 1; // String nilaiTap = PreferencesHelper.getString('maxTap');
String nilaiTap = PreferencesHelper.getString('maxTap'); // String newCardNumber = infoMap["cardNumber"];
String newCardNumber = infoMap["cardNumber"]; // AwesomeDialog(
AwesomeDialog( // context: context,
context: context, // dialogType: DialogType.info,
dialogType: DialogType.info, // animType: AnimType.rightSlide,
animType: AnimType.rightSlide, // dismissOnTouchOutside: false,
dismissOnTouchOutside: false, // autoHide: Duration(seconds: 2),
autoHide: Duration(seconds: 2), // headerAnimationLoop: true,
headerAnimationLoop: true, // title: 'Mohon Tunggu Sebentar ...',
title: 'Mohon Tunggu Sebentar ...', // titleTextStyle: blackTextStyle.copyWith(
titleTextStyle: blackTextStyle.copyWith( // fontSize: 20,
fontSize: 20, // fontWeight: bold,
fontWeight: bold, // ),
), // desc: "Please wait a moment ...",
desc: "Please wait a moment ...", // descTextStyle: greyTextStyle.copyWith(
descTextStyle: greyTextStyle.copyWith( // fontSize: 18,
fontSize: 18, // fontWeight: light,
fontWeight: light, // ),
), // ).show().then((value) {
).show().then((value) { // denom(outletName, infoCard);
denom(outletName, infoCard); // });
}); // },
}, // child: const HomeServices(
child: const HomeServices( // iconUrl: 'assets/ic_topup.png',
iconUrl: 'assets/ic_topup.png', // title: 'Isi Ulang',
title: 'Isi Ulang', // subtitle: " topup balance",
subtitle: " topup balance", // ),
), // ),
), // TextButton(
// onPressed: () {
TextButton( // timer?.cancel();
onPressed: () { // isShowingDialog = true;
timer?.cancel(); // _showTap();
isShowingDialog = true; // tapDial();
_showTap(); // },
tapDial(); // child: const HomeServices(
}, // iconUrl: 'assets/ic_send.png',
child: const HomeServices( // title: 'Cek Saldo',
iconUrl: 'assets/ic_send.png', // subtitle: ' balance',
title: 'Cek Saldo', // ),
subtitle: ' balance', // ),
), // ],
), // ),
], // )
), // ],
) // ),
],
),
], ],
), ),
); );
......
...@@ -42,7 +42,7 @@ class SplashPage extends StatefulWidget { ...@@ -42,7 +42,7 @@ class SplashPage extends StatefulWidget {
class _SplashPageState extends State<SplashPage> with TickerProviderStateMixin{ class _SplashPageState extends State<SplashPage> with TickerProviderStateMixin{
late final AnimationController _controller = AnimationController( late final AnimationController _controller = AnimationController(
duration: const Duration(seconds:2), duration: const Duration(seconds:1),
vsync: this, vsync: this,
)..repeat(reverse: true); )..repeat(reverse: true);
......
...@@ -40,15 +40,15 @@ class _TapCardAktivasiState extends State<TapCardAktivasi> ...@@ -40,15 +40,15 @@ class _TapCardAktivasiState extends State<TapCardAktivasi>
void initState() { void initState() {
super.initState(); super.initState();
aktivasi(); aktivasi();
initLib(); // initLib();
} }
void initLib() async { // void initLib() async {
var isTap = await StartService.initLibrary(); // var isTap = await StartService.initLibrary();
if (isTap == true) { // if (isTap == true) {
aktivasi(); // aktivasi();
} // }
} // }
void aktivasi() async { void aktivasi() async {
......
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