Skip to content

Commit a824dd7

Browse files
authored
Merge branch 'devel' into josh/fix-sql-helpler
2 parents c105174 + 9a68e78 commit a824dd7

File tree

3 files changed

+9
-5
lines changed

3 files changed

+9
-5
lines changed

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)