Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f0195260 authored by Hai Zhang's avatar Hai Zhang
Browse files

Use separate config entries for default role holders.

Using a single config_defaultRoleHolders turned out to be problematic
and error-prone when mixed with multiple overlays, so split it into
separate config entries.

Test: build
Change-Id: I05b4512b762c1d42ab20b26607408b01d6f27159
parent ae714fe9
Loading
Loading
Loading
Loading
+1 −9
Original line number Diff line number Diff line
@@ -28,7 +28,6 @@ import static android.Manifest.permission.WRITE_SECURE_SETTINGS;
import android.Manifest;
import android.app.ActivityManager;
import android.app.AppOpsManager;
import android.app.role.RoleManager;
import android.content.ComponentName;
import android.content.ContentResolver;
import android.content.Context;
@@ -55,9 +54,7 @@ import android.text.TextUtils;
import android.util.EventLog;

import com.android.internal.telecom.ITelecomService;
import com.android.internal.util.ArrayUtils;
import com.android.internal.util.IndentingPrintWriter;
import com.android.internal.util.Preconditions;
import com.android.server.telecom.components.UserCallIntentProcessorFactory;
import com.android.server.telecom.settings.BlockedNumbersActivity;

@@ -1748,12 +1745,7 @@ public class TelecomServiceImpl {
    }

    public static String getSystemDialerPackage(Context context) {
        String[] holders = context.getResources().getStringArray(
                com.android.internal.R.array.config_defaultRoleHolders);
        return TextUtils.withoutPrefix(RoleManagerAdapter.ROLE_DIALER + ": ",
                Preconditions.checkNotNull(
                        ArrayUtils.find(holders, s -> s.startsWith(RoleManagerAdapter.ROLE_DIALER)),
                        "No system dialer configured"));
        return context.getResources().getString(com.android.internal.R.string.config_defaultDialer);
    }

    public ITelecomService.Stub getBinder() {
+2 −3
Original line number Diff line number Diff line
@@ -125,9 +125,8 @@ public class InCallControllerTests extends TelecomTestCase {
        MockitoAnnotations.initMocks(this);
        when(mMockCall.getAnalytics()).thenReturn(new Analytics.CallInfo());
        doReturn(mMockResources).when(mMockContext).getResources();
        doReturn(new String[] { RoleManagerAdapter.ROLE_DIALER + ": " + SYS_PKG })
                .when(mMockResources)
                .getString(com.android.internal.R.array.config_defaultRoleHolders);
        doReturn(SYS_PKG).when(mMockResources).getString(
                com.android.internal.R.string.config_defaultDialer);
        doReturn(SYS_CLASS).when(mMockResources).getString(R.string.incall_default_class);
        doReturn(true).when(mMockResources).getBoolean(R.bool.grant_location_permission_enabled);
        mEmergencyCallHelper = new EmergencyCallHelper(mMockContext, SYS_PKG,
+2 −3
Original line number Diff line number Diff line
@@ -196,9 +196,8 @@ public class NewOutgoingCallIntentBroadcasterTest extends TelecomTestCase {

        String ui_package_string = "sample_string_1";
        String dialer_default_class_string = "sample_string_2";
        mComponentContextFixture.putStringArrayResource(
                com.android.internal.R.array.config_defaultRoleHolders,
                new String[] {RoleManagerAdapter.ROLE_DIALER + ": " + ui_package_string});
        mComponentContextFixture.putResource(com.android.internal.R.string.config_defaultDialer,
                ui_package_string);
        mComponentContextFixture.putResource(R.string.dialer_default_class,
                dialer_default_class_string);

+3 −4
Original line number Diff line number Diff line
@@ -516,10 +516,9 @@ public class TelecomSystemTest extends TelecomTestCase {
    }

    private void setupInCallServices() throws Exception {
        mComponentContextFixture.putStringArrayResource(
                com.android.internal.R.array.config_defaultRoleHolders,
                new String[] { RoleManagerAdapter.ROLE_DIALER + ": "
                        + mInCallServiceComponentNameX.getPackageName() });
        mComponentContextFixture.putResource(
                com.android.internal.R.string.config_defaultDialer,
                mInCallServiceComponentNameX.getPackageName());
        mComponentContextFixture.putResource(
                com.android.server.telecom.R.string.incall_default_class,
                mInCallServiceComponentNameX.getClassName());