This commit is contained in:
Javier Varona 2017-10-22 20:53:46 -04:00
commit d3b7d7ce1c

View file

@ -6,6 +6,7 @@ import android.content.Context;
import java.io.Serializable; import java.io.Serializable;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import cy.agorise.crystalwallet.dao.BitsharesAssetDao; import cy.agorise.crystalwallet.dao.BitsharesAssetDao;
@ -65,6 +66,7 @@ public abstract class GrapheneApiGenerator {
}); });
private static WebSocketThread subscriptionThread = new WebSocketThread(bitsharesSubscriptionHub,url); private static WebSocketThread subscriptionThread = new WebSocketThread(bitsharesSubscriptionHub,url);
private static HashMap<Long,SubscriptionListener> currentBitsharesListener = new HashMap<>();
/** /**
* Retrieves the data of an account searching by it's id * Retrieves the data of an account searching by it's id
@ -302,6 +304,7 @@ public abstract class GrapheneApiGenerator {
} }
public static void subscribeBitsharesAccount(final long accountId, final String accountBitsharesId, final Context context){ public static void subscribeBitsharesAccount(final long accountId, final String accountBitsharesId, final Context context){
if(!currentBitsharesListener.containsKey(accountId)){
CrystalDatabase db = CrystalDatabase.getAppDatabase(context); CrystalDatabase db = CrystalDatabase.getAppDatabase(context);
final CryptoCoinBalanceDao balanceDao = db.cryptoCoinBalanceDao(); final CryptoCoinBalanceDao balanceDao = db.cryptoCoinBalanceDao();
final BitsharesAssetDao bitsharesAssetDao = db.bitsharesAssetDao(); final BitsharesAssetDao bitsharesAssetDao = db.bitsharesAssetDao();
@ -357,6 +360,7 @@ public abstract class GrapheneApiGenerator {
} }
}; };
currentBitsharesListener.put(accountId,balanceListener);
bitsharesSubscriptionHub.addSubscriptionListener(balanceListener); bitsharesSubscriptionHub.addSubscriptionListener(balanceListener);
if(!subscriptionThread.isConnected()){ if(!subscriptionThread.isConnected()){
@ -365,12 +369,14 @@ public abstract class GrapheneApiGenerator {
bitsharesSubscriptionHub.resubscribe(); bitsharesSubscriptionHub.resubscribe();
} }
} }
}
public static void cancelBitsharesAccountSubcriptions(){ public static void cancelBitsharesAccountSubcriptions(){
bitsharesSubscriptionHub.cancelSubscriptions(); bitsharesSubscriptionHub.cancelSubscriptions();
} }
public static void getAccountBalance(final long accountId, final String accountGrapheneId, final Context context){ public static void getAccountBalance(final long accountId, final String accountGrapheneId, final Context context){
CrystalDatabase db = CrystalDatabase.getAppDatabase(context); CrystalDatabase db = CrystalDatabase.getAppDatabase(context);
final CryptoCoinBalanceDao balanceDao = db.cryptoCoinBalanceDao(); final CryptoCoinBalanceDao balanceDao = db.cryptoCoinBalanceDao();
final BitsharesAssetDao bitsharesAssetDao = db.bitsharesAssetDao(); final BitsharesAssetDao bitsharesAssetDao = db.bitsharesAssetDao();