Skip to content

Commit 9880d38

Browse files
feat: disk metric impl
1 parent 72e127f commit 9880d38

5 files changed

Lines changed: 38 additions & 22 deletions

File tree

sdk/src/androidTest/java/ly/count/android/sdk/DeviceInfoTests.java

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ of this software and associated documentation files (the "Software"), to deal
3131
import androidx.test.ext.junit.runners.AndroidJUnit4;
3232
import java.io.UnsupportedEncodingException;
3333
import java.net.URLDecoder;
34-
import java.util.AbstractMap;
3534
import java.util.HashMap;
3635
import java.util.Locale;
3736
import java.util.Map;
@@ -330,9 +329,9 @@ public void testMetricProviderOverride_fullOverride() {
330329
assertEquals("Z", deviceInfo.mp.hasHinge(TestUtils.getContext()));
331330
assertEquals("88", deviceInfo.mp.getRunningTime());
332331

333-
Map.Entry<String, String> diskSpaces = deviceInfo.mp.getDiskSpaces(TestUtils.getContext());
334-
assertEquals("45", diskSpaces.getKey());
335-
assertEquals("23", diskSpaces.getValue());
332+
DiskMetric diskMetric = deviceInfo.mp.getDiskSpaces(TestUtils.getContext());
333+
assertEquals("45", diskMetric.totalMb);
334+
assertEquals("23", diskMetric.usedMb);
336335
}
337336

