Merge "Unregister broadcast receiver from AppInfoDashboardFragment."
This commit is contained in:
committed by
Android (Google) Code Review
commit
d35484f531
@@ -174,6 +174,12 @@ public class AppInfoDashboardFragment extends DashboardFragment
|
|||||||
setHasOptionsMenu(true);
|
setHasOptionsMenu(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onDestroy() {
|
||||||
|
stopListeningToPackageRemove();
|
||||||
|
super.onDestroy();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getMetricsCategory() {
|
public int getMetricsCategory() {
|
||||||
return MetricsEvent.APPLICATIONS_INSTALLED_APP_DETAILS;
|
return MetricsEvent.APPLICATIONS_INSTALLED_APP_DETAILS;
|
||||||
@@ -737,7 +743,8 @@ public class AppInfoDashboardFragment extends DashboardFragment
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void startListeningToPackageRemove() {
|
@VisibleForTesting
|
||||||
|
void startListeningToPackageRemove() {
|
||||||
if (mListeningToPackageRemove) {
|
if (mListeningToPackageRemove) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -755,7 +762,8 @@ public class AppInfoDashboardFragment extends DashboardFragment
|
|||||||
getContext().unregisterReceiver(mPackageRemovedReceiver);
|
getContext().unregisterReceiver(mPackageRemovedReceiver);
|
||||||
}
|
}
|
||||||
|
|
||||||
private final BroadcastReceiver mPackageRemovedReceiver = new BroadcastReceiver() {
|
@VisibleForTesting
|
||||||
|
final BroadcastReceiver mPackageRemovedReceiver = new BroadcastReceiver() {
|
||||||
@Override
|
@Override
|
||||||
public void onReceive(Context context, Intent intent) {
|
public void onReceive(Context context, Intent intent) {
|
||||||
final String packageName = intent.getData().getSchemeSpecificPart();
|
final String packageName = intent.getData().getSchemeSpecificPart();
|
||||||
|
@@ -18,6 +18,7 @@ package com.android.settings.applications.appinfo;
|
|||||||
|
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
|
|
||||||
|
import static org.mockito.ArgumentMatchers.any;
|
||||||
import static org.mockito.ArgumentMatchers.nullable;
|
import static org.mockito.ArgumentMatchers.nullable;
|
||||||
import static org.mockito.Mockito.doNothing;
|
import static org.mockito.Mockito.doNothing;
|
||||||
import static org.mockito.Mockito.doReturn;
|
import static org.mockito.Mockito.doReturn;
|
||||||
@@ -27,6 +28,7 @@ import static org.mockito.Mockito.spy;
|
|||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
|
import android.content.BroadcastReceiver;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.pm.ApplicationInfo;
|
import android.content.pm.ApplicationInfo;
|
||||||
@@ -42,6 +44,7 @@ import com.android.settings.wrapper.DevicePolicyManagerWrapper;
|
|||||||
import com.android.settingslib.applications.AppUtils;
|
import com.android.settingslib.applications.AppUtils;
|
||||||
import com.android.settingslib.applications.ApplicationsState.AppEntry;
|
import com.android.settingslib.applications.ApplicationsState.AppEntry;
|
||||||
import com.android.settingslib.applications.instantapps.InstantAppDataProvider;
|
import com.android.settingslib.applications.instantapps.InstantAppDataProvider;
|
||||||
|
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
@@ -255,4 +258,18 @@ public final class AppInfoDashboardFragmentTest {
|
|||||||
assertThat(mFragment.getNumberOfUserWithPackageInstalled(packageName)).isEqualTo(1);
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user