Update permission summary when permission changing.
Some apps have pre-grant permissions, so when they get disabled and then enabled again, those pre-granted ones will come back automatically. This CL handles this kind of cases by listening to permission changes and update the summary accordingly. Fixes: 142053555 Test: robotests Change-Id: I75b010139657ec3b4ff875de77573a46387e42c8
This commit is contained in:
@@ -28,6 +28,7 @@ import static org.mockito.Mockito.when;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.ApplicationInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
|
||||
import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceScreen;
|
||||
@@ -43,6 +44,7 @@ import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.robolectric.RobolectricTestRunner;
|
||||
import org.robolectric.RuntimeEnvironment;
|
||||
import org.robolectric.util.ReflectionHelpers;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
@@ -57,6 +59,8 @@ public class AppPermissionPreferenceControllerTest {
|
||||
private PreferenceScreen mScreen;
|
||||
@Mock
|
||||
private Preference mPreference;
|
||||
@Mock
|
||||
private PackageManager mPackageManager;
|
||||
|
||||
private Context mContext;
|
||||
private AppPermissionPreferenceController mController;
|
||||
@@ -68,6 +72,7 @@ public class AppPermissionPreferenceControllerTest {
|
||||
mController = new AppPermissionPreferenceController(mContext, "permission_settings");
|
||||
mController.setPackageName("package1");
|
||||
mController.setParentFragment(mFragment);
|
||||
ReflectionHelpers.setField(mController, "mPackageManager", mPackageManager);
|
||||
|
||||
when(mScreen.findPreference(any())).thenReturn(mPreference);
|
||||
final String key = mController.getPreferenceKey();
|
||||
@@ -75,10 +80,26 @@ public class AppPermissionPreferenceControllerTest {
|
||||
when(mFragment.getActivity()).thenReturn(mActivity);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onStart_shouldAddPermissionsChangeListener() {
|
||||
mController.onStart();
|
||||
|
||||
verify(mPackageManager).addOnPermissionsChangeListener(
|
||||
any(PackageManager.OnPermissionsChangedListener.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onStop_shouldRemovePermissionsChangeListener() {
|
||||
mController.onStop();
|
||||
|
||||
verify(mPackageManager).removeOnPermissionsChangeListener(
|
||||
any(PackageManager.OnPermissionsChangedListener.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getAvailabilityStatus_isAlwaysAvailable() {
|
||||
assertThat(mController.getAvailabilityStatus())
|
||||
.isEqualTo(AppPermissionPreferenceController.AVAILABLE);
|
||||
.isEqualTo(AppPermissionPreferenceController.AVAILABLE);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
Reference in New Issue
Block a user