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

Commit 175c6f9d authored by Ján Sebechlebský's avatar Ján Sebechlebský Committed by Automerger Merge Worker
Browse files

Merge "Fix flaky failures when re-registering AudioPolicy." into udc-dev am: 92ad02c4

parents f7621386 92ad02c4
Loading
Loading
Loading
Loading
+9 −11
Original line number Diff line number Diff line
@@ -75,11 +75,13 @@ public class AudioPolicy {
     */
    public static final int POLICY_STATUS_REGISTERED = 2;

    @GuardedBy("mLock")
    private int mStatus;
    @GuardedBy("mLock")
    private String mRegistrationId;
    private AudioPolicyStatusListener mStatusListener;
    private boolean mIsFocusPolicy;
    private boolean mIsTestFocusPolicy;
    private final AudioPolicyStatusListener mStatusListener;
    private final boolean mIsFocusPolicy;
    private final boolean mIsTestFocusPolicy;

    /**
     * The list of AudioTrack instances created to inject audio into the associated mixes
@@ -115,6 +117,7 @@ public class AudioPolicy {

    private Context mContext;

    @GuardedBy("mLock")
    private AudioPolicyConfig mConfig;

    private final MediaProjection mProjection;
@@ -552,7 +555,6 @@ public class AudioPolicy {
    /** @hide */
    public void reset() {
        setRegistration(null);
        mConfig.reset();
    }

    public void setRegistration(String regId) {
@@ -563,6 +565,7 @@ public class AudioPolicy {
                mStatus = POLICY_STATUS_REGISTERED;
            } else {
                mStatus = POLICY_STATUS_UNREGISTERED;
                mConfig.reset();
            }
        }
        sendMsg(MSG_POLICY_STATUS_CHANGE);
@@ -940,14 +943,9 @@ public class AudioPolicy {
    }

    private void onPolicyStatusChange() {
        AudioPolicyStatusListener l;
        synchronized (mLock) {
            if (mStatusListener == null) {
                return;
            }
            l = mStatusListener;
        if (mStatusListener != null) {
            mStatusListener.onStatusChange();
        }
        l.onStatusChange();
    }

    //==================================================
+2 −5
Original line number Diff line number Diff line
@@ -42,9 +42,7 @@ public class AudioPolicyConfig implements Parcelable {

    private String mRegistrationId = null;

    /** counter for the mixes that are / have been in the list of AudioMix
     *  e.g. register 4 mixes (counter is 3), remove 1 (counter is 3), add 1 (counter is 4)
     */
    // Corresponds to id of next mix to be registered.
    private int mMixCounter = 0;

    protected AudioPolicyConfig(AudioPolicyConfig conf) {
@@ -286,7 +284,7 @@ public class AudioPolicyConfig implements Parcelable {
            if ((mix.getRouteFlags() & AudioMix.ROUTE_FLAG_LOOP_BACK) ==
                    AudioMix.ROUTE_FLAG_LOOP_BACK) {
                mix.setRegistration(mRegistrationId + "mix" + mixTypeId(mix.getMixType()) + ":"
                        + mMixCounter);
                        + mMixCounter++);
            } else if ((mix.getRouteFlags() & AudioMix.ROUTE_FLAG_RENDER) ==
                    AudioMix.ROUTE_FLAG_RENDER) {
                mix.setRegistration(mix.mDeviceAddress);
@@ -294,7 +292,6 @@ public class AudioPolicyConfig implements Parcelable {
        } else {
            mix.setRegistration("");
        }
        mMixCounter++;
    }

    @GuardedBy("mMixes")