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

Commit 3f107cad authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Fix crash when service unbinding exception happens." into rvc-qpr-dev...

Merge "Fix crash when service unbinding exception happens." into rvc-qpr-dev am: 9bb5b500 am: 49faa63a

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/services/Telecomm/+/12393430

Change-Id: I72d995b1cb6fe59f08705bd3b49fb2a5f43f7ef3
parents 47fbb994 49faa63a
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -289,7 +289,12 @@ public class CallScreeningServiceFilter extends CallFilter {

    public void unbindCallScreeningService() {
        if (mConnection != null) {
            try {
                mContext.unbindService(mConnection);
            } catch (IllegalArgumentException e) {
                Log.i(this, "Exception when unbind service %s : %s", mConnection,
                        e.getMessage());
            }
        }
        mConnection = null;
    }
+14 −0
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.ArgumentMatchers.nullable;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.timeout;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -209,6 +210,19 @@ public class CallScreeningServiceFilterTest extends TelecomTestCase {
        connection.onServiceDisconnected(COMPONENT_NAME);
    }

    @SmallTest
    @Test
    public void testUnbindingException() {
        // Make sure that exceptions when unbinding won't make the device crash.
        doThrow(new IllegalArgumentException()).when(mContext)
                .unbindService(nullable(ServiceConnection.class));
        CallScreeningServiceFilter filter = new CallScreeningServiceFilter(mCall, PKG_NAME,
                CallScreeningServiceFilter.PACKAGE_TYPE_CARRIER, mContext, mCallsManager,
                mAppLabelProxy, mParcelableCallUtilsConverter);
        filter.startFilterLookup(inputResult);
        filter.unbindCallScreeningService();
    }

    @SmallTest
    @Test
    public void testAllowCall() throws Exception {