diff --git a/CHANGELOG.md b/CHANGELOG.md index 76dcd9502..8b80b3e0f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ ## Version 4.4.5 (Under development) +### App Center + +* **[Fix]** Fix crash when SDK is started from overridden `Application.attachBaseContext`. + ___ ## Version 4.4.4 diff --git a/sdk/appcenter/src/main/java/com/microsoft/appcenter/ApplicationContextUtils.java b/sdk/appcenter/src/main/java/com/microsoft/appcenter/ApplicationContextUtils.java index 3408ee53a..1a0f4afa4 100644 --- a/sdk/appcenter/src/main/java/com/microsoft/appcenter/ApplicationContextUtils.java +++ b/sdk/appcenter/src/main/java/com/microsoft/appcenter/ApplicationContextUtils.java @@ -35,7 +35,7 @@ static Context getApplicationContext(Application application) { return application.createDeviceProtectedStorageContext(); } } - return application.getApplicationContext(); + return application; } /** diff --git a/sdk/appcenter/src/test/java/com/microsoft/appcenter/ApplicationContextUtilsTest.java b/sdk/appcenter/src/test/java/com/microsoft/appcenter/ApplicationContextUtilsTest.java index 2e483f29f..fae7807ca 100644 --- a/sdk/appcenter/src/test/java/com/microsoft/appcenter/ApplicationContextUtilsTest.java +++ b/sdk/appcenter/src/test/java/com/microsoft/appcenter/ApplicationContextUtilsTest.java @@ -8,6 +8,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyNoInteractions; import static org.mockito.Mockito.when; @@ -39,7 +40,6 @@ public class ApplicationContextUtilsTest { @Before public void setUp() { - when(mApplication.getApplicationContext()).thenReturn(mApplication); when(mApplication.isDeviceProtectedStorage()).thenReturn(false); when(mApplication.createDeviceProtectedStorageContext()).thenReturn(mDeviceProtectedStorageContext); when(mApplication.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager); @@ -80,8 +80,8 @@ public void contextOnNewUnlockedDevice() { /* It should be regular context. */ assertEquals(mApplication, ApplicationContextUtils.getApplicationContext(mApplication)); - /* Verify get application context. */ - verify(mApplication).getApplicationContext(); + /* We should use application object directly, without getApplicationContext call. */ + verify(mApplication, never()).getApplicationContext(); } @Test @@ -96,8 +96,8 @@ public void contextOnOldDevice() { /* It should be regular context. */ assertEquals(mApplication, ApplicationContextUtils.getApplicationContext(mApplication)); - /* Verify get application context. */ - verify(mApplication).getApplicationContext(); + /* We should use application object directly, without getApplicationContext call. */ + verify(mApplication, never()).getApplicationContext(); } @Test