Use a boolean Consumer instead of RoleManagerCallback.

And use RemoteCallback for it under the hood. This removes one AIDL
interface and allows using lambda, while aligning with what
PermissionControllerService does.

Bug: 127691087
Test: manual
Change-Id: I7af28be2df5f84ffcd040a80884efe7c08e2d067
diff --git a/src/com/android/settings/applications/defaultapps/DefaultEmergencyPicker.java b/src/com/android/settings/applications/defaultapps/DefaultEmergencyPicker.java
index f088967..32cc9a8 100644
--- a/src/com/android/settings/applications/defaultapps/DefaultEmergencyPicker.java
+++ b/src/com/android/settings/applications/defaultapps/DefaultEmergencyPicker.java
@@ -17,9 +17,7 @@
 package com.android.settings.applications.defaultapps;
 
 import android.app.role.RoleManager;
-import android.app.role.RoleManagerCallback;
 import android.app.settings.SettingsEnums;
-import android.content.ContentResolver;
 import android.content.Context;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageInfo;
@@ -27,7 +25,6 @@
 import android.content.pm.ResolveInfo;
 import android.os.AsyncTask;
 import android.os.Process;
-import android.provider.Settings;
 import android.text.TextUtils;
 import android.util.Log;
 
@@ -100,18 +97,13 @@
         final String previousValue = getDefaultKey();
 
         if (!TextUtils.isEmpty(key) && !TextUtils.equals(key, previousValue)) {
-            getContext().getSystemService(RoleManager.class)
-                      .addRoleHolderAsUser(
-                              RoleManager.ROLE_EMERGENCY, key, 0, Process.myUserHandle(),
-                              AsyncTask.THREAD_POOL_EXECUTOR, new RoleManagerCallback() {
-                                  @Override
-                                  public void onSuccess() {}
-
-                                  @Override
-                                  public void onFailure() {
-                                      Log.e(TAG, "Failed to set emergency default app.");
-                                  }
-                              });
+            getContext().getSystemService(RoleManager.class).addRoleHolderAsUser(
+                    RoleManager.ROLE_EMERGENCY, key, 0, Process.myUserHandle(),
+                    AsyncTask.THREAD_POOL_EXECUTOR, successful -> {
+                        if (!successful) {
+                            Log.e(TAG, "Failed to set emergency default app.");
+                        }
+                    });
             return true;
         }
         return false;
diff --git a/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultEmergencyPickerTest.java b/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultEmergencyPickerTest.java
index 5d97f52..b7b046c 100644
--- a/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultEmergencyPickerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultEmergencyPickerTest.java
@@ -19,7 +19,6 @@
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.Matchers.any;
-import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.eq;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
@@ -27,15 +26,10 @@
 
 import android.app.Activity;
 import android.app.role.RoleManager;
-import android.app.role.RoleManagerCallback;
 import android.content.Context;
 import android.content.pm.PackageManager;
-import android.os.AsyncTask;
-import android.os.Process;
 import android.os.UserHandle;
 import android.os.UserManager;
-import android.provider.Settings;
-import android.util.Log;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -50,6 +44,7 @@
 
 import java.util.Arrays;
 import java.util.concurrent.Executor;
+import java.util.function.Consumer;
 
 @RunWith(RobolectricTestRunner.class)
 public class DefaultEmergencyPickerTest {
@@ -90,7 +85,7 @@
             eq(0),
             any(UserHandle.class),
             any(Executor.class),
-            any(RoleManagerCallback.class));
+            any(Consumer.class));
     }
 
     @Test