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

Commit 5bf653db authored by Atneya Nair's avatar Atneya Nair Committed by Automerger Merge Worker
Browse files

Force unsilence record clients on startInput am: 12e41309

parents 9e14ac6b 12e41309
Loading
Loading
Loading
Loading
+21 −0
Original line number Original line Diff line number Diff line
@@ -703,8 +703,29 @@ Status AudioPolicyService::startInput(int32_t portIdAidl)


    Mutex::Autolock _l(mLock);
    Mutex::Autolock _l(mLock);


    ALOGW_IF(client->silenced, "startInput on silenced input for port %d, uid %d. Unsilencing.",
            portIdAidl,
            client->attributionSource.uid);

    if (client->active) {
        ALOGE("Client should never be active before startInput. Uid %d port %d",
                client->attributionSource.uid, portId);
        finishRecording(client->attributionSource, client->attributes.source);
        return binderStatusFromStatusT(INVALID_OPERATION);
    }

    // Force the possibly silenced client to be unsilenced since we just called
    // startRecording (i.e. we have assumed it is unsilenced).
    // At this point in time, the client is inactive, so no calls to appops are sent in
    // setAppState_l.
    // This ensures existing clients have the same behavior as new clients (starting unsilenced).
    // TODO(b/282076713)
    setAppState_l(client, APP_STATE_TOP);

    client->active = true;
    client->active = true;
    client->startTimeNs = systemTime();
    client->startTimeNs = systemTime();
    // This call updates the silenced state, and since we are active, appropriately notifies appops
    // if we silence the track.
    updateUidStates_l();
    updateUidStates_l();


    status_t status;
    status_t status;