@ActivityObject
public class raveandroidwrapper {
private BA ba;
private String eventName;
private IOnActivityResult ion;
public void Initialize(BA ba , String EventName ) {
_initialize(ba, EventName);
}
@Hide
public void _initialize(final BA ba,final String EventName) {
this.ba = ba;
this.eventName = EventName.toLowerCase(BA.cul);
}
public SubAccount createSubAccount(String vendorRef,String vendorRatio){
return new SubAccount(vendorRef,vendorRatio);
}
public void initializePayment(long amount,String country,String currency,String email, String fName, String lName, String narration, String publicKey, String encryptionKey, String txRef,boolean acceptMpesaPayments, boolean acceptAccountPayments,boolean acceptCardPayments ,boolean acceptAchPayments,boolean acceptGHMobileMoneyPayments ,boolean acceptUgMobileMoneyPayments,boolean acceptZmMobileMoneyPayments, boolean acceptRwfMobileMoneyPayments,boolean acceptBankTransferPayments,boolean isPreAuth,boolean showStagingLabel,boolean shouldDisplayFee,boolean onStagingEnv , anywheresoftware.b4a.objects.collections.List subAccounts){
List<Object> list = subAccounts.getObject();
List<SubAccount> listba = new ArrayList<>() ;
for (Object element : list) {
listba.add((SubAccount) element);
}
new RavePayManager(ba.activity).setAmount(amount)
.setCountry(country)
.setCurrency(currency)
.setEmail(email)
.setfName(fName)
.setlName(lName)
.setNarration(narration)
.setPublicKey(publicKey)
.setEncryptionKey(encryptionKey)
.setTxRef(txRef)
.acceptMpesaPayments(acceptMpesaPayments)
.acceptAccountPayments(acceptAccountPayments)
.acceptCardPayments(acceptCardPayments)
.acceptAchPayments(acceptAchPayments)
.acceptGHMobileMoneyPayments(acceptGHMobileMoneyPayments)
.acceptUgMobileMoneyPayments(acceptUgMobileMoneyPayments)
.acceptZmMobileMoneyPayments(acceptZmMobileMoneyPayments)
.acceptRwfMobileMoneyPayments(acceptRwfMobileMoneyPayments)
.acceptBankTransferPayments(acceptBankTransferPayments)
.onStagingEnv(onStagingEnv)
.setSubAccounts(listba)
.isPreAuth(isPreAuth)
.showStagingLabel(showStagingLabel)
.shouldDisplayFee(shouldDisplayFee)
.initialize();
ion = new IOnActivityResult() {
@SuppressWarnings("unchecked")
@Override
public void ResultArrived(int resultCode, Intent intent) {
IntentWrapper iw = new IntentWrapper();
iw.setObject(intent);
ba.raiseEvent(ba, eventName + "_resultarrived", true, iw);
}
//
};
try {
ba.startActivityForResult(ion, null);
} catch (NullPointerException npe) {
//required...
}
BA.Log(BA.ObjectToString(ba));
BA.SharedProcessBA sba = ba.sharedProcessBA;
try {
Field f = BA.SharedProcessBA.class.getDeclaredField("onActivityResultCode");
f.setAccessible(true);
//BA.Log("sba"+f.getInt(sba));
// int requestCode = f.getInt(sba) - 1;
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}