Merge "Revert "Expose role API for Settings on RoleManager.""
diff --git a/src/com/android/settings/applications/appinfo/DefaultAppShortcutPreferenceControllerBase.java b/src/com/android/settings/applications/appinfo/DefaultAppShortcutPreferenceControllerBase.java
index 5a1883b..5df30c2 100644
--- a/src/com/android/settings/applications/appinfo/DefaultAppShortcutPreferenceControllerBase.java
+++ b/src/com/android/settings/applications/appinfo/DefaultAppShortcutPreferenceControllerBase.java
@@ -14,7 +14,9 @@
 
 package com.android.settings.applications.appinfo;
 
+import android.app.role.RoleControllerManager;
 import android.app.role.RoleManager;
+import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.content.Intent;
 import android.os.UserManager;
@@ -56,12 +58,14 @@
 
         mRoleManager = context.getSystemService(RoleManager.class);
 
+        final RoleControllerManager roleControllerManager =
+                mContext.getSystemService(RoleControllerManager.class);
         final Executor executor = mContext.getMainExecutor();
-        mRoleManager.isRoleVisible(mRoleName, executor, visible -> {
+        roleControllerManager.isRoleVisible(mRoleName, executor, visible -> {
             mRoleVisible = visible;
             refreshAvailability();
         });
-        mRoleManager.isApplicationVisibleForRole(mRoleName, mPackageName, executor,
+        roleControllerManager.isApplicationVisibleForRole(mRoleName, mPackageName, executor,
                 visible -> {
                     mAppVisible = visible;
                     refreshAvailability();
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/DefaultAppShortcutPreferenceControllerBaseTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/DefaultAppShortcutPreferenceControllerBaseTest.java
index 74c0bb5..7a4c610 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/DefaultAppShortcutPreferenceControllerBaseTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/DefaultAppShortcutPreferenceControllerBaseTest.java
@@ -25,6 +25,7 @@
 import static org.robolectric.Shadows.shadowOf;
 
 import android.app.Activity;
+import android.app.role.RoleControllerManager;
 import android.app.role.RoleManager;
 import android.content.Context;
 import android.content.Intent;
@@ -62,6 +63,8 @@
     @Mock
     private RoleManager mRoleManager;
     @Mock
+    private RoleControllerManager mRoleControllerManager;
+    @Mock
     private Preference mPreference;
 
     private Activity mActivity;
@@ -74,6 +77,7 @@
         MockitoAnnotations.initMocks(this);
         ShadowApplication shadowApplication = ShadowApplication.getInstance();
         shadowApplication.setSystemService(Context.ROLE_SERVICE, mRoleManager);
+        shadowApplication.setSystemService(Context.ROLE_CONTROLLER_SERVICE, mRoleControllerManager);
         mActivity = Robolectric.setupActivity(Activity.class);
         mShadowUserManager = shadowOf(mActivity.getSystemService(UserManager.class));
         mController = new TestRolePreferenceController(mActivity);
@@ -82,7 +86,7 @@
 
     @Test
     public void constructor_callsIsApplicationVisibleForRole() {
-        verify(mRoleManager).isApplicationVisibleForRole(eq(TEST_ROLE_NAME), eq(
+        verify(mRoleControllerManager).isApplicationVisibleForRole(eq(TEST_ROLE_NAME), eq(
                 TEST_PACKAGE_NAME), any(Executor.class), any(Consumer.class));
     }
 
@@ -149,7 +153,7 @@
     private void setRoleIsVisible(boolean visible) {
         final ArgumentCaptor<Consumer<Boolean>> callbackCaptor = ArgumentCaptor.forClass(
                 Consumer.class);
-        verify(mRoleManager).isRoleVisible(eq(TEST_ROLE_NAME), any(Executor.class),
+        verify(mRoleControllerManager).isRoleVisible(eq(TEST_ROLE_NAME), any(Executor.class),
                 callbackCaptor.capture());
         final Consumer<Boolean> callback = callbackCaptor.getValue();
         callback.accept(visible);
@@ -158,7 +162,7 @@
     private void setApplicationIsVisibleForRole(boolean visible) {
         final ArgumentCaptor<Consumer<Boolean>> callbackCaptor = ArgumentCaptor.forClass(
                 Consumer.class);
-        verify(mRoleManager).isApplicationVisibleForRole(eq(TEST_ROLE_NAME), eq(
+        verify(mRoleControllerManager).isApplicationVisibleForRole(eq(TEST_ROLE_NAME), eq(
                 TEST_PACKAGE_NAME), any(Executor.class), callbackCaptor.capture());
         final Consumer<Boolean> callback = callbackCaptor.getValue();
         callback.accept(visible);
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/DefaultBrowserShortcutPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/DefaultBrowserShortcutPreferenceControllerTest.java
index 6d4186c..5940d72 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/DefaultBrowserShortcutPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/DefaultBrowserShortcutPreferenceControllerTest.java
@@ -18,7 +18,7 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import android.app.role.RoleManager;
+import android.app.role.RoleControllerManager;
 import android.content.Context;
 
 import org.junit.Before;
@@ -34,14 +34,15 @@
 public class DefaultBrowserShortcutPreferenceControllerTest {
 
     @Mock
-    private RoleManager mRoleManager;
+    private RoleControllerManager mRoleControllerManager;
 
     private DefaultBrowserShortcutPreferenceController mController;
 
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
-        ShadowApplication.getInstance().setSystemService(Context.ROLE_SERVICE, mRoleManager);
+        ShadowApplication.getInstance().setSystemService(Context.ROLE_CONTROLLER_SERVICE,
+                mRoleControllerManager);
         mController = new DefaultBrowserShortcutPreferenceController(RuntimeEnvironment.application,
                 "Package1");
     }
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/DefaultEmergencyShortcutPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/DefaultEmergencyShortcutPreferenceControllerTest.java
index 0acd7bd..8dcf530 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/DefaultEmergencyShortcutPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/DefaultEmergencyShortcutPreferenceControllerTest.java
@@ -18,7 +18,7 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import android.app.role.RoleManager;
+import android.app.role.RoleControllerManager;
 import android.content.Context;
 
 import org.junit.Before;
@@ -34,14 +34,15 @@
 public class DefaultEmergencyShortcutPreferenceControllerTest {
 
     @Mock
-    private RoleManager mRoleManager;
+    private RoleControllerManager mRoleControllerManager;
 
     private DefaultEmergencyShortcutPreferenceController mController;
 
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
-        ShadowApplication.getInstance().setSystemService(Context.ROLE_SERVICE, mRoleManager);
+        ShadowApplication.getInstance().setSystemService(Context.ROLE_CONTROLLER_SERVICE,
+                mRoleControllerManager);
         mController = new DefaultEmergencyShortcutPreferenceController(
                 RuntimeEnvironment.application, "Package1");
     }
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/DefaultHomeShortcutPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/DefaultHomeShortcutPreferenceControllerTest.java
index 1f0023a..7071fec 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/DefaultHomeShortcutPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/DefaultHomeShortcutPreferenceControllerTest.java
@@ -18,7 +18,7 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import android.app.role.RoleManager;
+import android.app.role.RoleControllerManager;
 import android.content.Context;
 
 import org.junit.Before;
@@ -34,14 +34,15 @@
 public class DefaultHomeShortcutPreferenceControllerTest {
 
     @Mock
-    private RoleManager mRoleManager;
+    private RoleControllerManager mRoleControllerManager;
 
     private DefaultHomeShortcutPreferenceController mController;
 
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
-        ShadowApplication.getInstance().setSystemService(Context.ROLE_SERVICE, mRoleManager);
+        ShadowApplication.getInstance().setSystemService(Context.ROLE_CONTROLLER_SERVICE,
+                mRoleControllerManager);
         mController = new DefaultHomeShortcutPreferenceController(RuntimeEnvironment.application,
                 "Package1");
     }
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/DefaultPhoneShortcutPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/DefaultPhoneShortcutPreferenceControllerTest.java
index c130665..d1b6aeb 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/DefaultPhoneShortcutPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/DefaultPhoneShortcutPreferenceControllerTest.java
@@ -18,7 +18,7 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import android.app.role.RoleManager;
+import android.app.role.RoleControllerManager;
 import android.content.Context;
 
 import org.junit.Before;
@@ -37,14 +37,15 @@
     private static final String PREFERENCE_KEY = "default_phone_app";
 
     @Mock
-    private RoleManager mRoleManager;
+    private RoleControllerManager mRoleControllerManager;
 
     private DefaultPhoneShortcutPreferenceController mController;
 
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
-        ShadowApplication.getInstance().setSystemService(Context.ROLE_SERVICE, mRoleManager);
+        ShadowApplication.getInstance().setSystemService(Context.ROLE_CONTROLLER_SERVICE,
+                mRoleControllerManager);
         mController = new DefaultPhoneShortcutPreferenceController(RuntimeEnvironment.application,
                 TEST_PACKAGE_NAME);
     }
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/DefaultSmsShortcutPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/DefaultSmsShortcutPreferenceControllerTest.java
index e9c238d..691ce5e 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/DefaultSmsShortcutPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/DefaultSmsShortcutPreferenceControllerTest.java
@@ -18,6 +18,7 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
+import android.app.role.RoleControllerManager;
 import android.app.role.RoleManager;
 import android.content.Context;
 
@@ -38,6 +39,8 @@
 
     @Mock
     private RoleManager mRoleManager;
+    @Mock
+    private RoleControllerManager mRoleControllerManager;
 
     private DefaultSmsShortcutPreferenceController mController;
 
@@ -46,6 +49,7 @@
         MockitoAnnotations.initMocks(this);
         final ShadowApplication shadowApplication = ShadowApplication.getInstance();
         shadowApplication.setSystemService(Context.ROLE_SERVICE, mRoleManager);
+        shadowApplication.setSystemService(Context.ROLE_CONTROLLER_SERVICE, mRoleControllerManager);
         mController = new DefaultSmsShortcutPreferenceController(RuntimeEnvironment.application,
                 TEST_PACKAGE_NAME);
     }