/** * Use this to disable this Tracker, e.g. if the user opted out of tracking. * The Tracker will persist the choice and remain disable on next instance creation.<p> * * @param optOut true to disable reporting */ public void setOptOut(boolean optOut) { mOptOut = optOut; getPreferences().edit().putBoolean(PREF_KEY_TRACKER_OPTOUT, optOut).apply(); mDispatcher.clear(); }
/** * Processes all queued events in background thread */ public void dispatch() { if (mOptOut) return; mDispatcher.forceDispatch(); }
/** * {@link Dispatcher#getConnectionTimeOut()} */ public int getDispatchTimeout() { return mDispatcher.getConnectionTimeOut(); }
@Test public void testSetNewSession() { Tracker tracker = new Tracker(mMatomo, mTrackerBuilder); TrackMe trackMe = new TrackMe(); tracker.track(trackMe); verify(mDispatcher).submit(mCaptor.capture()); assertEquals("1", mCaptor.getValue().get(QueryParams.SESSION_START)); tracker.startNewSession(); TrackHelper.track().screen("").with(tracker); verify(mDispatcher, times(2)).submit(mCaptor.capture()); assertEquals("1", mCaptor.getValue().get(QueryParams.SESSION_START)); }
@Test public void testSetDispatchInterval() { Tracker tracker = new Tracker(mMatomo, mTrackerBuilder); tracker.setDispatchInterval(1); verify(mDispatcher).setDispatchInterval(1); tracker.getDispatchInterval(); verify(mDispatcher).getDispatchInterval(); }
@Test public void testSetDispatchTimeout() { Tracker tracker = new Tracker(mMatomo, mTrackerBuilder); int timeout = 1337; tracker.setDispatchTimeout(timeout); verify(mDispatcher).setConnectionTimeOut(timeout); tracker.getDispatchTimeout(); verify(mDispatcher).getConnectionTimeOut(); }
trackMes.add(invocation.getArgument(0)); return null; }).when(mDispatcher).submit(any(TrackMe.class)); when(mDispatcher.getConnectionTimeOut()).thenReturn(1000); for (int i = 0; i < 1000; i++) { trackMes.clear();
/** * Sets the dispatch mode. * * @see DispatchMode */ public void setDispatchMode(DispatchMode mode) { getPreferences().edit().putString(PREF_KEY_DISPATCHER_MODE, mode.toString()).apply(); mDispatcher.setDispatchMode(mode); }
/** * Defines if when dispatched, posted JSON must be Gzipped. * Need to be handle from web server side with mod_deflate/APACHE lua_zlib/NGINX. * * @param dispatchGzipped boolean */ public Tracker setDispatchGzipped(boolean dispatchGzipped) { mDispatcher.setDispatchGzipped(dispatchGzipped); return this; }
/** * @return in milliseconds */ public long getDispatchInterval() { return mDispatcher.getDispatchInterval(); }
/** * Set the interval to 0 to dispatch events as soon as they are queued. * If a negative value is used the dispatch timer will never run, a manual dispatch must be used. * * @param dispatchInterval in milliseconds */ public Tracker setDispatchInterval(long dispatchInterval) { mDispatcher.setDispatchInterval(dispatchInterval); return this; }
/** * {@link Dispatcher#setConnectionTimeOut(int)} */ public void setDispatchTimeout(int timeout) { mDispatcher.setConnectionTimeOut(timeout); }
/** * If we are in dry-run mode then this will return a datastructure. * * @return a datastructure or null */ public List<Packet> getDryRunTarget() { return mDispatcher.getDryRunTarget(); }
@Test public void testApplicationDomain() { when(mTrackerBuilder.getApplicationBaseUrl()).thenReturn("http://my-domain.com"); Tracker tracker = new Tracker(mMatomo, mTrackerBuilder); TrackHelper.track().screen("test/test").title("Test title").with(tracker); verify(mDispatcher).submit(mCaptor.capture()); validateDefaultQuery(mCaptor.getValue()); assertTrue(mCaptor.getValue().get(QueryParams.URL_PATH).equals("http://my-domain.com/test/test")); }
@Test public void testSetDispatchInterval() { Tracker tracker = new Tracker(mMatomo, mTrackerBuilder); tracker.setDispatchInterval(1); verify(mDispatcher).setDispatchInterval(1); tracker.getDispatchInterval(); verify(mDispatcher).getDispatchInterval(); }
@Test public void testSetDispatchTimeout() { Tracker tracker = new Tracker(mMatomo, mTrackerBuilder); int timeout = 1337; tracker.setDispatchTimeout(timeout); verify(mDispatcher).setConnectionTimeOut(timeout); tracker.getDispatchTimeout(); verify(mDispatcher).getConnectionTimeOut(); }
trackMes.add(invocation.getArgument(0)); return null; }).when(mDispatcher).submit(any(TrackMe.class)); when(mDispatcher.getConnectionTimeOut()).thenReturn(1000); for (int i = 0; i < 1000; i++) { trackMes.clear();
/** * Sets the dispatch mode. * * @see DispatchMode */ public void setDispatchMode(DispatchMode mode) { getPreferences().edit().putString(PREF_KEY_DISPATCHER_MODE, mode.toString()).apply(); mDispatcher.setDispatchMode(mode); }
/** * Defines if when dispatched, posted JSON must be Gzipped. * Need to be handle from web server side with mod_deflate/APACHE lua_zlib/NGINX. * * @param dispatchGzipped boolean */ public Tracker setDispatchGzipped(boolean dispatchGzipped) { mDispatcher.setDispatchGzipped(dispatchGzipped); return this; }
/** * @return in milliseconds */ public long getDispatchInterval() { return mDispatcher.getDispatchInterval(); }