Loading src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java +10 −2 Original line number Diff line number Diff line Loading @@ -174,6 +174,12 @@ public class AppInfoDashboardFragment extends DashboardFragment setHasOptionsMenu(true); } @Override public void onDestroy() { stopListeningToPackageRemove(); super.onDestroy(); } @Override public int getMetricsCategory() { return MetricsEvent.APPLICATIONS_INSTALLED_APP_DETAILS; Loading Loading @@ -737,7 +743,8 @@ public class AppInfoDashboardFragment extends DashboardFragment } } private void startListeningToPackageRemove() { @VisibleForTesting void startListeningToPackageRemove() { if (mListeningToPackageRemove) { return; } Loading @@ -755,7 +762,8 @@ public class AppInfoDashboardFragment extends DashboardFragment getContext().unregisterReceiver(mPackageRemovedReceiver); } private final BroadcastReceiver mPackageRemovedReceiver = new BroadcastReceiver() { @VisibleForTesting final BroadcastReceiver mPackageRemovedReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { final String packageName = intent.getData().getSchemeSpecificPart(); Loading tests/robotests/src/com/android/settings/applications/appinfo/AppInfoDashboardFragmentTest.java +17 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.settings.applications.appinfo; import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.nullable; import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.doReturn; Loading @@ -27,6 +28,7 @@ import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.pm.ApplicationInfo; Loading @@ -42,6 +44,7 @@ import com.android.settings.wrapper.DevicePolicyManagerWrapper; import com.android.settingslib.applications.AppUtils; import com.android.settingslib.applications.ApplicationsState.AppEntry; import com.android.settingslib.applications.instantapps.InstantAppDataProvider; import com.android.settingslib.core.lifecycle.Lifecycle; import org.junit.Before; import org.junit.Test; Loading Loading @@ -255,4 +258,18 @@ public final class AppInfoDashboardFragmentTest { assertThat(mFragment.getNumberOfUserWithPackageInstalled(packageName)).isEqualTo(1); } @Test public void onDestroy_shouldUnregisterReceiver() { final Context context = mock(Context.class); doReturn(context).when(mFragment).getContext(); ReflectionHelpers.setField(mFragment, "mLifecycle", mock(Lifecycle.class)); ReflectionHelpers.setField(mFragment, "mCheckedForLoaderManager", true); mFragment.startListeningToPackageRemove(); mFragment.onDestroy(); verify(context).unregisterReceiver(mFragment.mPackageRemovedReceiver); } } Loading
src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java +10 −2 Original line number Diff line number Diff line Loading @@ -174,6 +174,12 @@ public class AppInfoDashboardFragment extends DashboardFragment setHasOptionsMenu(true); } @Override public void onDestroy() { stopListeningToPackageRemove(); super.onDestroy(); } @Override public int getMetricsCategory() { return MetricsEvent.APPLICATIONS_INSTALLED_APP_DETAILS; Loading Loading @@ -737,7 +743,8 @@ public class AppInfoDashboardFragment extends DashboardFragment } } private void startListeningToPackageRemove() { @VisibleForTesting void startListeningToPackageRemove() { if (mListeningToPackageRemove) { return; } Loading @@ -755,7 +762,8 @@ public class AppInfoDashboardFragment extends DashboardFragment getContext().unregisterReceiver(mPackageRemovedReceiver); } private final BroadcastReceiver mPackageRemovedReceiver = new BroadcastReceiver() { @VisibleForTesting final BroadcastReceiver mPackageRemovedReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { final String packageName = intent.getData().getSchemeSpecificPart(); Loading
tests/robotests/src/com/android/settings/applications/appinfo/AppInfoDashboardFragmentTest.java +17 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.settings.applications.appinfo; import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.nullable; import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.doReturn; Loading @@ -27,6 +28,7 @@ import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.pm.ApplicationInfo; Loading @@ -42,6 +44,7 @@ import com.android.settings.wrapper.DevicePolicyManagerWrapper; import com.android.settingslib.applications.AppUtils; import com.android.settingslib.applications.ApplicationsState.AppEntry; import com.android.settingslib.applications.instantapps.InstantAppDataProvider; import com.android.settingslib.core.lifecycle.Lifecycle; import org.junit.Before; import org.junit.Test; Loading Loading @@ -255,4 +258,18 @@ public final class AppInfoDashboardFragmentTest { assertThat(mFragment.getNumberOfUserWithPackageInstalled(packageName)).isEqualTo(1); } @Test public void onDestroy_shouldUnregisterReceiver() { final Context context = mock(Context.class); doReturn(context).when(mFragment).getContext(); ReflectionHelpers.setField(mFragment, "mLifecycle", mock(Lifecycle.class)); ReflectionHelpers.setField(mFragment, "mCheckedForLoaderManager", true); mFragment.startListeningToPackageRemove(); mFragment.onDestroy(); verify(context).unregisterReceiver(mFragment.mPackageRemovedReceiver); } }