Skip to content

Commit 9a68e78

Browse files
authored
Merge pull request #46 from optimizely/josh/manager-tweaks
Nulls out the dataFileService connection
2 parents e25d5f6 + a389bba commit 9a68e78

File tree

4 files changed

+10
-5
lines changed

4 files changed

+10
-5
lines changed

android-sdk/src/androidTest/java/com/optimizely/ab/android/sdk/DataFileReschedulerTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import com.optimizely.ab.android.shared.Cache;
2525

2626
import org.junit.Before;
27+
import org.junit.Ignore;
2728
import org.junit.Test;
2829
import org.junit.runner.RunWith;
2930
import org.junit.runners.JUnit4;

android-sdk/src/androidTest/java/com/optimizely/ab/android/sdk/OptimizelyManagerTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ public void stop() {
107107
Context appContext = mock(Context.class);
108108
when(context.getApplicationContext()).thenReturn(appContext);
109109

110-
OptimizelyManager.DataFileServiceConnection dataFileServiceConnection = new OptimizelyManager.DataFileServiceConnection(optimizelyManager);
110+
OptimizelyManager.DataFileServiceConnection dataFileServiceConnection = new OptimizelyManager.DataFileServiceConnection(optimizelyManager, context);
111111
dataFileServiceConnection.setBound(true);
112112
optimizelyManager.setDataFileServiceConnection(dataFileServiceConnection);
113113

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

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ public OptimizelyClient initialize(@NonNull Context context, @NonNull String dat
149149
// the user can instantiate with the latest datafile
150150
final Intent intent = new Intent(context.getApplicationContext(), DataFileService.class);
151151
if (dataFileServiceConnection == null) {
152-
this.dataFileServiceConnection = new DataFileServiceConnection(this);
152+
this.dataFileServiceConnection = new DataFileServiceConnection(this, context);
153153
context.getApplicationContext().bindService(intent, dataFileServiceConnection, Context.BIND_AUTO_CREATE);
154154
}
155155

@@ -239,7 +239,7 @@ public void initialize(@NonNull Context context, @NonNull OptimizelyStartListene
239239
this.optimizelyStartListener = optimizelyStartListener;
240240
final Intent intent = new Intent(context.getApplicationContext(), DataFileService.class);
241241
if (dataFileServiceConnection == null) {
242-
this.dataFileServiceConnection = new DataFileServiceConnection(this);
242+
this.dataFileServiceConnection = new DataFileServiceConnection(this, context);
243243
context.getApplicationContext().bindService(intent, dataFileServiceConnection, Context.BIND_AUTO_CREATE);
244244
}
245245
}
@@ -265,6 +265,7 @@ public void stop(@NonNull Context context) {
265265
}
266266
if (dataFileServiceConnection != null && dataFileServiceConnection.isBound()) {
267267
context.getApplicationContext().unbindService(dataFileServiceConnection);
268+
dataFileServiceConnection = null;
268269
}
269270

270271
this.optimizelyStartListener = null;
@@ -456,10 +457,12 @@ public void onActivityDestroyed(Activity activity) {
456457
static class DataFileServiceConnection implements ServiceConnection {
457458

458459
@NonNull private final OptimizelyManager optimizelyManager;
460+
@NonNull private final Context context;
459461
private boolean bound = false;
460462

461-
DataFileServiceConnection(@NonNull OptimizelyManager optimizelyManager) {
463+
DataFileServiceConnection(@NonNull OptimizelyManager optimizelyManager, @NonNull Context context) {
462464
this.optimizelyManager = optimizelyManager;
465+
this.context = context;
463466
}
464467

465468
/**
@@ -522,6 +525,7 @@ public void onDataFileLoaded(@Nullable String dataFile) {
522525
@Override
523526
public void onServiceDisconnected(ComponentName arg0) {
524527
bound = false;
528+
optimizelyManager.stop(context);
525529
}
526530

527531
boolean isBound() {

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public class OptimizelyManagerDataFileServiceConnectionTest {
4949

5050
@Before
5151
public void setup() {
52-
dataFileServiceConnection = new OptimizelyManager.DataFileServiceConnection(optimizelyManager);
52+
dataFileServiceConnection = new OptimizelyManager.DataFileServiceConnection(optimizelyManager, mock(Context.class));
5353
}
5454

5555
@RequiresApi(api = Build.VERSION_CODES.HONEYCOMB)

0 commit comments

Comments
 (0)