Skip to content

Commit 48fc2fa

Browse files
authored
Feature SDK analytics
1 parent cf4439d commit 48fc2fa

File tree

4 files changed

+50
-7
lines changed

4 files changed

+50
-7
lines changed
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package com.cloudinary.android;
2+
3+
import androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner;
4+
5+
import org.junit.Assert;
6+
import org.junit.BeforeClass;
7+
import org.junit.Test;
8+
import org.junit.runner.RunWith;
9+
10+
@RunWith(AndroidJUnit4ClassRunner.class)
11+
public class AnalyticsTest extends AbstractTest {
12+
13+
@BeforeClass
14+
public synchronized static void setup() {
15+
MediaManager.get().getCloudinary().analytics.setSDKSemver("2.0.0");
16+
MediaManager.get().getCloudinary().analytics.setTechVersion("13.0.0");
17+
MediaManager.get().getCloudinary().config.secure = true;
18+
}
19+
20+
@Test
21+
public void testAnalyticsURL() {
22+
MediaManager.get().getCloudinary().config.analytics = true;
23+
String url = MediaManager.get().getCloudinary().url().generate("sample");
24+
Assert.assertEquals(url, "https://res.cloudinary.com/sdk-test/image/upload/sample?_a=AFAACAN0");
25+
}
26+
27+
@Test
28+
public void testAnalyticsFalseURL() {
29+
MediaManager.get().getCloudinary().config.analytics = false;
30+
String url = MediaManager.get().getCloudinary().url().generate("sample");
31+
Assert.assertEquals(url, "https://res.cloudinary.com/sdk-test/image/upload/sample");
32+
}
33+
}

core/src/main/java/com/cloudinary/android/MediaManager.java

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import com.cloudinary.android.policy.GlobalUploadPolicy;
2727
import com.cloudinary.android.policy.UploadPolicy;
2828
import com.cloudinary.android.signed.SignatureProvider;
29+
import com.cloudinary.utils.Analytics;
2930
import com.cloudinary.utils.StringUtils;
3031

3132
import java.util.Map;
@@ -59,6 +60,9 @@ public class MediaManager {
5960

6061
private final ExecutorService executor;
6162

63+
// Tech version is the Android SDK (Int) + "0" since the analytics knows to parse major.minor
64+
private final String techVersion = Integer.toString(android.os.Build.VERSION.SDK_INT) + ".0";
65+
6266
private GlobalUploadPolicy globalUploadPolicy = GlobalUploadPolicy.defaultPolicy();
6367
private DownloadRequestBuilderFactory downloadRequestBuilderFactory;
6468

@@ -86,6 +90,17 @@ private MediaManager(@NonNull Context context, @Nullable SignatureProvider signa
8690
cloudinary = new Cloudinary();
8791
}
8892

93+
if (cloudinary.config.analytics == null) {
94+
cloudinary.config.analytics = true;
95+
}
96+
cloudinary.setAnalytics(new Analytics("F", VERSION, techVersion));
97+
98+
// set https as default for android P and up - in P the default policy fails all http
99+
// requests
100+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
101+
cloudinary.config.secure = true;
102+
}
103+
89104
callbackDispatcher.registerCallback(new UploadCallback() {
90105

91106
@Override
@@ -232,13 +247,6 @@ public Cloudinary getCloudinary() {
232247
*/
233248
public Url url() {
234249
Url url = cloudinary.url();
235-
236-
// set https as default for android P and up - in P the default policy fails all http
237-
// requests
238-
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
239-
url.secure(true);
240-
}
241-
242250
return url;
243251
}
244252

download/src/androidTest/java/com/cloudinary/android/download/DownloadRequestBuilderImplTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ public synchronized static void setup() {
4343
MediaManager.init(InstrumentationRegistry.getInstrumentation().getTargetContext());
4444
cloudName = MediaManager.get().getCloudinary().config.cloudName;
4545
MediaManager.get().getCloudinary().config.secure = true;
46+
MediaManager.get().getCloudinary().config.analytics = false;
4647
initialized = true;
4748
}
4849
}

glide-integration/src/androidTest/java/com/cloudinary/android/glide_integration/CloudinaryRequestModelLoaderTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ public static void setUp() {
4949
MediaManager.init(context);
5050
MediaManager.get().getCloudinary().config.cloudName = TEST_CLOUD_NAME;
5151
MediaManager.get().getCloudinary().config.secure = true;
52+
MediaManager.get().getCloudinary().config.analytics = false;
5253
}
5354

5455
@Before

0 commit comments

Comments
 (0)