Skip to content

Commit ff01d22

Browse files
authored
E2-1606 implement defined counters in SDK (#267)
* remove one unneeded import * revert to master for build * remove instance * added counters * move onStartResponse counter and other slight changes * add test for sendAllCounts
1 parent 5a4cba6 commit ff01d22

22 files changed

+122
-26
lines changed

AndroidSDKCore/src/main/java/com/leanplum/ActionContext.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -369,6 +369,7 @@ public void runActionNamed(String name) {
369369
createActionContextForMessageId(messageAction.toString(), args, messageId, name, false);
370370
}
371371
}
372+
Leanplum.countAggregator().incrementCount("runActionNamed");
372373
}
373374

374375
/**
@@ -526,6 +527,7 @@ public void runTrackedActionNamed(String name) {
526527
} catch (Throwable t) {
527528
Util.handleException(t);
528529
}
530+
Leanplum.countAggregator().incrementCount("runTrackedActionNamed");
529531
}
530532

531533
/**

AndroidSDKCore/src/main/java/com/leanplum/Leanplum.java

Lines changed: 25 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,8 @@ public class Leanplum {
108108

109109
private static Runnable pushStartCallback;
110110

111+
private static CountAggregator countAggregator = new CountAggregator();
112+
111113
private Leanplum() {
112114
}
113115

@@ -264,6 +266,7 @@ public static void trackAllAppScreens() {
264266
*/
265267
public static void setVariantDebugInfoEnabled(boolean variantDebugInfoEnabled) {
266268
LeanplumInternal.setIsVariantDebugInfoEnabled(variantDebugInfoEnabled);
269+
countAggregator.incrementCount("setVariantDebugInfoEnabled");
267270
}
268271

269272
/**
@@ -362,6 +365,7 @@ public static void syncResources() {
362365
} catch (Throwable t) {
363366
Util.handleException(t);
364367
}
368+
countAggregator.incrementCount("syncResources");
365369
}
366370

367371
/**
@@ -377,6 +381,7 @@ public static void syncResourcesAsync() {
377381
} catch (Throwable t) {
378382
Util.handleException(t);
379383
}
384+
countAggregator.incrementCount("syncResources");
380385
}
381386

382387
/**
@@ -398,6 +403,7 @@ public static void syncResources(
398403
} catch (Throwable t) {
399404
Util.handleException(t);
400405
}
406+
countAggregator.incrementCount("syncResourcePaths");
401407
}
402408

403409
/**
@@ -419,6 +425,7 @@ public static void syncResourcesAsync(
419425
} catch (Throwable t) {
420426
Util.handleException(t);
421427
}
428+
countAggregator.incrementCount("syncResourcePaths");
422429
}
423430

424431
/**
@@ -593,6 +600,7 @@ protected Void doInBackground(Void... params) {
593600
} catch (Throwable t) {
594601
Util.handleException(t);
595602
}
603+
countAggregator.incrementCount("start");
596604
}
597605

598606
/**
@@ -760,6 +768,7 @@ private static void handleStartResponse(final JSONObject response) {
760768
@Override
761769
protected Void doInBackground(Void... params) {
762770
boolean success = Request.isResponseSuccess(response);
771+
Leanplum.countAggregator().incrementCount("onStartResponse");
763772
if (!success) {
764773
try {
765774
LeanplumInternal.setHasStarted(true);
@@ -833,7 +842,7 @@ protected Void doInBackground(Void... params) {
833842
}
834843

835844
Set<String> enabledCounters = parseSdkCounters(response);
836-
CountAggregator.INSTANCE.setEnabledCounters(enabledCounters);
845+
countAggregator.setEnabledCounters(enabledCounters);
837846
Set<String> enabledFeatureFlags = parseFeatureFlags(response);
838847
FeatureFlagManager.INSTANCE.setEnabledFeatureFlags((enabledFeatureFlags));
839848
parseVariantDebugInfo(response);
@@ -1396,6 +1405,7 @@ private static void defineAction(String name, int kind, ActionArgs args,
13961405
} catch (Throwable t) {
13971406
Util.handleException(t);
13981407
}
1408+
Leanplum.countAggregator().incrementCount("defineAction");
13991409
}
14001410

14011411
/**
@@ -1590,6 +1600,7 @@ private static void setTrafficSourceInfoInternal(HashMap<String, Object> params)
15901600
public static void track(final String event, double value, String info,
15911601
Map<String, ?> params) {
15921602
LeanplumInternal.track(event, value, info, params, null);
1603+
countAggregator.incrementCount("track");
15931604
}
15941605

15951606
/**
@@ -1825,6 +1836,7 @@ public void run() {
18251836
} catch (Throwable t) {
18261837
Util.handleException(t);
18271838
}
1839+
countAggregator.incrementCount("advanceTo");
18281840
}
18291841

18301842
/**
@@ -2027,6 +2039,7 @@ public void error(Exception e) {
20272039
} catch (Throwable t) {
20282040
Util.handleException(t);
20292041
}
2042+
countAggregator.incrementCount("forceContentUpdate");
20302043
}
20312044

20322045
/**
@@ -2179,6 +2192,7 @@ private static void parseVariantDebugInfo(JSONObject response) {
21792192
*/
21802193
public static void clearUserContent() {
21812194
VarCache.clearUserContent();
2195+
countAggregator.incrementCount("clearUserContent");
21822196
}
21832197

21842198
@VisibleForTesting
@@ -2198,12 +2212,16 @@ public static Set<String> parseFeatureFlags(JSONObject response) {
21982212
}
21992213

