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

Commit 3964e366 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Fix AudioProductStrategy.equals implementation" into udc-dev am: c4f75912 am: 1ebbeba4

parents 394cbeea 1ebbeba4
Loading
Loading
Loading
Loading
+13 −1
Original line number Diff line number Diff line
@@ -203,10 +203,16 @@ public final class AudioProductStrategy implements Parcelable {

        AudioProductStrategy thatStrategy = (AudioProductStrategy) o;

        return mName == thatStrategy.mName && mId == thatStrategy.mId
        return mId == thatStrategy.mId
                && Objects.equals(mName, thatStrategy.mName)
                && Arrays.equals(mAudioAttributesGroups, thatStrategy.mAudioAttributesGroups);
    }

    @Override
    public int hashCode() {
        return Objects.hash(mId, mName, Arrays.hashCode(mAudioAttributesGroups));
    }

    /**
     * @param name of the product strategy
     * @param id of the product strategy
@@ -460,6 +466,12 @@ public final class AudioProductStrategy implements Parcelable {
                    && Arrays.equals(mAudioAttributes, thatAag.mAudioAttributes);
        }

        @Override
        public int hashCode() {
            return Objects.hash(mVolumeGroupId, mLegacyStreamType,
                    Arrays.hashCode(mAudioAttributes));
        }

        public int getStreamType() {
            return mLegacyStreamType;
        }
+25 −0
Original line number Diff line number Diff line
@@ -29,11 +29,14 @@ import android.media.AudioManager;
import android.media.AudioSystem;
import android.media.audiopolicy.AudioProductStrategy;
import android.media.audiopolicy.AudioVolumeGroup;
import android.os.Parcel;
import android.platform.test.annotations.Presubmit;
import android.util.Log;

import androidx.test.ext.junit.runners.AndroidJUnit4;

import com.google.common.testing.EqualsTester;

import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -231,4 +234,26 @@ public class AudioProductStrategyTest {
            }
        }
    }

    @Test
    public void testEquals() {
        final EqualsTester equalsTester = new EqualsTester();

        AudioProductStrategy.getAudioProductStrategies().forEach(
                strategy -> equalsTester.addEqualityGroup(strategy,
                        writeToAndFromParcel(strategy)));

        equalsTester.testEquals();
    }

    private static AudioProductStrategy writeToAndFromParcel(
            AudioProductStrategy audioProductStrategy) {
        Parcel parcel = Parcel.obtain();
        audioProductStrategy.writeToParcel(parcel, /*flags=*/0);
        parcel.setDataPosition(0);
        AudioProductStrategy unmarshalledAudioProductStrategy =
                AudioProductStrategy.CREATOR.createFromParcel(parcel);
        parcel.recycle();
        return unmarshalledAudioProductStrategy;
    }
}