public void trackOnce(TrackMe baseTrackme, @NonNull Extra extra) { String firedKey = "downloaded:" + mPkgInfo.packageName + ":" + getVersion(); synchronized (mTrackOnceLock) { if (!mPreferences.getBoolean(firedKey, false)) { mPreferences.edit().putBoolean(firedKey, true).apply(); trackNewAppDownload(baseTrackme, extra); } } }
public void trackOnce(TrackMe baseTrackme, @NonNull Extra extra) { String firedKey = "downloaded:" + mPkgInfo.packageName + ":" + getVersion(); synchronized (mTrackOnceLock) { if (!mPreferences.getBoolean(firedKey, false)) { mPreferences.edit().putBoolean(firedKey, true).apply(); trackNewAppDownload(baseTrackme, extra); } } }
installIdentifier.append("http://").append(mPkgInfo.packageName).append(":").append(getVersion());
installIdentifier.append("http://").append(mPkgInfo.packageName).append(":").append(getVersion());
@Test public void testTrackNewAppDownloadWithVersion() throws Exception { DownloadTracker downloadTracker = new DownloadTracker(mTracker); downloadTracker.setVersion("2"); downloadTracker.trackOnce(new TrackMe(), new DownloadTracker.Extra.None()); verify(mTracker).track(mCaptor.capture()); checkNewAppDownload(mCaptor.getValue()); Matcher m = REGEX_DOWNLOADTRACK.matcher(mCaptor.getValue().get(QueryParams.DOWNLOAD)); assertTrue(m.matches()); assertEquals("package", m.group(1)); assertEquals("2", m.group(2)); assertEquals("2", downloadTracker.getVersion()); assertEquals("http://installer", mCaptor.getValue().get(QueryParams.REFERRER)); downloadTracker.trackOnce(new TrackMe(), new DownloadTracker.Extra.None()); verify(mTracker, times(1)).track(mCaptor.capture()); downloadTracker.setVersion(null); downloadTracker.trackOnce(new TrackMe(), new DownloadTracker.Extra.None()); verify(mTracker, times(2)).track(mCaptor.capture()); checkNewAppDownload(mCaptor.getValue()); m = REGEX_DOWNLOADTRACK.matcher(mCaptor.getValue().get(QueryParams.DOWNLOAD)); assertTrue(m.matches()); assertEquals("package", m.group(1)); assertEquals(123, Integer.parseInt(m.group(2))); assertEquals("http://installer", mCaptor.getValue().get(QueryParams.REFERRER)); }
@Test public void testTrackNewAppDownloadWithVersion() throws Exception { DownloadTracker downloadTracker = new DownloadTracker(mTracker); downloadTracker.setVersion("2"); downloadTracker.trackOnce(new TrackMe(), new DownloadTracker.Extra.None()); verify(mTracker).track(mCaptor.capture()); checkNewAppDownload(mCaptor.getValue()); Matcher m = REGEX_DOWNLOADTRACK.matcher(mCaptor.getValue().get(QueryParams.DOWNLOAD)); assertTrue(m.matches()); assertEquals("package", m.group(1)); assertEquals("2", m.group(2)); assertEquals("2", downloadTracker.getVersion()); assertEquals("http://installer", mCaptor.getValue().get(QueryParams.REFERRER)); downloadTracker.trackOnce(new TrackMe(), new DownloadTracker.Extra.None()); verify(mTracker, times(1)).track(mCaptor.capture()); downloadTracker.setVersion(null); downloadTracker.trackOnce(new TrackMe(), new DownloadTracker.Extra.None()); verify(mTracker, times(2)).track(mCaptor.capture()); checkNewAppDownload(mCaptor.getValue()); m = REGEX_DOWNLOADTRACK.matcher(mCaptor.getValue().get(QueryParams.DOWNLOAD)); assertTrue(m.matches()); assertEquals("package", m.group(1)); assertEquals(123, Integer.parseInt(m.group(2))); assertEquals("http://installer", mCaptor.getValue().get(QueryParams.REFERRER)); }