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

Commit 9bb5b500 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

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

parents 2a66eb18 a5335986
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 {