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