22002214
private static Set<String> toSet(JSONArray array) {
2201-
Set<String> set = new HashSet<>();
2202-
if (array != null) {
2203-
for (int i = 0; i < array.length(); i++) {
2204-
set.add(array.optString(i));
2205-
}
2215+
Set<String> set = new HashSet<>();
2216+
if (array != null) {
2217+
for (int i = 0; i < array.length(); i++) {
2218+
set.add(array.optString(i));
22062219
}
2207-
return set;
22082220
}
2221+
return set;
2222+
}
2223+
2224+
public static CountAggregator countAggregator() {
2225+
return countAggregator;
2226+
}
22092227
}

AndroidSDKCore/src/main/java/com/leanplum/LeanplumInbox.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -435,6 +435,7 @@ private List<LeanplumInboxMessage> allMessages(List<LeanplumInboxMessage> messag
435435
} catch (Throwable t) {
436436
Util.handleException(t);
437437
}
438+
Leanplum.countAggregator().incrementCount("allMessages");
438439
return messages;
439440
}
440441

AndroidSDKCore/src/main/java/com/leanplum/callbacks/RegisterDeviceCallback.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121

2222
package com.leanplum.callbacks;
2323

24+
import com.leanplum.Leanplum;
25+
2426
/**
2527
* Callback that gets run when the device needs to be registered.
2628
*
@@ -45,10 +47,10 @@ public void run() {
4547

4648
public void setResponseHandler(EmailCallback callback) {
4749
this.callback = callback;
50+
Leanplum.countAggregator().incrementCount("initWithCallback");
4851
}
4952

50-
public void run() {
51-
this.onResponse(callback);
53+
public void run() { this.onResponse(callback);
5254
}
5355

5456
public abstract void onResponse(EmailCallback callback);

AndroidSDKCore/src/main/java/com/leanplum/internal/ActionArg.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import android.text.TextUtils;
2525

2626
import java.io.InputStream;
27+
import com.leanplum.Leanplum;
2728

2829
/**
2930
* Represents an argument for a message or action.
@@ -46,6 +47,7 @@ private static <T> ActionArg<T> argNamed(String name, T defaultValue, String kin
4647
arg.name = name;
4748
arg.kind = kind;
4849
arg.defaultValue = defaultValue;
50+
Leanplum.countAggregator().incrementCount("argNamed");
4951
return arg;
5052
}
5153

AndroidSDKCore/src/main/java/com/leanplum/internal/ActionManager.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -450,6 +450,7 @@ public void recordMessageTrigger(String messageId) {
450450
int occurrences = getMessageTriggerOccurrences(messageId);
451451
occurrences++;
452452
saveMessageTriggerOccurrences(occurrences, messageId);
453+
Leanplum.countAggregator().incrementCount("recordMessageTrigger");
453454
}
454455

455456
/**

AndroidSDKCore/src/main/java/com/leanplum/internal/CountAggregator.java

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,9 @@
99
import java.util.Set;
1010

1111
public class CountAggregator {
12-
public static final CountAggregator INSTANCE = new CountAggregator();
13-
1412
private Set<String> enabledCounters = new HashSet<>();
1513
private final Map<String, Integer> counts = new HashMap<>();
1614

17-
@VisibleForTesting
18-
CountAggregator() {
19-
super();
20-
}
21-
2215
public void setEnabledCounters(Set<String> enabledCounters) {
2316
this.enabledCounters = enabledCounters;
2417
}

AndroidSDKCore/src/main/java/com/leanplum/internal/FeatureFlagManager.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
import android.support.annotation.VisibleForTesting;
44

5+
import com.leanplum.Leanplum;
6+
57
import java.util.HashSet;
68
import java.util.Set;
79

@@ -20,6 +22,7 @@ public void setEnabledFeatureFlags(Set<String> enabledFeatureFlags) {
2022
}
2123

2224
public Boolean isFeatureFlagEnabled(String featureFlagName) {
25+
Leanplum.countAggregator().incrementCount("isFeatureFlagEnabled");
2326
return this.enabledFeatureFlags.contains(featureFlagName);
2427
}
2528
}

AndroidSDKCore/src/main/java/com/leanplum/internal/FileManager.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,7 @@ public void error(Exception e) {
130130
}
131131
}
132132
}
133+
Leanplum.countAggregator().incrementCount("maybeDownloadFile");
133134
return DownloadFileResult.NONE;
134135
}
135136

AndroidSDKCore/src/main/java/com/leanplum/internal/LeanplumEventCallbackManager.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323
import android.os.AsyncTask;
2424
import android.support.annotation.NonNull;
2525

26+
import com.leanplum.Leanplum;
27+
2628
import org.json.JSONObject;
2729

2830
import java.util.HashMap;
@@ -56,6 +58,7 @@ void addCallbacks(Request request, Request.ResponseCallback responseCallback,
5658
}
5759

5860
eventCallbacks.put(request, new LeanplumEventCallbacks(responseCallback, errorCallback));
61+
Leanplum.countAggregator().incrementCount("addEventCallbackAt");
5962
}
6063

6164
/**
@@ -95,6 +98,7 @@ protected Void doInBackground(Void... params) {
9598
iterator.remove();
9699
}
97100
}
101+
Leanplum.countAggregator().incrementCount("invokeErrorCallbacksOnResponses");
98102
}
99103

100104
/**
@@ -136,6 +140,7 @@ protected Void doInBackground(Void... params) {
136140
iterator.remove();
137141
}
138142
}
143+
Leanplum.countAggregator().incrementCount("invokeSuccessCallbacksOnResponses");
139144
}
140145

141146
private static class LeanplumEventCallbacks {

0 commit comments

Comments
 (0)