diff --git a/android/src/main/java/com/facebook/flipper/plugins/inspector/ApplicationWrapper.java b/android/src/main/java/com/facebook/flipper/plugins/inspector/ApplicationWrapper.java index 2044657c1..35f2f382f 100644 --- a/android/src/main/java/com/facebook/flipper/plugins/inspector/ApplicationWrapper.java +++ b/android/src/main/java/com/facebook/flipper/plugins/inspector/ApplicationWrapper.java @@ -54,19 +54,7 @@ public class ApplicationWrapper implements Application.ActivityLifecycleCallback public void onActivityResumed(Activity activity) {} @Override - public void onActivityPaused(Activity activity) { - if (activity.isFinishing()) { - final Iterator> activityIterator = mActivities.iterator(); - - while (activityIterator.hasNext()) { - if (activityIterator.next().get() == activity) { - activityIterator.remove(); - } - } - - notifyListener(); - } - } + public void onActivityPaused(Activity activity) {} @Override public void onActivityStopped(Activity activity) {} @@ -75,7 +63,16 @@ public class ApplicationWrapper implements Application.ActivityLifecycleCallback public void onActivitySaveInstanceState(Activity activity, Bundle outState) {} @Override - public void onActivityDestroyed(Activity activity) {} + public void onActivityDestroyed(Activity activity) { + final Iterator> activityIterator = mActivities.iterator(); + + while (activityIterator.hasNext()) { + if (activityIterator.next().get() == activity) { + activityIterator.remove(); + } + } + notifyListener(); + } private void notifyListener() { if (mListener != null) { diff --git a/android/src/test/java/com/facebook/flipper/plugins/inspector/ApplicationWrapperTest.java b/android/src/test/java/com/facebook/flipper/plugins/inspector/ApplicationWrapperTest.java index 48295d721..6d18f2edb 100644 --- a/android/src/test/java/com/facebook/flipper/plugins/inspector/ApplicationWrapperTest.java +++ b/android/src/test/java/com/facebook/flipper/plugins/inspector/ApplicationWrapperTest.java @@ -85,6 +85,21 @@ public class ApplicationWrapperTest { Mockito.when(activity2.isFinishing()).thenReturn(true); mCallbacks.onActivityPaused(activity2); + assertThat(mWrapper.getActivityStack().size(), equalTo(2)); + assertThat(mWrapper.getActivityStack().get(0), equalTo(activity1)); + } + + @Test + public void testActivityDestroyed() { + final Activity activity1 = Mockito.mock(Activity.class); + mCallbacks.onActivityCreated(activity1, Mockito.mock(Bundle.class)); + + final Activity activity2 = Mockito.mock(Activity.class); + mCallbacks.onActivityCreated(activity2, Mockito.mock(Bundle.class)); + + Mockito.when(activity2.isFinishing()).thenReturn(true); + mCallbacks.onActivityDestroyed(activity2); + assertThat(mWrapper.getActivityStack().size(), equalTo(1)); assertThat(mWrapper.getActivityStack().get(0), equalTo(activity1)); }