Migrate emegency default app to role manager.
Bug: 123293861 Test: atest DefaultEmergencyPickerTest Change-Id: I7bd9e2655b22a35fc3268091d38c6770911d4046
This commit is contained in:
@@ -16,6 +16,8 @@
|
||||
|
||||
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;
|
||||
@@ -23,9 +25,13 @@ import android.content.pm.ApplicationInfo;
|
||||
import android.content.pm.PackageInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
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;
|
||||
|
||||
import com.android.internal.util.CollectionUtils;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.Utils;
|
||||
import com.android.settingslib.applications.DefaultAppInfo;
|
||||
@@ -35,7 +41,7 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class DefaultEmergencyPicker extends DefaultAppPickerFragment {
|
||||
|
||||
private static final String TAG = "DefaultEmergencyPicker";
|
||||
@Override
|
||||
public int getMetricsCategory() {
|
||||
return SettingsEnums.DEFAULT_EMERGENCY_APP_PICKER;
|
||||
@@ -85,20 +91,27 @@ public class DefaultEmergencyPicker extends DefaultAppPickerFragment {
|
||||
|
||||
@Override
|
||||
protected String getDefaultKey() {
|
||||
return Settings.Secure.getString(getContext().getContentResolver(),
|
||||
Settings.Secure.EMERGENCY_ASSISTANCE_APPLICATION);
|
||||
RoleManager roleManager = getContext().getSystemService(RoleManager.class);
|
||||
return CollectionUtils.firstOrNull(roleManager.getRoleHolders(RoleManager.ROLE_EMERGENCY));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean setDefaultKey(String key) {
|
||||
final ContentResolver contentResolver = getContext().getContentResolver();
|
||||
final String previousValue = Settings.Secure.getString(contentResolver,
|
||||
Settings.Secure.EMERGENCY_ASSISTANCE_APPLICATION);
|
||||
final String previousValue = getDefaultKey();
|
||||
|
||||
if (!TextUtils.isEmpty(key) && !TextUtils.equals(key, previousValue)) {
|
||||
Settings.Secure.putString(contentResolver,
|
||||
Settings.Secure.EMERGENCY_ASSISTANCE_APPLICATION,
|
||||
key);
|
||||
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.");
|
||||
}
|
||||
});
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
Reference in New Issue
Block a user