338337
@Test
@@ -384,15 +383,15 @@ public void testMetricProviderOverride_emptyOverride() {
384383
@Test
385384
public void testMetricProviderOverride_diskSpacesOverride() {
386385
MetricProvider diskOverride = new MetricProvider() {
387-
@Override public Map.Entry<String, String> getDiskSpaces(Context context) {
388-
return new AbstractMap.SimpleEntry<>("100", "50");
386+
@Override public DiskMetric getDiskSpaces(Context context) {
387+
return new DiskMetric("100", "50");
389388
}
390389
};
391390
DeviceInfo deviceInfo = new DeviceInfo(diskOverride);
392391

393-
Map.Entry<String, String> diskSpaces = deviceInfo.mp.getDiskSpaces(TestUtils.getContext());
394-
assertEquals("100", diskSpaces.getKey());
395-
assertEquals("50", diskSpaces.getValue());
392+
DiskMetric diskMetric = deviceInfo.mp.getDiskSpaces(TestUtils.getContext());
393+
assertEquals("100", diskMetric.totalMb);
394+
assertEquals("50", diskMetric.usedMb);
396395

397396
// other metrics should be defaults
398397
assertEquals("Android", deviceInfo.mp.getOS());

sdk/src/androidTest/java/ly/count/android/sdk/MockedMetricProvider.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@
44
import android.util.DisplayMetrics;
55
import androidx.annotation.NonNull;
66
import androidx.annotation.Nullable;
7-
import java.util.AbstractMap;
8-
import java.util.Map;
97

108
public class MockedMetricProvider implements MetricProvider {
119

@@ -113,7 +111,7 @@ public MockedMetricProvider() {
113111
return new DisplayMetrics();
114112
}
115113

116-
@Override public Map.Entry<String, String> getDiskSpaces(Context context) {
117-
return new AbstractMap.SimpleEntry<>("45", "23");
114+
@Override public DiskMetric getDiskSpaces(Context context) {
115+
return new DiskMetric("45", "23");
118116
}
119117
}

sdk/src/main/java/ly/count/android/sdk/DeviceInfo.java

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ of this software and associated documentation files (the "Software"), to deal
4545
import java.io.IOException;
4646
import java.io.RandomAccessFile;
4747
import java.io.UnsupportedEncodingException;
48-
import java.util.AbstractMap;
4948
import java.util.Date;
5049
import java.util.Locale;
5150
import java.util.Map;
@@ -310,8 +309,8 @@ public String getOpenGL(Context context) {
310309
}
311310

312311
@NonNull
313-
public Map.Entry<String, String> getDiskSpaces(Context context) {
314-
Map.Entry<String, String> ov = DeviceInfo.this.mpOverride.getDiskSpaces(context);
312+
public DiskMetric getDiskSpaces(Context context) {
313+
DiskMetric ov = DeviceInfo.this.mpOverride.getDiskSpaces(context);
315314
if (ov != null) return ov;
316315
long totalBytes = 0;
317316
long usedBytes = 0;
@@ -352,7 +351,7 @@ public Map.Entry<String, String> getDiskSpaces(Context context) {
352351
long usedMb = usedBytes / 1024 / 1024;
353352

354353
Countly.sharedInstance().L.d("[DeviceInfo] getDiskSpaces, totalSpaceInMB:[" + totalMb + "], usedSpaceInMB:[" + usedMb + "]");
355-
return new AbstractMap.SimpleEntry<>(Long.toString(totalMb), Long.toString(usedMb));
354+
return new DiskMetric(Long.toString(totalMb), Long.toString(usedMb));
356355
}
357356

358357
@Nullable
@@ -681,18 +680,18 @@ JSONObject getCrashDataJSON(@NonNull CrashData crashData, final boolean isNative
681680
Map<String, Object> getCrashMetrics(@NonNull final Context context, boolean isNativeCrash, @Nullable final Map<String, String> metricOverride, @NonNull ModuleLog L) {
682681
Map<String, Object> metrics = getCommonMetrics(context, metricOverride, L);
683682

684-
Map.Entry<String, String> storageMb = mp.getDiskSpaces(context);
683+
DiskMetric diskMetric = mp.getDiskSpaces(context);
685684

686685
putIfNotNullAndNotEmpty(metrics, "_cpu", mp.getCpu());
687686
putIfNotNullAndNotEmpty(metrics, "_opengl", mp.getOpenGL(context));
688687
putIfNotNullAndNotEmpty(metrics, "_root", mp.isRooted());
689688
putIfNotNullAndNotEmpty(metrics, "_ram_total", mp.getRamTotal());
690-
putIfNotNullAndNotEmpty(metrics, "_disk_total", storageMb.getKey());
689+
putIfNotNullAndNotEmpty(metrics, "_disk_total", diskMetric.totalMb);
691690

692691
if (!isNativeCrash) {
693692
//if is not a native crash
694693
putIfNotNullAndNotEmpty(metrics, "_ram_current", mp.getRamCurrent(context));
695-
putIfNotNullAndNotEmpty(metrics, "_disk_current", storageMb.getValue());
694+
putIfNotNullAndNotEmpty(metrics, "_disk_current", diskMetric.usedMb);
696695
putIfNotNullAndNotEmpty(metrics, "_bat", mp.getBatteryLevel(context));
697696
putIfNotNullAndNotEmpty(metrics, "_run", mp.getRunningTime());
698697
putIfNotNullAndNotEmpty(metrics, "_orientation", mp.getOrientation(context));
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package ly.count.android.sdk;
2+
3+
/**
4+
* Holds disk usage metrics in megabytes.
5+
*/
6+
public class DiskMetric {
7+
/**
8+
* Total disk space in megabytes
9+
*/
10+
public final String totalMb;
11+
12+
/**
13+
* Used (current) disk space in megabytes
14+
*/
15+
public final String usedMb;
16+
17+
public DiskMetric(String totalMb, String usedMb) {
18+
this.totalMb = totalMb;
19+
this.usedMb = usedMb;
20+
}
21+
}

sdk/src/main/java/ly/count/android/sdk/MetricProvider.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import android.content.Context;
44
import android.util.DisplayMetrics;
55
import androidx.annotation.Nullable;
6-
import java.util.Map;
76

87
public interface MetricProvider {
98
default String getOS() {
@@ -106,7 +105,7 @@ default DisplayMetrics getDisplayMetrics(Context context) {
106105
return null;
107106
}
108107

109-
default Map.Entry<String, String> getDiskSpaces(Context context) {
108+
default DiskMetric getDiskSpaces(Context context) {
110109
return null;
111110
}
112111
}

0 commit comments

Comments
 (0)