Expose role API for Settings on RoleManager.
Settings is a platform app so the role APIs for it wasn't system APIs, but just @hide. Now that we are moving role into module, we need to create system APIs for them. RoleControllerManager is an implementation detail and may change in soon when we move role logic into system server and leave only UI in PermissionController, so we shouldn't expose it. Instead, we can expose the new system APIs on RoleManager, and delegate to RoleControllerManager internally. Bug: 158736025 Test: presubmit Test: atest DefaultSmsShortcutPreferenceControllerTest Change-Id: Iafe1d24601a32799e04d9aa385ec2fbce833a02e
This commit is contained in:
@@ -14,9 +14,7 @@
|
|||||||
|
|
||||||
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.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.UserManager;
|
import android.os.UserManager;
|
||||||
@@ -58,14 +56,12 @@ public abstract class DefaultAppShortcutPreferenceControllerBase extends BasePre
|
|||||||
|
|
||||||
mRoleManager = context.getSystemService(RoleManager.class);
|
mRoleManager = context.getSystemService(RoleManager.class);
|
||||||
|
|
||||||
final RoleControllerManager roleControllerManager =
|
|
||||||
mContext.getSystemService(RoleControllerManager.class);
|
|
||||||
final Executor executor = mContext.getMainExecutor();
|
final Executor executor = mContext.getMainExecutor();
|
||||||
roleControllerManager.isRoleVisible(mRoleName, executor, visible -> {
|
mRoleManager.isRoleVisible(mRoleName, executor, visible -> {
|
||||||
mRoleVisible = visible;
|
mRoleVisible = visible;
|
||||||
refreshAvailability();
|
refreshAvailability();
|
||||||
});
|
});
|
||||||
roleControllerManager.isApplicationVisibleForRole(mRoleName, mPackageName, executor,
|
mRoleManager.isApplicationVisibleForRole(mRoleName, mPackageName, executor,
|
||||||
visible -> {
|
visible -> {
|
||||||
mAppVisible = visible;
|
mAppVisible = visible;
|
||||||
refreshAvailability();
|
refreshAvailability();
|
||||||
|
@@ -25,7 +25,6 @@ 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;
|
||||||
@@ -63,8 +62,6 @@ public class DefaultAppShortcutPreferenceControllerBaseTest {
|
|||||||
@Mock
|
@Mock
|
||||||
private RoleManager mRoleManager;
|
private RoleManager mRoleManager;
|
||||||
@Mock
|
@Mock
|
||||||
private RoleControllerManager mRoleControllerManager;
|
|
||||||
@Mock
|
|
||||||
private Preference mPreference;
|
private Preference mPreference;
|
||||||
|
|
||||||
private Activity mActivity;
|
private Activity mActivity;
|
||||||
@@ -77,7 +74,6 @@ 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.ROLE_CONTROLLER_SERVICE, mRoleControllerManager);
|
|
||||||
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);
|
||||||
@@ -86,7 +82,7 @@ public class DefaultAppShortcutPreferenceControllerBaseTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void constructor_callsIsApplicationVisibleForRole() {
|
public void constructor_callsIsApplicationVisibleForRole() {
|
||||||
verify(mRoleControllerManager).isApplicationVisibleForRole(eq(TEST_ROLE_NAME), eq(
|
verify(mRoleManager).isApplicationVisibleForRole(eq(TEST_ROLE_NAME), eq(
|
||||||
TEST_PACKAGE_NAME), any(Executor.class), any(Consumer.class));
|
TEST_PACKAGE_NAME), any(Executor.class), any(Consumer.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -153,7 +149,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(mRoleControllerManager).isRoleVisible(eq(TEST_ROLE_NAME), any(Executor.class),
|
verify(mRoleManager).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);
|
||||||
@@ -162,7 +158,7 @@ public class DefaultAppShortcutPreferenceControllerBaseTest {
|
|||||||
private void setApplicationIsVisibleForRole(boolean visible) {
|
private void setApplicationIsVisibleForRole(boolean visible) {
|
||||||
final ArgumentCaptor<Consumer<Boolean>> callbackCaptor = ArgumentCaptor.forClass(
|
final ArgumentCaptor<Consumer<Boolean>> callbackCaptor = ArgumentCaptor.forClass(
|
||||||
Consumer.class);
|
Consumer.class);
|
||||||
verify(mRoleControllerManager).isApplicationVisibleForRole(eq(TEST_ROLE_NAME), eq(
|
verify(mRoleManager).isApplicationVisibleForRole(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(visible);
|
callback.accept(visible);
|
||||||
|
@@ -18,7 +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 android.app.role.RoleControllerManager;
|
import android.app.role.RoleManager;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
@@ -34,15 +34,14 @@ import org.robolectric.shadows.ShadowApplication;
|
|||||||
public class DefaultBrowserShortcutPreferenceControllerTest {
|
public class DefaultBrowserShortcutPreferenceControllerTest {
|
||||||
|
|
||||||
@Mock
|
@Mock
|
||||||
private RoleControllerManager mRoleControllerManager;
|
private RoleManager mRoleManager;
|
||||||
|
|
||||||
private DefaultBrowserShortcutPreferenceController mController;
|
private DefaultBrowserShortcutPreferenceController mController;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
MockitoAnnotations.initMocks(this);
|
MockitoAnnotations.initMocks(this);
|
||||||
ShadowApplication.getInstance().setSystemService(Context.ROLE_CONTROLLER_SERVICE,
|
ShadowApplication.getInstance().setSystemService(Context.ROLE_SERVICE, mRoleManager);
|
||||||
mRoleControllerManager);
|
|
||||||
mController = new DefaultBrowserShortcutPreferenceController(RuntimeEnvironment.application,
|
mController = new DefaultBrowserShortcutPreferenceController(RuntimeEnvironment.application,
|
||||||
"Package1");
|
"Package1");
|
||||||
}
|
}
|
||||||
|
@@ -18,7 +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 android.app.role.RoleControllerManager;
|
import android.app.role.RoleManager;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
@@ -34,15 +34,14 @@ import org.robolectric.shadows.ShadowApplication;
|
|||||||
public class DefaultEmergencyShortcutPreferenceControllerTest {
|
public class DefaultEmergencyShortcutPreferenceControllerTest {
|
||||||
|
|
||||||
@Mock
|
@Mock
|
||||||
private RoleControllerManager mRoleControllerManager;
|
private RoleManager mRoleManager;
|
||||||
|
|
||||||
private DefaultEmergencyShortcutPreferenceController mController;
|
private DefaultEmergencyShortcutPreferenceController mController;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
MockitoAnnotations.initMocks(this);
|
MockitoAnnotations.initMocks(this);
|
||||||
ShadowApplication.getInstance().setSystemService(Context.ROLE_CONTROLLER_SERVICE,
|
ShadowApplication.getInstance().setSystemService(Context.ROLE_SERVICE, mRoleManager);
|
||||||
mRoleControllerManager);
|
|
||||||
mController = new DefaultEmergencyShortcutPreferenceController(
|
mController = new DefaultEmergencyShortcutPreferenceController(
|
||||||
RuntimeEnvironment.application, "Package1");
|
RuntimeEnvironment.application, "Package1");
|
||||||
}
|
}
|
||||||
|
@@ -18,7 +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 android.app.role.RoleControllerManager;
|
import android.app.role.RoleManager;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
@@ -34,15 +34,14 @@ import org.robolectric.shadows.ShadowApplication;
|
|||||||
public class DefaultHomeShortcutPreferenceControllerTest {
|
public class DefaultHomeShortcutPreferenceControllerTest {
|
||||||
|
|
||||||
@Mock
|
@Mock
|
||||||
private RoleControllerManager mRoleControllerManager;
|
private RoleManager mRoleManager;
|
||||||
|
|
||||||
private DefaultHomeShortcutPreferenceController mController;
|
private DefaultHomeShortcutPreferenceController mController;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
MockitoAnnotations.initMocks(this);
|
MockitoAnnotations.initMocks(this);
|
||||||
ShadowApplication.getInstance().setSystemService(Context.ROLE_CONTROLLER_SERVICE,
|
ShadowApplication.getInstance().setSystemService(Context.ROLE_SERVICE, mRoleManager);
|
||||||
mRoleControllerManager);
|
|
||||||
mController = new DefaultHomeShortcutPreferenceController(RuntimeEnvironment.application,
|
mController = new DefaultHomeShortcutPreferenceController(RuntimeEnvironment.application,
|
||||||
"Package1");
|
"Package1");
|
||||||
}
|
}
|
||||||
|
@@ -18,7 +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 android.app.role.RoleControllerManager;
|
import android.app.role.RoleManager;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
@@ -37,15 +37,14 @@ public class DefaultPhoneShortcutPreferenceControllerTest {
|
|||||||
private static final String PREFERENCE_KEY = "default_phone_app";
|
private static final String PREFERENCE_KEY = "default_phone_app";
|
||||||
|
|
||||||
@Mock
|
@Mock
|
||||||
private RoleControllerManager mRoleControllerManager;
|
private RoleManager mRoleManager;
|
||||||
|
|
||||||
private DefaultPhoneShortcutPreferenceController mController;
|
private DefaultPhoneShortcutPreferenceController mController;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
MockitoAnnotations.initMocks(this);
|
MockitoAnnotations.initMocks(this);
|
||||||
ShadowApplication.getInstance().setSystemService(Context.ROLE_CONTROLLER_SERVICE,
|
ShadowApplication.getInstance().setSystemService(Context.ROLE_SERVICE, mRoleManager);
|
||||||
mRoleControllerManager);
|
|
||||||
mController = new DefaultPhoneShortcutPreferenceController(RuntimeEnvironment.application,
|
mController = new DefaultPhoneShortcutPreferenceController(RuntimeEnvironment.application,
|
||||||
TEST_PACKAGE_NAME);
|
TEST_PACKAGE_NAME);
|
||||||
}
|
}
|
||||||
|
@@ -18,7 +18,6 @@ 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.app.role.RoleManager;
|
import android.app.role.RoleManager;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
|
||||||
@@ -39,8 +38,6 @@ public class DefaultSmsShortcutPreferenceControllerTest {
|
|||||||
|
|
||||||
@Mock
|
@Mock
|
||||||
private RoleManager mRoleManager;
|
private RoleManager mRoleManager;
|
||||||
@Mock
|
|
||||||
private RoleControllerManager mRoleControllerManager;
|
|
||||||
|
|
||||||
private DefaultSmsShortcutPreferenceController mController;
|
private DefaultSmsShortcutPreferenceController mController;
|
||||||
|
|
||||||
@@ -49,7 +46,6 @@ public class DefaultSmsShortcutPreferenceControllerTest {
|
|||||||
MockitoAnnotations.initMocks(this);
|
MockitoAnnotations.initMocks(this);
|
||||||
final ShadowApplication shadowApplication = ShadowApplication.getInstance();
|
final ShadowApplication shadowApplication = ShadowApplication.getInstance();
|
||||||
shadowApplication.setSystemService(Context.ROLE_SERVICE, mRoleManager);
|
shadowApplication.setSystemService(Context.ROLE_SERVICE, mRoleManager);
|
||||||
shadowApplication.setSystemService(Context.ROLE_CONTROLLER_SERVICE, mRoleControllerManager);
|
|
||||||
mController = new DefaultSmsShortcutPreferenceController(RuntimeEnvironment.application,
|
mController = new DefaultSmsShortcutPreferenceController(RuntimeEnvironment.application,
|
||||||
TEST_PACKAGE_NAME);
|
TEST_PACKAGE_NAME);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user