diff --git a/src/android/OpenTokAndroidPlugin.java b/src/android/OpenTokAndroidPlugin.java index 5aed90a3..c597e749 100644 --- a/src/android/OpenTokAndroidPlugin.java +++ b/src/android/OpenTokAndroidPlugin.java @@ -502,6 +502,28 @@ public void subscribeToVideo(boolean value) { } } + private class PubRunnable implements Runnable { + CallbackContext mCallbackContext; + public PubRunnable(CallbackContext callbackContext) { + mCallbackContext = callbackContext; + } + public void run() { + myPublisher.getImgData(mCallbackContext); + } + } + + private class SubRunnable implements Runnable { + RunnableSubscriber mRunsub; + CallbackContext mCallbackContext; + public SubRunnable(RunnableSubscriber runsub, CallbackContext callbackContext) { + mRunsub = runsub; + mCallbackContext = callbackContext; + } + public void run() { + mRunsub.getImgData(mCallbackContext); + } + } + @Override public void initialize(CordovaInterface cordova, CordovaWebView webView) { _cordova = cordova; @@ -668,20 +690,12 @@ public boolean execute(String action, JSONArray args, CallbackContext callbackCo } } else if (action.equals("getImgData")) { if (args.getString(0).equals("TBPublisher") && myPublisher != null && sessionConnected) { - cordova.getThreadPool().execute(new Runnable() { - public void run() { - myPublisher.getImgData(callbackContext); - } - }); + cordova.getThreadPool().execute(new PubRunnable(callbackContext)); return true; } else { RunnableSubscriber runsub = subscriberCollection.get(args.getString(0)); if (runsub != null) { - cordova.getThreadPool().execute(new Runnable() { - public void run() { - runsub.getImgData(callbackContext); - } - }); + cordova.getThreadPool().execute(new SubRunnable(runsub, callbackContext)); runsub.getImgData(callbackContext); return true; } @@ -1089,4 +1103,4 @@ public void onStreamVideoTypeChanged(Session arg0, Stream arg1, // TODO Auto-generated method stub } -} \ No newline at end of file +}