Added receive transaction notification

master
henry 2018-04-29 21:50:15 -04:00
parent 4135217548
commit b42b2e27ce
2 changed files with 35 additions and 8 deletions

View File

@ -22,6 +22,8 @@ import cy.agorise.crystalwallet.models.CryptoCurrency;
import cy.agorise.crystalwallet.models.CryptoCurrencyEquivalence;
import cy.agorise.crystalwallet.network.CryptoNetManager;
import cy.agorise.crystalwallet.network.WebSocketThread;
import cy.agorise.crystalwallet.requestmanagers.CryptoNetEvents;
import cy.agorise.crystalwallet.requestmanagers.ReceivedFundsCryptoNetEvent;
import cy.agorise.graphenej.Address;
import cy.agorise.graphenej.Asset;
import cy.agorise.graphenej.AssetAmount;
@ -383,7 +385,7 @@ public abstract class GrapheneApiGenerator {
info.setCryptoCurrencyId(idCryptoCurrency);
asset.setId((int)idCryptoCurrency);
bitsharesAssetDao.insertBitsharesAssetInfo(info);
saveTransaction(transaction,(int)info.getCryptoCurrencyId(),accountBitsharesId,tOperation,context);
saveTransaction(transaction,cryptoCurrencyDao.getById(info.getCryptoCurrencyId()),accountBitsharesId,tOperation,context);
}
}
@ -396,7 +398,7 @@ public abstract class GrapheneApiGenerator {
assets.add(tOperation.getAssetAmount().getAsset().getObjectId());
GrapheneApiGenerator.getAssetById(assets,assetRequest);
}else{
saveTransaction(transaction,(int)info.getCryptoCurrencyId(),accountBitsharesId,tOperation,context);
saveTransaction(transaction,cryptoCurrencyDao.getById(info.getCryptoCurrencyId()),accountBitsharesId,tOperation,context);
}
}
}
@ -420,23 +422,26 @@ public abstract class GrapheneApiGenerator {
}
/**
* Fucniton to save a transaction retrieved from the update
* Function to save a transaction retrieved from the update
* @param transaction The transaction db object
* @param currencyId The id of the currency on the database
* @param currency The currency of the transaccion
* @param accountBitsharesId The id of the account in the bitshares network
* @param tOperation The transfer operation fetched from the update
* @param context The context of this app
*/
private static void saveTransaction(CryptoCoinTransaction transaction, int currencyId,
private static void saveTransaction(CryptoCoinTransaction transaction, CryptoCurrency currency,
String accountBitsharesId, TransferOperation tOperation ,
Context context){
transaction.setIdCurrency(currencyId);
transaction.setIdCurrency((int)currency.getId());
transaction.setConfirmed(true); //graphene transaction are always confirmed
transaction.setFrom(tOperation.getFrom().getObjectId());
transaction.setInput(!tOperation.getFrom().getObjectId().equals(accountBitsharesId));
transaction.setTo(tOperation.getTo().getObjectId());
transaction.setDate(new Date());
CrystalDatabase.getAppDatabase(context).transactionDao().insertTransaction(transaction);
if(transaction.getInput()){
CryptoNetEvents.getInstance().fireEvent(new ReceivedFundsCryptoNetEvent(transaction.getAccount(),currency,transaction.getAmount()));
}
}
/**

View File

@ -16,9 +16,15 @@ public class ReceivedFundsCryptoNetEvent extends CryptoNetEvent {
private CryptoNetAccount account;
public ReceivedFundsCryptoNetEvent(CryptoCoin coin, CryptoNetAccount account) {
super(coin);
private CryptoCurrency currency;
private long amount;
public ReceivedFundsCryptoNetEvent(CryptoNetAccount account, CryptoCurrency currency, long amount) {
super(CryptoCoin.BITSHARES);
this.account = account;
this.currency = currency;
this.amount = amount;
}
public CryptoNetAccount getAccount() {
@ -28,5 +34,21 @@ public class ReceivedFundsCryptoNetEvent extends CryptoNetEvent {
public void setAccount(CryptoNetAccount account) {
this.account = account;
}
public CryptoCurrency getCurrency() {
return currency;
}
public void setCurrency(CryptoCurrency currency) {
this.currency = currency;
}
public long getAmount() {
return amount;
}
public void setAmount(long amount) {
this.amount = amount;
}
}