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

Commit 1167b92d authored by Hall Liu's avatar Hall Liu Committed by Android (Google) Code Review
Browse files

Merge "Convert onCallFilteringCompleted to single arg" into sc-dev

parents 86d7d884 e8944c8b
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -764,9 +764,16 @@ public class CallsManager extends Call.ListenerBase
        if (incomingCall.isUsingCallFiltering()) {
            boolean isInContacts = incomingCall.getCallerInfo() != null
                    && incomingCall.getCallerInfo().contactExists;
            Connection.CallFilteringCompletionInfo completionInfo =
                    new Connection.CallFilteringCompletionInfo(!result.shouldAllowCall,
                            isInContacts,
                            result.mCallScreeningResponse == null
                                    ? null : result.mCallScreeningResponse.toCallResponse(),
                            result.mCallScreeningComponentName == null ? null
                                    : ComponentName.unflattenFromString(
                                            result.mCallScreeningComponentName));
            incomingCall.getConnectionService().onCallFilteringCompleted(incomingCall,
                    !result.shouldAllowCall, isInContacts, result.mCallScreeningResponse,
                    result.mIsResponseFromSystemDialer);
                    completionInfo);
        }

        // Get rid of the call composer attachments that aren't wanted
+6 −7
Original line number Diff line number Diff line
@@ -1865,25 +1865,24 @@ public class ConnectionServiceWrapper extends ServiceBinder implements
        }
    }

    void onCallFilteringCompleted(Call call, boolean isBlocked, boolean isInContacts,
            CallScreeningService.ParcelableCallResponse callScreeningResponse,
            boolean isResponseFromSystemDialer) {
    void onCallFilteringCompleted(Call call,
            Connection.CallFilteringCompletionInfo completionInfo) {
        final String callId = mCallIdMapper.getCallId(call);
        if (callId != null && isServiceValid("onCallFilteringCompleted")) {
            try {
                logOutgoing("onCallFilteringCompleted %b %b", isBlocked, isInContacts);
                logOutgoing("onCallFilteringCompleted %s", completionInfo);
                int contactsPermission = mContext.getPackageManager()
                        .checkPermission(Manifest.permission.READ_CONTACTS,
                                getComponentName().getPackageName());
                if (contactsPermission == PackageManager.PERMISSION_GRANTED) {
                    mServiceInterface.onCallFilteringCompleted(callId, isBlocked, isInContacts,
                            callScreeningResponse, isResponseFromSystemDialer,
                    mServiceInterface.onCallFilteringCompleted(callId, completionInfo,
                            Log.getExternalSession(TELECOM_ABBREVIATION));
                } else {
                    logOutgoing("Skipping call filtering complete message for %s due"
                            + " to lack of READ_CONTACTS", getComponentName().getPackageName());
                }
            } catch (RemoteException ignored) {
            } catch (RemoteException e) {
                Log.e(this, e, "Remote exception calling onCallFilteringCompleted");
            }
        }
    }
+13 −2
Original line number Diff line number Diff line
@@ -241,11 +241,22 @@ public class CallFilteringResult {
            CallFilteringResult r2) {
        if (r1.mIsResponseFromSystemDialer) {
            builder.setCallScreeningResponse(r1.mCallScreeningResponse, true);
            builder.setCallScreeningComponentName(r1.mCallScreeningComponentName);
            builder.setCallScreeningAppName(r1.mCallScreeningAppName);
        } else if (r2.mIsResponseFromSystemDialer) {
            builder.setCallScreeningResponse(r2.mCallScreeningResponse, true);
            builder.setCallScreeningComponentName(r2.mCallScreeningComponentName);
            builder.setCallScreeningAppName(r2.mCallScreeningAppName);
        } else {
            builder.setCallScreeningResponse(r1.mCallScreeningResponse == null
                    ? r2.mCallScreeningResponse : r1.mCallScreeningResponse, false);
            if (r1.mCallScreeningResponse != null) {
                builder.setCallScreeningResponse(r1.mCallScreeningResponse, false);
                builder.setCallScreeningComponentName(r1.mCallScreeningComponentName);
                builder.setCallScreeningAppName(r1.mCallScreeningAppName);
            } else {
                builder.setCallScreeningResponse(r2.mCallScreeningResponse, false);
                builder.setCallScreeningComponentName(r2.mCallScreeningComponentName);
                builder.setCallScreeningAppName(r2.mCallScreeningAppName);
            }
        }
    }

+5 −1
Original line number Diff line number Diff line
@@ -159,7 +159,11 @@ public class IncomingCallFilterGraph {
        startFuture.thenComposeAsync(filter::startFilterLookup,
                new LoggedHandlerExecutor(mHandler, "ICFG.sF", null))
                .thenApplyAsync(postFilterTask::whenDone,
                        new LoggedHandlerExecutor(mHandler, "ICFG.sF", null));
                        new LoggedHandlerExecutor(mHandler, "ICFG.sF", null))
                .exceptionally((t) -> {
                    Log.e(filter, t, "Encountered exception running filter");
                    return null;
                });
        Log.i(TAG, "Filter %s scheduled.", filter);
    }

+2 −3
Original line number Diff line number Diff line
@@ -440,9 +440,8 @@ public class ConnectionServiceFixture implements TestFixture<IConnectionService>
        public void handoverComplete(String callId, Session.Info sessionInfo) {}

        @Override
        public void onCallFilteringCompleted(String callId, boolean isBlocked, boolean isInContacts,
                CallScreeningService.ParcelableCallResponse callScreeningResponse,
                boolean isResponseFromSystemDialer, Session.Info sessionInfo) { }
        public void onCallFilteringCompleted(String callId,
                Connection.CallFilteringCompletionInfo completionInfo, Session.Info sessionInfo) { }
    }

    FakeConnectionServiceDelegate mConnectionServiceDelegate;