Chromium Code Reviews| Index: chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ImpressionTracker.java |
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ImpressionTracker.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ImpressionTracker.java |
| index 9fefe6faa696616de5c7826003eb9633e8e83bd8..5dff60b4c8ddb11aaf66fc0374c4a43fdac20411 100644 |
| --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ImpressionTracker.java |
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ImpressionTracker.java |
| @@ -19,11 +19,12 @@ |
| /** |
| * The Listener will be called back on each impression. Whenever at least 1/3 of the view's |
| * height is visible, that counts as an impression. Note that this will get called often while |
| - * the view is visible; it's the implementer's responsibility to count only one impression or |
| - * reset the {@link ImpressionTracker}. |
| + * the view is visible; it's the implementer's responsibility to count only one impression, |
| + * reset the {@link ImpressionTracker} or configure it to fire only once. |
|
PEConn
2016/11/01 11:05:43
Rewrite this comment a bit, maybe:
This will be ca
dgn
2016/11/01 14:48:11
Thanks! that's better yes
|
| * |
| * @see ImpressionTracker#reset(View) |
| * @see ImpressionTracker#wasTriggered() |
| + * @see ImpressionTracker#ImpressionTracker(View, Listener, boolean) |
| */ |
| public interface Listener { |
| void onImpression(); |
| @@ -37,13 +38,15 @@ |
| private View mView; |
| private final Listener mListener; |
| private boolean mTriggered; |
| + private boolean mIsOneShot; |
|
PEConn
2016/11/01 11:05:44
I think it would be nicer to have two separate cla
dgn
2016/11/01 14:48:11
Ok I'll do all that in a separate CL.
|
| /** |
| * Creates an {@link ImpressionTracker}. {@code view} can be {@code null} if the tracked should |
| * not be registered on any View at construction time. |
| */ |
| - public ImpressionTracker(@Nullable View view, Listener listener) { |
| + public ImpressionTracker(@Nullable View view, Listener listener, boolean isOneShot) { |
|
PEConn
2016/11/01 11:05:43
Add some Javadoc for isOneShot?
dgn
2016/11/01 14:48:11
Done.
|
| mListener = listener; |
| + mIsOneShot = isOneShot; |
| reset(view); |
| } |
| @@ -96,6 +99,7 @@ public boolean onPreDraw() { |
| if (rect.height() >= mView.getHeight() / 3) { |
| mTriggered = true; |
| mListener.onImpression(); |
| + if (mIsOneShot) reset(null); |
| } |
| } |
| // Proceed with the current drawing pass. |