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

Commit e244922a authored by Andy Hung's avatar Andy Hung
Browse files

AudioRecord.Builder should throw exception on failure.

Should throw UnsupportedOperationException instead of returning
an uninitialized record object.

Bug: 21890643
Change-Id: I9c05a4cff9f5e1d5513c76acace09699a567008f
parent 23a6262f
Loading
Loading
Loading
Loading
+11 −4
Original line number Diff line number Diff line
@@ -527,10 +527,11 @@ public class AudioRecord
        }

        /**
         * @return a new {@link AudioRecord} instance initialized with all the parameters set
         *     on this <code>Builder</code>
         * @return a new {@link AudioRecord} instance successfully initialized with all
         *     the parameters set on this <code>Builder</code>.
         * @throws UnsupportedOperationException if the parameters set on the <code>Builder</code>
         *     were incompatible, or if they are not supported by the device.
         *     were incompatible, or if they are not supported by the device,
         *     or if the device was not available.
         */
        public AudioRecord build() throws UnsupportedOperationException {
            if (mFormat == null) {
@@ -564,7 +565,13 @@ public class AudioRecord
                    mBufferSizeInBytes = mFormat.getChannelCount()
                            * mFormat.getBytesPerSample(mFormat.getEncoding());
                }
                return new AudioRecord(mAttributes, mFormat, mBufferSizeInBytes, mSessionId);
                final AudioRecord record = new AudioRecord(
                        mAttributes, mFormat, mBufferSizeInBytes, mSessionId);
                if (record.getState() == STATE_UNINITIALIZED) {
                    // release is not necessary
                    throw new UnsupportedOperationException("Cannot create AudioRecord");
                }
                return record;
            } catch (IllegalArgumentException e) {
                throw new UnsupportedOperationException(e.getMessage());
            }