Commit c8c0394b authored by Izol's avatar Izol

Update library mybank and mifare mdd lib

- version my bank 3.8.13
- version mifare mdd lib 0.1.21

issue: Error null|java.security.NoSuchAlgorithmException: No provider found for AES_256/CBC/PKCS5Padding
parent f8ea34ab
...@@ -96,12 +96,12 @@ dependencies { ...@@ -96,12 +96,12 @@ dependencies {
// library mdd // library mdd
// change 11 // change 11
implementation(group: 'com.mdd.topup', name: 'mifare_mdd_lib', version: '0.1.19', ext: 'aar') implementation(group: 'com.mdd.topup', name: 'mifare_mdd_lib', version: '0.1.21', ext: 'aar')
implementation(group: 'com.mdd.payment', name: 'aar-deviceid-release', version: '2.0.6', ext: 'aar') implementation(group: 'com.mdd.payment', name: 'aar-deviceid-release', version: '2.0.6', ext: 'aar')
implementation(group: 'com.mdd.library', name: 'android-escpos-receipt', version: '1.0.1', ext: 'aar') implementation(group: 'com.mdd.library', name: 'android-escpos-receipt', version: '1.0.1', ext: 'aar')
implementation(group: 'com.mdd.payment', name: 'nativecripto-release', version: '2.0.1', ext: 'aar') implementation(group: 'com.mdd.payment', name: 'nativecripto-release', version: '2.0.1', ext: 'aar')
implementation(group: 'com.mdd.payment', name: 'mybanklibrary-release', version: '3.8.2-rev1', ext: 'aar') implementation(group: 'com.mdd.payment', name: 'mybanklibrary-release', version: '3.8.13', ext: 'aar')
implementation(group: 'com.mdd.payment', name: 'organicdrv-release', version: '2.1.4', ext: 'aar') implementation(group: 'com.mdd.payment', name: 'organicdrv-release', version: '2.1.4', ext: 'aar')
implementation(group: 'com.mdd.payment', name: 'paxlibrary-release', version: '2.1.5', ext: 'aar') implementation(group: 'com.mdd.payment', name: 'paxlibrary-release', version: '2.1.5', ext: 'aar')
implementation(group: 'com.mdd.payment', name: 'isodeplibrary-release', version: '2.1.3', ext: 'aar') implementation(group: 'com.mdd.payment', name: 'isodeplibrary-release', version: '2.1.3', ext: 'aar')
......
...@@ -16,8 +16,12 @@ import io.flutter.embedding.android.FlutterActivity ...@@ -16,8 +16,12 @@ import io.flutter.embedding.android.FlutterActivity
import io.flutter.embedding.engine.FlutterEngine import io.flutter.embedding.engine.FlutterEngine
import io.flutter.plugin.common.MethodCall import io.flutter.plugin.common.MethodCall
import io.flutter.plugin.common.MethodChannel import io.flutter.plugin.common.MethodChannel
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.* import java.util.*
import kotlin.concurrent.thread
class MainActivity : MethodChannel.MethodCallHandler, FlutterActivity(), MifareTicketingCallback { class MainActivity : MethodChannel.MethodCallHandler, FlutterActivity(), MifareTicketingCallback {
...@@ -25,7 +29,7 @@ class MainActivity : MethodChannel.MethodCallHandler, FlutterActivity(), MifareT ...@@ -25,7 +29,7 @@ class MainActivity : MethodChannel.MethodCallHandler, FlutterActivity(), MifareT
private lateinit var mifareTicketingV3: MifareTicketingV3 private lateinit var mifareTicketingV3: MifareTicketingV3
private lateinit var lastCardUI: Ticket private lateinit var lastCardUI: Ticket
private var result: MethodChannel.Result? = null private var result: MethodChannel.Result? = null
private val coroutineScope = CoroutineScope(Dispatchers.IO)
override fun onMethodCall(call: MethodCall, result: MethodChannel.Result) { override fun onMethodCall(call: MethodCall, result: MethodChannel.Result) {
when (call.method) { when (call.method) {
...@@ -45,6 +49,9 @@ class MainActivity : MethodChannel.MethodCallHandler, FlutterActivity(), MifareT ...@@ -45,6 +49,9 @@ class MainActivity : MethodChannel.MethodCallHandler, FlutterActivity(), MifareT
} }
}.start() }.start()
} }
// "activation_key" -> {
// _mifareTicketing?.activateKey()
// }
"print_topup" -> { "print_topup" -> {
this.result = result this.result = result
val ticketJson = call.argument<String>("ticket_json") val ticketJson = call.argument<String>("ticket_json")
...@@ -142,13 +149,23 @@ class MainActivity : MethodChannel.MethodCallHandler, FlutterActivity(), MifareT ...@@ -142,13 +149,23 @@ class MainActivity : MethodChannel.MethodCallHandler, FlutterActivity(), MifareT
// _mifareTicketing?.topupBalanceCard(cardNumber!!, amount!!) // _mifareTicketing?.topupBalanceCard(cardNumber!!, amount!!)
mifareTicketingV3.topupBalanceCard(lastCardUI, amount!!) mifareTicketingV3.topupBalanceCard(lastCardUI, amount!!)
} }
"activate_library" -> { "activation_key" -> {
val sukses = _mifareTicketing?.activateLibrary() this.result = result
result.success(sukses == true) object : Thread() {
override fun run() {
_mifareTicketing?.activateKey()
}
}.start()
} }
"get_card" -> { "get_card" -> {
this.result = result this.result = result
mifareTicketingV3.getCardInfo(true,false,true) coroutineScope.launch {
mifareTicketingV3.getCardInfo(
isSync = true,
isCheckValidation = false,
isCheckMin = true
)
}
} }
"bypass_activation" -> { "bypass_activation" -> {
_mifareTicketing?.bypassActivateKey() _mifareTicketing?.bypassActivateKey()
...@@ -203,7 +220,7 @@ class MainActivity : MethodChannel.MethodCallHandler, FlutterActivity(), MifareT ...@@ -203,7 +220,7 @@ class MainActivity : MethodChannel.MethodCallHandler, FlutterActivity(), MifareT
} }
override fun onSuccessActivateKey() { override fun onSuccessActivateKey() {
TODO("Not yet implemented") result?.success("success activate working key")
} }
override fun onSuccessRefundDepositBalanceCard(ticket: Ticket?) { override fun onSuccessRefundDepositBalanceCard(ticket: Ticket?) {
...@@ -211,7 +228,8 @@ class MainActivity : MethodChannel.MethodCallHandler, FlutterActivity(), MifareT ...@@ -211,7 +228,8 @@ class MainActivity : MethodChannel.MethodCallHandler, FlutterActivity(), MifareT
} }
override fun onSuccessActivationCard() { override fun onSuccessActivationCard() {
TODO("Not yet implemented") Log.d("MainActivity", "success init engine")
result?.success("success init engine")
} }
override fun onSuccessDeductBalanceCard(ticket: Ticket?) { override fun onSuccessDeductBalanceCard(ticket: Ticket?) {
......
...@@ -150,9 +150,10 @@ class StartService { ...@@ -150,9 +150,10 @@ class StartService {
return await platform.invokeMethod('bypass_activation'); return await platform.invokeMethod('bypass_activation');
} }
static Future<bool>
activateLibrary() async { static Future<String> activationKey() async {
return await platform.invokeMethod('activate_library'); var result = await platform.invokeMethod("activation_key");
return result;
} }
static Future<String> initMifareLib( static Future<String> initMifareLib(
......
...@@ -28,6 +28,8 @@ void main() { ...@@ -28,6 +28,8 @@ void main() {
routes: <String, WidgetBuilder>{ routes: <String, WidgetBuilder>{
'/home': (BuildContext context) => HomePage(), '/home': (BuildContext context) => HomePage(),
'/input-url': (BuildContext context) => DialLog(), '/input-url': (BuildContext context) => DialLog(),
'/set-merchant': (BuildContext context) => SetMerchant(),
'/tap-card-aktivasi': (BuildContext context) => TapCardAktivasi(isTap: true),
}, },
)); ));
} }
...@@ -61,6 +63,7 @@ class _SplashPageState extends State<SplashPage> with TickerProviderStateMixin{ ...@@ -61,6 +63,7 @@ class _SplashPageState extends State<SplashPage> with TickerProviderStateMixin{
@override @override
void initState() { void initState() {
super.initState(); super.initState();
StartService.activationKey();
checkPermissionAndStartService(); checkPermissionAndStartService();
} }
...@@ -87,7 +90,6 @@ class _SplashPageState extends State<SplashPage> with TickerProviderStateMixin{ ...@@ -87,7 +90,6 @@ class _SplashPageState extends State<SplashPage> with TickerProviderStateMixin{
} }
if (storageStatus.isGranted && phoneStatus.isGranted) { if (storageStatus.isGranted && phoneStatus.isGranted) {
// initService();
checkActivationAfterDelay(); checkActivationAfterDelay();
} else { } else {
// Handle the case when user declines the permission request // Handle the case when user declines the permission request
...@@ -107,23 +109,19 @@ class _SplashPageState extends State<SplashPage> with TickerProviderStateMixin{ ...@@ -107,23 +109,19 @@ class _SplashPageState extends State<SplashPage> with TickerProviderStateMixin{
void navigationToSetConfig() { void navigationToSetConfig() {
Navigator.pushReplacement( Navigator.pushReplacement(
context, context!,
MaterialPageRoute( MaterialPageRoute(
builder: (BuildContext context) => builder: (BuildContext context) => const SetMerchant(isConfig: true),
const SetMerchant(isConfig: true))); ),
);
} }
void navigationToGetOutlet() { void navigationToGetOutlet() {
Navigator.of(context) Navigator.pushReplacementNamed(context, '/set-merchant', arguments: true);
.restorablePopAndPushNamed('/set-merchant', arguments: kIsTap);
} }
void navigationToAktivation() { void navigationToActivation() {
Navigator.pushReplacement( Navigator.pushReplacementNamed(context, '/tap-card-aktivasi');
context,
MaterialPageRoute(
builder: (BuildContext context) =>
const TapCardAktivasi(isTap: true)));
} }
void checkActivation() { void checkActivation() {
...@@ -132,7 +130,7 @@ class _SplashPageState extends State<SplashPage> with TickerProviderStateMixin{ ...@@ -132,7 +130,7 @@ class _SplashPageState extends State<SplashPage> with TickerProviderStateMixin{
if (isDoneConfig) { if (isDoneConfig) {
if (isTapConfig && isDoneConfig) { if (isTapConfig && isDoneConfig) {
navigationToAktivation(); navigationToActivation();
} else { } else {
navigationToGetOutlet(); navigationToGetOutlet();
} }
......
...@@ -30,7 +30,7 @@ class _TapCardState extends State<TapCard> with TickerProviderStateMixin { ...@@ -30,7 +30,7 @@ class _TapCardState extends State<TapCard> with TickerProviderStateMixin {
@override @override
void initState() { void initState() {
StartService.bypassActivation(); StartService.activationKey();
_getCard(); _getCard();
......
...@@ -59,12 +59,13 @@ class _TapCardAktivasiState extends State<TapCardAktivasi> ...@@ -59,12 +59,13 @@ class _TapCardAktivasiState extends State<TapCardAktivasi>
_isActivating = true; _isActivating = true;
Future.delayed(Duration(seconds: 5), () async { Future.delayed(Duration(seconds: 5), () async {
var isLoad = await StartService.activateLibrary(); var isLoad = await StartService.activationKey();
print(isLoad); print(isLoad);
if (isLoad == true) { if (isLoad == "success activate working key") {
_showDialSuccess(); _showDialSuccess();
} else { } else {
_showDialFail(); print('Failed detect card');
aktivasi(); // Retry activation
} }
_isActivating = false; _isActivating = false;
......
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