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