private void incrementPendingJSCalls() {
   int oldPendingCalls = mPendingJSCalls.getAndIncrement();
   boolean wasIdle = oldPendingCalls == 0;
   Systrace.traceCounter(
       Systrace.TRACE_TAG_REACT_JAVA_BRIDGE, mJsPendingCallsTitleForTrace, oldPendingCalls + 1);
   if (wasIdle && !mBridgeIdleListeners.isEmpty()) {
     for (NotThreadSafeBridgeIdleDebugListener listener : mBridgeIdleListeners) {
       listener.onTransitionToBridgeBusy();
     }
   }
 }
  private void decrementPendingJSCalls() {
    int newPendingCalls = mPendingJSCalls.decrementAndGet();
    Assertions.assertCondition(newPendingCalls >= 0);
    boolean isNowIdle = newPendingCalls == 0;
    Systrace.traceCounter(
        Systrace.TRACE_TAG_REACT_JAVA_BRIDGE, mJsPendingCallsTitleForTrace, newPendingCalls);

    if (isNowIdle && !mBridgeIdleListeners.isEmpty()) {
      for (NotThreadSafeBridgeIdleDebugListener listener : mBridgeIdleListeners) {
        listener.onTransitionToBridgeIdle();
      }
    }
  }