private void enqueueMessage(JsMessage message) { synchronized (this) { if (activeBridgeMode == null) { Log.d(LOG_TAG, "Dropping Native->JS message due to disabled bridge"); return; } queue.add(message); if (!paused) { activeBridgeMode.onNativeToJsMessageAvailable(); } } }
public void setPaused(boolean value) { if (paused && value) { // This should never happen. If a use-case for it comes up, we should // change pause to be a counter. Log.e(LOG_TAG, "nested call to setPaused detected.", new Throwable()); } paused = value; if (!value) { synchronized (this) { if (!queue.isEmpty() && activeBridgeMode != null) { activeBridgeMode.onNativeToJsMessageAvailable(); } } } }
/** Changes the bridge mode. */ public void setBridgeMode(int value) { if (value < 0 || value >= registeredListeners.length) { Log.d(LOG_TAG, "Invalid NativeToJsBridgeMode: " + value); } else { if (value != activeListenerIndex) { Log.d(LOG_TAG, "Set native->JS mode to " + value); synchronized (this) { activeListenerIndex = value; BridgeMode activeListener = registeredListeners[value]; if (!paused && !queue.isEmpty() && activeListener != null) { activeListener.onNativeToJsMessageAvailable(); } } } } }
/** Changes the bridge mode. */ public void setBridgeMode(int value) { if (value < -1 || value >= registeredListeners.length) { Log.d(LOG_TAG, "Invalid NativeToJsBridgeMode: " + value); } else { BridgeMode newMode = value < 0 ? null : registeredListeners[value]; if (newMode != activeBridgeMode) { Log.d( LOG_TAG, "Set native->JS mode to " + (newMode == null ? "null" : newMode.getClass().getSimpleName())); synchronized (this) { activeBridgeMode = newMode; if (newMode != null) { newMode.reset(); if (!paused && !queue.isEmpty()) { newMode.onNativeToJsMessageAvailable(); } } } } } }