|
| 1 | +package com.airbnb.epoxy; |
| 2 | + |
| 3 | +import android.os.Handler; |
| 4 | +// ^^^^^^^ reference android/ |
| 5 | +// ^^ reference android/os/ |
| 6 | +// ^^^^^^^ reference android/os/Handler# |
| 7 | + |
| 8 | +import static com.airbnb.epoxy.EpoxyAsyncUtil.MAIN_THREAD_HANDLER; |
| 9 | +// ^^^ reference com/ |
| 10 | +// ^^^^^^ reference com/airbnb/ |
| 11 | +// ^^^^^ reference com/airbnb/epoxy/ |
| 12 | +// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAsyncUtil# |
| 13 | +import static com.airbnb.epoxy.EpoxyAsyncUtil.getAsyncBackgroundHandler; |
| 14 | +// ^^^ reference com/ |
| 15 | +// ^^^^^^ reference com/airbnb/ |
| 16 | +// ^^^^^ reference com/airbnb/epoxy/ |
| 17 | +// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAsyncUtil# |
| 18 | + |
| 19 | +/** |
| 20 | + * A subclass of {@link EpoxyController} that makes it easy to do model building and diffing in |
| 21 | + * the background. |
| 22 | + * <p> |
| 23 | + * See https://github.com/airbnb/epoxy/wiki/Epoxy-Controller#asynchronous-support |
| 24 | + */ |
| 25 | +public abstract class AsyncEpoxyController extends EpoxyController { |
| 26 | +// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/AsyncEpoxyController# |
| 27 | +// ^^^^^^^^^^^^^^^ reference _root_/ |
| 28 | + |
| 29 | + /** |
| 30 | + * A new instance that does model building and diffing asynchronously. |
| 31 | + */ |
| 32 | + public AsyncEpoxyController() { |
| 33 | +// ^^^^^^ definition com/airbnb/epoxy/AsyncEpoxyController#`<init>`(). |
| 34 | + this(true); |
| 35 | +// ^^^^ reference com/airbnb/epoxy/AsyncEpoxyController#`<init>`(+1). |
| 36 | + } |
| 37 | + |
| 38 | + /** |
| 39 | + * @param enableAsync True to do model building and diffing asynchronously, false to do them |
| 40 | + * both on the main thread. |
| 41 | + */ |
| 42 | + public AsyncEpoxyController(boolean enableAsync) { |
| 43 | +// ^^^^^^ definition com/airbnb/epoxy/AsyncEpoxyController#`<init>`(+1). |
| 44 | +// ^^^^^^^^^^^ definition local0 |
| 45 | + this(enableAsync, enableAsync); |
| 46 | +// ^^^^ reference com/airbnb/epoxy/AsyncEpoxyController#`<init>`(+2). |
| 47 | +// ^^^^^^^^^^^ reference local0 |
| 48 | +// ^^^^^^^^^^^ reference local0 |
| 49 | + } |
| 50 | + |
| 51 | + /** |
| 52 | + * Individually control whether model building and diffing are done async or on the main thread. |
| 53 | + */ |
| 54 | + public AsyncEpoxyController(boolean enableAsyncModelBuilding, boolean enableAsyncDiffing) { |
| 55 | +// ^^^^^^ definition com/airbnb/epoxy/AsyncEpoxyController#`<init>`(+2). |
| 56 | +// ^^^^^^^^^^^^^^^^^^^^^^^^ definition local1 |
| 57 | +// ^^^^^^^^^^^^^^^^^^ definition local2 |
| 58 | + super(getHandler(enableAsyncModelBuilding), getHandler(enableAsyncDiffing)); |
| 59 | +// ^^^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyController#getHandler(). |
| 60 | +// ^^^^^^^^^^^^^^^^^^^^^^^^ reference local1 |
| 61 | +// ^^^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyController#getHandler(). |
| 62 | +// ^^^^^^^^^^^^^^^^^^ reference local2 |
| 63 | + } |
| 64 | + |
| 65 | + private static Handler getHandler(boolean enableAsync) { |
| 66 | +// ^^^^^^^ reference _root_/ |
| 67 | +// ^^^^^^^^^^ definition com/airbnb/epoxy/AsyncEpoxyController#getHandler(). |
| 68 | +// ^^^^^^^^^^^ definition local3 |
| 69 | + return enableAsync ? getAsyncBackgroundHandler() : MAIN_THREAD_HANDLER; |
| 70 | +// ^^^^^^^^^^^ reference local3 |
| 71 | +// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyController#getAsyncBackgroundHandler# |
| 72 | +// ^^^^^^^^^^^^^^^^^^^ reference _root_/ |
| 73 | + } |
| 74 | +} |
0 commit comments