Skip to content

Commit 49cd2c9

Browse files
authored
chore: clarify min polling interval as 15 mins (#319)
1 parent 109b1ed commit 49cd2c9

File tree

4 files changed

+15
-10
lines changed

4 files changed

+15
-10
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,5 @@
66
/build
77
/captures
88
values.gradle
9+
jacoco.exec
10+

android-sdk/src/main/java/com/optimizely/ab/android/sdk/OptimizelyManager.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@
5454

5555
import java.io.IOException;
5656
import java.io.InputStream;
57+
import java.util.List;
5758
import java.util.Set;
5859

5960

@@ -677,6 +678,7 @@ public static class Builder {
677678
* Sets the interval which {@link DatafileService} through the {@link DatafileHandler} will attempt to update the
678679
* cached datafile. If you set this to -1, you disable background updates. If you don't set
679680
* a download interval (or set to less than 0), then no background updates will be scheduled or occur.
681+
* The minimum interval is 900 secs (15 minutes) (enforced by the Android JobScheduler API. See {@link android.app.job.JobInfo})
680682
*
681683
* @param interval the interval in seconds
682684
* @return this {@link Builder} instance
@@ -789,10 +791,10 @@ public OptimizelyManager build(Context context) {
789791
}
790792

791793
if (datafileDownloadInterval > 0) {
792-
// AlarmManager doesn't allow intervals less than 60 seconds
793-
if (datafileDownloadInterval < 60) {
794-
datafileDownloadInterval = 60;
795-
logger.warn("Minimum datafile polling interval is 60 seconds. Defaulting to 60 seconds.");
794+
// JobScheduler API doesn't allow intervals less than 15 minutes
795+
if (datafileDownloadInterval < 900) {
796+
datafileDownloadInterval = 900;
797+
logger.warn("Minimum datafile polling interval is 15 minutes. Defaulting to 15 minutes.");
796798
}
797799
}
798800

android-sdk/src/test/java/com/optimizely/ab/android/sdk/OptimizelyManagerBuilderTest.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ public void testBuildWithInvalidPollingInterval() {
6161
.withDatafileDownloadInterval(5L)
6262
.build(appContext);
6363

64-
assertEquals(60L, manager.getDatafileDownloadInterval().longValue());
64+
assertEquals(900L, manager.getDatafileDownloadInterval().longValue());
6565
}
6666

6767
/**
@@ -73,10 +73,10 @@ public void testBuildWithValidPollingInterval() {
7373
Context appContext = mock(Context.class);
7474
when(appContext.getApplicationContext()).thenReturn(appContext);
7575
OptimizelyManager manager = OptimizelyManager.builder("1")
76-
.withDatafileDownloadInterval(61L)
76+
.withDatafileDownloadInterval(901L)
7777
.build(appContext);
7878

79-
assertEquals(61L, manager.getDatafileDownloadInterval().longValue());
79+
assertEquals(901L, manager.getDatafileDownloadInterval().longValue());
8080
}
8181

8282
@Test
@@ -85,11 +85,11 @@ public void testBuildWithEventHandler() {
8585
when(appContext.getApplicationContext()).thenReturn(appContext);
8686
EventHandler eventHandler = mock(EventHandler.class);
8787
OptimizelyManager manager = OptimizelyManager.builder(testProjectId)
88-
.withDatafileDownloadInterval(61L)
88+
.withDatafileDownloadInterval(901L)
8989
.withEventHandler(eventHandler)
9090
.build(appContext);
9191

92-
assertEquals(61L, manager.getDatafileDownloadInterval().longValue());
92+
assertEquals(901L, manager.getDatafileDownloadInterval().longValue());
9393
assertEquals(manager.getEventHandler(appContext), eventHandler);
9494

9595

test-app/src/main/java/com/optimizely/ab/android/test_app/MyApplication.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import java.util.HashMap;
2828
import java.util.Map;
2929
import java.util.UUID;
30+
import java.util.concurrent.TimeUnit;
3031

3132
public class MyApplication extends Application {
3233

@@ -74,7 +75,7 @@ public void onCreate() {
7475

7576
OptimizelyManager.Builder builder = OptimizelyManager.builder();
7677
optimizelyManager = builder.withEventDispatchInterval(60L * 1000L)
77-
.withDatafileDownloadInterval(0)
78+
.withDatafileDownloadInterval(TimeUnit.MINUTES.toSeconds(15))
7879
.withSDKKey("FCnSegiEkRry9rhVMroit4")
7980
.build(getApplicationContext());
8081
}

0 commit comments

Comments
 (0)