Use RoleControllerService for role related APIs.

Move isApplicationQualifiedForRole() and isRoleVisible() from
PermissionControllerService to RoleControllerService.

Bug: 127691087
Test: manual
Change-Id: I87edb1bc457fbbec3d9a87054eaad5024ed91310
This commit is contained in:
Hai Zhang
2019-03-06 16:05:54 -08:00
parent f514f1eecf
commit 729f1bb48b
7 changed files with 31 additions and 32 deletions

View File

@@ -14,12 +14,12 @@
package com.android.settings.applications.appinfo; package com.android.settings.applications.appinfo;
import android.app.role.RoleControllerManager;
import android.app.role.RoleManager; import android.app.role.RoleManager;
import android.app.settings.SettingsEnums; import android.app.settings.SettingsEnums;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.os.UserManager; import android.os.UserManager;
import android.permission.PermissionControllerManager;
import android.text.TextUtils; import android.text.TextUtils;
import androidx.preference.Preference; import androidx.preference.Preference;
@@ -58,14 +58,14 @@ public abstract class DefaultAppShortcutPreferenceControllerBase extends BasePre
mRoleManager = context.getSystemService(RoleManager.class); mRoleManager = context.getSystemService(RoleManager.class);
final PermissionControllerManager permissionControllerManager = final RoleControllerManager roleControllerManager =
mContext.getSystemService(PermissionControllerManager.class); mContext.getSystemService(RoleControllerManager.class);
final Executor executor = mContext.getMainExecutor(); final Executor executor = mContext.getMainExecutor();
permissionControllerManager.isRoleVisible(mRoleName, executor, visible -> { roleControllerManager.isRoleVisible(mRoleName, executor, visible -> {
mRoleVisible = visible; mRoleVisible = visible;
refreshAvailability(); refreshAvailability();
}); });
permissionControllerManager.isApplicationQualifiedForRole(mRoleName, mPackageName, executor, roleControllerManager.isApplicationQualifiedForRole(mRoleName, mPackageName, executor,
qualified -> { qualified -> {
mAppQualified = qualified; mAppQualified = qualified;
refreshAvailability(); refreshAvailability();

View File

@@ -25,11 +25,11 @@ import static org.mockito.Mockito.when;
import static org.robolectric.Shadows.shadowOf; import static org.robolectric.Shadows.shadowOf;
import android.app.Activity; import android.app.Activity;
import android.app.role.RoleControllerManager;
import android.app.role.RoleManager; import android.app.role.RoleManager;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.os.UserManager; import android.os.UserManager;
import android.permission.PermissionControllerManager;
import androidx.preference.Preference; import androidx.preference.Preference;
@@ -63,7 +63,7 @@ public class DefaultAppShortcutPreferenceControllerBaseTest {
@Mock @Mock
private RoleManager mRoleManager; private RoleManager mRoleManager;
@Mock @Mock
private PermissionControllerManager mPermissionControllerManager; private RoleControllerManager mRoleControllerManager;
@Mock @Mock
private Preference mPreference; private Preference mPreference;
@@ -77,8 +77,7 @@ public class DefaultAppShortcutPreferenceControllerBaseTest {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
ShadowApplication shadowApplication = ShadowApplication.getInstance(); ShadowApplication shadowApplication = ShadowApplication.getInstance();
shadowApplication.setSystemService(Context.ROLE_SERVICE, mRoleManager); shadowApplication.setSystemService(Context.ROLE_SERVICE, mRoleManager);
shadowApplication.setSystemService(Context.PERMISSION_CONTROLLER_SERVICE, shadowApplication.setSystemService(Context.ROLE_CONTROLLER_SERVICE, mRoleControllerManager);
mPermissionControllerManager);
mActivity = Robolectric.setupActivity(Activity.class); mActivity = Robolectric.setupActivity(Activity.class);
mShadowUserManager = shadowOf(mActivity.getSystemService(UserManager.class)); mShadowUserManager = shadowOf(mActivity.getSystemService(UserManager.class));
mController = new TestRolePreferenceController(mActivity); mController = new TestRolePreferenceController(mActivity);
@@ -87,7 +86,7 @@ public class DefaultAppShortcutPreferenceControllerBaseTest {
@Test @Test
public void constructor_callsIsApplicationQualifiedForRole() { public void constructor_callsIsApplicationQualifiedForRole() {
verify(mPermissionControllerManager).isApplicationQualifiedForRole(eq(TEST_ROLE_NAME), eq( verify(mRoleControllerManager).isApplicationQualifiedForRole(eq(TEST_ROLE_NAME), eq(
TEST_PACKAGE_NAME), any(Executor.class), any(Consumer.class)); TEST_PACKAGE_NAME), any(Executor.class), any(Consumer.class));
} }
@@ -154,7 +153,7 @@ public class DefaultAppShortcutPreferenceControllerBaseTest {
private void setRoleIsVisible(boolean visible) { private void setRoleIsVisible(boolean visible) {
final ArgumentCaptor<Consumer<Boolean>> callbackCaptor = ArgumentCaptor.forClass( final ArgumentCaptor<Consumer<Boolean>> callbackCaptor = ArgumentCaptor.forClass(
Consumer.class); Consumer.class);
verify(mPermissionControllerManager).isRoleVisible(eq(TEST_ROLE_NAME), any(Executor.class), verify(mRoleControllerManager).isRoleVisible(eq(TEST_ROLE_NAME), any(Executor.class),
callbackCaptor.capture()); callbackCaptor.capture());
final Consumer<Boolean> callback = callbackCaptor.getValue(); final Consumer<Boolean> callback = callbackCaptor.getValue();
callback.accept(visible); callback.accept(visible);
@@ -163,7 +162,7 @@ public class DefaultAppShortcutPreferenceControllerBaseTest {
private void setApplicationIsQualifiedForRole(boolean qualified) { private void setApplicationIsQualifiedForRole(boolean qualified) {
final ArgumentCaptor<Consumer<Boolean>> callbackCaptor = ArgumentCaptor.forClass( final ArgumentCaptor<Consumer<Boolean>> callbackCaptor = ArgumentCaptor.forClass(
Consumer.class); Consumer.class);
verify(mPermissionControllerManager).isApplicationQualifiedForRole(eq(TEST_ROLE_NAME), eq( verify(mRoleControllerManager).isApplicationQualifiedForRole(eq(TEST_ROLE_NAME), eq(
TEST_PACKAGE_NAME), any(Executor.class), callbackCaptor.capture()); TEST_PACKAGE_NAME), any(Executor.class), callbackCaptor.capture());
final Consumer<Boolean> callback = callbackCaptor.getValue(); final Consumer<Boolean> callback = callbackCaptor.getValue();
callback.accept(qualified); callback.accept(qualified);

View File

@@ -18,8 +18,8 @@ package com.android.settings.applications.appinfo;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import android.app.role.RoleControllerManager;
import android.content.Context; import android.content.Context;
import android.permission.PermissionControllerManager;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
@@ -34,15 +34,15 @@ import org.robolectric.shadows.ShadowApplication;
public class DefaultBrowserShortcutPreferenceControllerTest { public class DefaultBrowserShortcutPreferenceControllerTest {
@Mock @Mock
private PermissionControllerManager mPermissionControllerManager; private RoleControllerManager mRoleControllerManager;
private DefaultBrowserShortcutPreferenceController mController; private DefaultBrowserShortcutPreferenceController mController;
@Before @Before
public void setUp() { public void setUp() {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
ShadowApplication.getInstance().setSystemService(Context.PERMISSION_CONTROLLER_SERVICE, ShadowApplication.getInstance().setSystemService(Context.ROLE_CONTROLLER_SERVICE,
mPermissionControllerManager); mRoleControllerManager);
mController = new DefaultBrowserShortcutPreferenceController(RuntimeEnvironment.application, mController = new DefaultBrowserShortcutPreferenceController(RuntimeEnvironment.application,
"Package1"); "Package1");
} }

View File

@@ -18,8 +18,8 @@ package com.android.settings.applications.appinfo;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import android.app.role.RoleControllerManager;
import android.content.Context; import android.content.Context;
import android.permission.PermissionControllerManager;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
@@ -34,15 +34,15 @@ import org.robolectric.shadows.ShadowApplication;
public class DefaultEmergencyShortcutPreferenceControllerTest { public class DefaultEmergencyShortcutPreferenceControllerTest {
@Mock @Mock
private PermissionControllerManager mPermissionControllerManager; private RoleControllerManager mRoleControllerManager;
private DefaultEmergencyShortcutPreferenceController mController; private DefaultEmergencyShortcutPreferenceController mController;
@Before @Before
public void setUp() { public void setUp() {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
ShadowApplication.getInstance().setSystemService(Context.PERMISSION_CONTROLLER_SERVICE, ShadowApplication.getInstance().setSystemService(Context.ROLE_CONTROLLER_SERVICE,
mPermissionControllerManager); mRoleControllerManager);
mController = new DefaultEmergencyShortcutPreferenceController( mController = new DefaultEmergencyShortcutPreferenceController(
RuntimeEnvironment.application, "Package1"); RuntimeEnvironment.application, "Package1");
} }

View File

@@ -18,8 +18,8 @@ package com.android.settings.applications.appinfo;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import android.app.role.RoleControllerManager;
import android.content.Context; import android.content.Context;
import android.permission.PermissionControllerManager;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
@@ -34,15 +34,15 @@ import org.robolectric.shadows.ShadowApplication;
public class DefaultHomeShortcutPreferenceControllerTest { public class DefaultHomeShortcutPreferenceControllerTest {
@Mock @Mock
private PermissionControllerManager mPermissionControllerManager; private RoleControllerManager mRoleControllerManager;
private DefaultHomeShortcutPreferenceController mController; private DefaultHomeShortcutPreferenceController mController;
@Before @Before
public void setUp() { public void setUp() {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
ShadowApplication.getInstance().setSystemService(Context.PERMISSION_CONTROLLER_SERVICE, ShadowApplication.getInstance().setSystemService(Context.ROLE_CONTROLLER_SERVICE,
mPermissionControllerManager); mRoleControllerManager);
mController = new DefaultHomeShortcutPreferenceController(RuntimeEnvironment.application, mController = new DefaultHomeShortcutPreferenceController(RuntimeEnvironment.application,
"Package1"); "Package1");
} }

View File

@@ -18,8 +18,8 @@ package com.android.settings.applications.appinfo;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import android.app.role.RoleControllerManager;
import android.content.Context; import android.content.Context;
import android.permission.PermissionControllerManager;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
@@ -37,15 +37,15 @@ public class DefaultPhoneShortcutPreferenceControllerTest {
private static final String PREFERENCE_KEY = "default_phone_app"; private static final String PREFERENCE_KEY = "default_phone_app";
@Mock @Mock
private PermissionControllerManager mPermissionControllerManager; private RoleControllerManager mRoleControllerManager;
private DefaultPhoneShortcutPreferenceController mController; private DefaultPhoneShortcutPreferenceController mController;
@Before @Before
public void setUp() { public void setUp() {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
ShadowApplication.getInstance().setSystemService(Context.PERMISSION_CONTROLLER_SERVICE, ShadowApplication.getInstance().setSystemService(Context.ROLE_CONTROLLER_SERVICE,
mPermissionControllerManager); mRoleControllerManager);
mController = new DefaultPhoneShortcutPreferenceController(RuntimeEnvironment.application, mController = new DefaultPhoneShortcutPreferenceController(RuntimeEnvironment.application,
TEST_PACKAGE_NAME); TEST_PACKAGE_NAME);
} }

View File

@@ -18,8 +18,8 @@ package com.android.settings.applications.appinfo;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import android.app.role.RoleControllerManager;
import android.content.Context; import android.content.Context;
import android.permission.PermissionControllerManager;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
@@ -37,15 +37,15 @@ public class DefaultSmsShortcutPreferenceControllerTest {
private static final String PREFERENCE_KEY = "default_sms_app"; private static final String PREFERENCE_KEY = "default_sms_app";
@Mock @Mock
private PermissionControllerManager mPermissionControllerManager; private RoleControllerManager mRoleControllerManager;
private DefaultSmsShortcutPreferenceController mController; private DefaultSmsShortcutPreferenceController mController;
@Before @Before
public void setUp() { public void setUp() {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
ShadowApplication.getInstance().setSystemService(Context.PERMISSION_CONTROLLER_SERVICE, ShadowApplication.getInstance().setSystemService(Context.ROLE_CONTROLLER_SERVICE,
mPermissionControllerManager); mRoleControllerManager);
mController = new DefaultSmsShortcutPreferenceController(RuntimeEnvironment.application, mController = new DefaultSmsShortcutPreferenceController(RuntimeEnvironment.application,
TEST_PACKAGE_NAME); TEST_PACKAGE_NAME);
} }