File tree Expand file tree Collapse file tree
src/android/src/main/java/io/callstack/react/fbads Expand file tree Collapse file tree Original file line number Diff line number Diff line change 77 */
88package io .callstack .react .fbads ;
99
10- import android .view .View ;
10+ import android .view .MotionEvent ;
1111
1212import com .facebook .ads .NativeAd ;
1313import com .facebook .react .bridge .Arguments ;
@@ -23,6 +23,12 @@ public class NativeAdView extends ReactViewGroup {
2323 /** @{RCTEventEmitter} instance used for sending events back to JS **/
2424 private RCTEventEmitter mEventEmitter ;
2525
26+ /** @{float} x coordinate where the touch event started **/
27+ private float startX ;
28+
29+ /** @{float} y coordinate where the touche event started **/
30+ private float startY ;
31+
2632 /**
2733 * Creates new NativeAdView instance and retrieves event emitter
2834 *
@@ -73,4 +79,30 @@ public void setNativeAd(NativeAd nativeAd) {
7379
7480 mNativeAd .registerViewForInteraction (this );
7581 }
82+
83+ /**
84+ * If touch event is a click, simulate native event so that `FBAds` can
85+ * trigger its listener
86+ *
87+ * @param {MotionEvent} ev
88+ *
89+ * @return
90+ */
91+ @ Override
92+ public boolean onTouchEvent (MotionEvent ev ) {
93+ switch (ev .getActionMasked ()) {
94+ case MotionEvent .ACTION_DOWN :
95+ startX = ev .getX ();
96+ startY = ev .getY ();
97+ break ;
98+ case MotionEvent .ACTION_UP :
99+ float deltaX = Math .abs (startX - ev .getX ());
100+ float deltaY = Math .abs (startY - ev .getY ());
101+ if (deltaX < 200 & deltaY < 200 ) {
102+ performClick ();
103+ }
104+ break ;
105+ }
106+ return true ;
107+ }
76108}
You can’t perform that action at this time.
0 commit comments