hunk.code_window:   private static final String TAG = FileSystemModule.class.getSimpleName();
     private static final String EXDownloadProgressEventName = "Exponent.downloadProgress";
     private static final long MIN_EVENT_DT_MS = 100;
     private ScopedContext mScopedContext;
  
hunk.labels: keep keep add keep keep keep
hunk.after_edit:   private static final String HEADER_KEY = "headers";
  
hunk.file_path: android/expoview/src/main/java/versioned/host/exp/exponent/modules/api/FileSystemModule.java
hunk.type: add
file: /**
   * Copyright (c) 2015-present, Facebook, Inc.
   * All rights reserved.
   *
   * This source code is licensed under the BSD-style license found in the
   * LICENSE file in the root directory of this source tree. An additional grant
   * of patent rights can be found in the PATENTS file in the same directory.
   */
  
  package com.facebook.react.bridge;
  
  /**
   * Interface for receiving notification for bridge idle/busy events. Should not affect application
   * logic and should only be used for debug/monitoring/testing purposes.  Call
   * {@link CatalystInstance#addBridgeIdleDebugListener} to start monitoring.
   *
   * NB: onTransitionToBridgeIdle and onTransitionToBridgeBusy may be called from different threads,
   * and those threads may not be the same thread on which the listener was originally registered.
   */
  public interface NotThreadSafeBridgeIdleDebugListener {
  
    /**
     * Called once all pending JS calls have resolved via an onBatchComplete call in the bridge and
     * the requested native module calls have also run. The bridge will not become busy again until
     * a timer, touch event, etc. causes a Java->JS call to be enqueued again.
     */
    void onTransitionToBridgeIdle();
  
    /**
     * Called when the bridge was in an idle state and executes a JS call or callback.
     */
    void onTransitionToBridgeBusy();
  }
  