package butterknife.internal;

import android.view.View;

/**
 * A {@link View.OnClickListener} that enables debouncing of multiple clicks posted in a row.
 *
 * Once a click is fired, a post is enqueued to the main thread looper queue and no further click
 * is allowed until that post is dequeued.
 *
 * A click on one button disables all buttons.
 *
 */
public abstract class DebouncingOnClickListener implements View.OnClickListener {

  /**
   * This is static because we want to disable clicks for all click listeners.
   */
  private static boolean enabled = true;

  private static final Runnable ENABLE_AGAIN = new Runnable() {
    @Override public void run() {
      enabled = true;
    }
  };

  @Override public final void onClick(View v) {
    if (enabled) {
      enabled = false;
      v.post(ENABLE_AGAIN);
      doClick(v);
    }
  }

  public abstract void doClick(View v);
}

@@ -66,16 +66,21 @@
 A %7B@link
+plain
  View.On
@@ -96,30 +96,37 @@
 ener
-%7D that enables
+ click listener%7D that
  debounc
 ing 
@@ -125,14 +125,10 @@
 ounc
-ing of
+es
  mul
@@ -154,164 +154,26 @@
  in 
-a row.%0A *%0A * Once a click is fired, a post is enqueued to the main thread looper queue and no further click%0A * is allowed until that post is dequeued.%0A *%0A *
+the%0A * same frame.
  A c
@@ -215,12 +215,24 @@
 tons
-.%0A *
+ for that frame.
 %0A */
@@ -317,100 +317,8 @@
 er %7B
-%0A%0A  /**%0A   * This is static because we want to disable clicks for all click listeners.%0A   */
 %0A  p

Clean up the docs to remove implementation details.