Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(268)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ImpressionTracker.java

Issue 2463133002: 📰 Make the MORE button more configurable (Closed)
Patch Set: Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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.

Powered by Google App Engine
This is Rietveld 408576698