Loading core/api/current.txt +12 −0 Original line number Diff line number Diff line Loading @@ -24376,6 +24376,11 @@ package android.media.effect { package android.media.metrics { public final class EditingSession implements java.lang.AutoCloseable { method public void close(); method @NonNull public android.media.metrics.LogSessionId getSessionId(); } public abstract class Event { method @NonNull public android.os.Bundle getMetricsBundle(); method @IntRange(from=0xffffffff) public long getTimeSinceCreatedMillis(); Loading @@ -24387,8 +24392,10 @@ package android.media.metrics { } public final class MediaMetricsManager { method @NonNull public android.media.metrics.EditingSession createEditingSession(); method @NonNull public android.media.metrics.PlaybackSession createPlaybackSession(); method @NonNull public android.media.metrics.RecordingSession createRecordingSession(); method @NonNull public android.media.metrics.TranscodingSession createTranscodingSession(); field public static final long INVALID_TIMESTAMP = -1L; // 0xffffffffffffffffL } Loading Loading @@ -24636,6 +24643,11 @@ package android.media.metrics { method @NonNull public android.media.metrics.TrackChangeEvent.Builder setWidth(@IntRange(from=0xffffffff, to=java.lang.Integer.MAX_VALUE) int); } public final class TranscodingSession implements java.lang.AutoCloseable { method public void close(); method @NonNull public android.media.metrics.LogSessionId getSessionId(); } } package android.media.midi { media/java/android/media/metrics/EditingSession.java 0 → 100644 +63 −0 Original line number Diff line number Diff line /* * Copyright (C) 2021 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.media.metrics; import android.annotation.NonNull; import android.annotation.Nullable; import com.android.internal.util.AnnotationValidations; import java.util.Objects; /** * An instances of this class represents a session of media editing. */ public final class EditingSession implements AutoCloseable { private final @NonNull String mId; private final @NonNull MediaMetricsManager mManager; private final @NonNull LogSessionId mLogSessionId; /** @hide */ public EditingSession(@NonNull String id, @NonNull MediaMetricsManager manager) { mId = id; mManager = manager; AnnotationValidations.validate(NonNull.class, null, mId); AnnotationValidations.validate(NonNull.class, null, mManager); mLogSessionId = new LogSessionId(mId); } public @NonNull LogSessionId getSessionId() { return mLogSessionId; } @Override public boolean equals(@Nullable Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; EditingSession that = (EditingSession) o; return Objects.equals(mId, that.mId); } @Override public int hashCode() { return Objects.hash(mId); } @Override public void close() { } } media/java/android/media/metrics/IMediaMetricsManager.aidl +5 −1 Original line number Diff line number Diff line Loading @@ -28,10 +28,14 @@ import android.media.metrics.TrackChangeEvent; */ interface IMediaMetricsManager { void reportPlaybackMetrics(in String sessionId, in PlaybackMetrics metrics, int userId); String getPlaybackSessionId(int userId); String getRecordingSessionId(int userId); void reportNetworkEvent(in String sessionId, in NetworkEvent event, int userId); void reportPlaybackErrorEvent(in String sessionId, in PlaybackErrorEvent event, int userId); void reportPlaybackStateEvent(in String sessionId, in PlaybackStateEvent event, int userId); void reportTrackChangeEvent(in String sessionId, in TrackChangeEvent event, int userId); String getTranscodingSessionId(int userId); String getEditingSessionId(int userId); } media/java/android/media/metrics/MediaMetricsManager.java +28 −0 Original line number Diff line number Diff line Loading @@ -116,6 +116,34 @@ public final class MediaMetricsManager { } } /** * Creates a transcoding session. */ @NonNull public TranscodingSession createTranscodingSession() { try { String id = mService.getTranscodingSessionId(mUserId); TranscodingSession session = new TranscodingSession(id, this); return session; } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } /** * Creates a editing session. */ @NonNull public EditingSession createEditingSession() { try { String id = mService.getEditingSessionId(mUserId); EditingSession session = new EditingSession(id, this); return session; } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } /** * Reports error event. * @hide Loading media/java/android/media/metrics/TranscodingSession.java 0 → 100644 +63 −0 Original line number Diff line number Diff line /* * Copyright (C) 2021 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.media.metrics; import android.annotation.NonNull; import android.annotation.Nullable; import com.android.internal.util.AnnotationValidations; import java.util.Objects; /** * An instances of this class represents a session of media Transcoding. */ public final class TranscodingSession implements AutoCloseable { private final @NonNull String mId; private final @NonNull MediaMetricsManager mManager; private final @NonNull LogSessionId mLogSessionId; /** @hide */ public TranscodingSession(@NonNull String id, @NonNull MediaMetricsManager manager) { mId = id; mManager = manager; AnnotationValidations.validate(NonNull.class, null, mId); AnnotationValidations.validate(NonNull.class, null, mManager); mLogSessionId = new LogSessionId(mId); } public @NonNull LogSessionId getSessionId() { return mLogSessionId; } @Override public boolean equals(@Nullable Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; TranscodingSession that = (TranscodingSession) o; return Objects.equals(mId, that.mId); } @Override public int hashCode() { return Objects.hash(mId); } @Override public void close() { } } Loading
core/api/current.txt +12 −0 Original line number Diff line number Diff line Loading @@ -24376,6 +24376,11 @@ package android.media.effect { package android.media.metrics { public final class EditingSession implements java.lang.AutoCloseable { method public void close(); method @NonNull public android.media.metrics.LogSessionId getSessionId(); } public abstract class Event { method @NonNull public android.os.Bundle getMetricsBundle(); method @IntRange(from=0xffffffff) public long getTimeSinceCreatedMillis(); Loading @@ -24387,8 +24392,10 @@ package android.media.metrics { } public final class MediaMetricsManager { method @NonNull public android.media.metrics.EditingSession createEditingSession(); method @NonNull public android.media.metrics.PlaybackSession createPlaybackSession(); method @NonNull public android.media.metrics.RecordingSession createRecordingSession(); method @NonNull public android.media.metrics.TranscodingSession createTranscodingSession(); field public static final long INVALID_TIMESTAMP = -1L; // 0xffffffffffffffffL } Loading Loading @@ -24636,6 +24643,11 @@ package android.media.metrics { method @NonNull public android.media.metrics.TrackChangeEvent.Builder setWidth(@IntRange(from=0xffffffff, to=java.lang.Integer.MAX_VALUE) int); } public final class TranscodingSession implements java.lang.AutoCloseable { method public void close(); method @NonNull public android.media.metrics.LogSessionId getSessionId(); } } package android.media.midi {
media/java/android/media/metrics/EditingSession.java 0 → 100644 +63 −0 Original line number Diff line number Diff line /* * Copyright (C) 2021 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.media.metrics; import android.annotation.NonNull; import android.annotation.Nullable; import com.android.internal.util.AnnotationValidations; import java.util.Objects; /** * An instances of this class represents a session of media editing. */ public final class EditingSession implements AutoCloseable { private final @NonNull String mId; private final @NonNull MediaMetricsManager mManager; private final @NonNull LogSessionId mLogSessionId; /** @hide */ public EditingSession(@NonNull String id, @NonNull MediaMetricsManager manager) { mId = id; mManager = manager; AnnotationValidations.validate(NonNull.class, null, mId); AnnotationValidations.validate(NonNull.class, null, mManager); mLogSessionId = new LogSessionId(mId); } public @NonNull LogSessionId getSessionId() { return mLogSessionId; } @Override public boolean equals(@Nullable Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; EditingSession that = (EditingSession) o; return Objects.equals(mId, that.mId); } @Override public int hashCode() { return Objects.hash(mId); } @Override public void close() { } }
media/java/android/media/metrics/IMediaMetricsManager.aidl +5 −1 Original line number Diff line number Diff line Loading @@ -28,10 +28,14 @@ import android.media.metrics.TrackChangeEvent; */ interface IMediaMetricsManager { void reportPlaybackMetrics(in String sessionId, in PlaybackMetrics metrics, int userId); String getPlaybackSessionId(int userId); String getRecordingSessionId(int userId); void reportNetworkEvent(in String sessionId, in NetworkEvent event, int userId); void reportPlaybackErrorEvent(in String sessionId, in PlaybackErrorEvent event, int userId); void reportPlaybackStateEvent(in String sessionId, in PlaybackStateEvent event, int userId); void reportTrackChangeEvent(in String sessionId, in TrackChangeEvent event, int userId); String getTranscodingSessionId(int userId); String getEditingSessionId(int userId); }
media/java/android/media/metrics/MediaMetricsManager.java +28 −0 Original line number Diff line number Diff line Loading @@ -116,6 +116,34 @@ public final class MediaMetricsManager { } } /** * Creates a transcoding session. */ @NonNull public TranscodingSession createTranscodingSession() { try { String id = mService.getTranscodingSessionId(mUserId); TranscodingSession session = new TranscodingSession(id, this); return session; } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } /** * Creates a editing session. */ @NonNull public EditingSession createEditingSession() { try { String id = mService.getEditingSessionId(mUserId); EditingSession session = new EditingSession(id, this); return session; } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } /** * Reports error event. * @hide Loading
media/java/android/media/metrics/TranscodingSession.java 0 → 100644 +63 −0 Original line number Diff line number Diff line /* * Copyright (C) 2021 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.media.metrics; import android.annotation.NonNull; import android.annotation.Nullable; import com.android.internal.util.AnnotationValidations; import java.util.Objects; /** * An instances of this class represents a session of media Transcoding. */ public final class TranscodingSession implements AutoCloseable { private final @NonNull String mId; private final @NonNull MediaMetricsManager mManager; private final @NonNull LogSessionId mLogSessionId; /** @hide */ public TranscodingSession(@NonNull String id, @NonNull MediaMetricsManager manager) { mId = id; mManager = manager; AnnotationValidations.validate(NonNull.class, null, mId); AnnotationValidations.validate(NonNull.class, null, mManager); mLogSessionId = new LogSessionId(mId); } public @NonNull LogSessionId getSessionId() { return mLogSessionId; } @Override public boolean equals(@Nullable Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; TranscodingSession that = (TranscodingSession) o; return Objects.equals(mId, that.mId); } @Override public int hashCode() { return Objects.hash(mId); } @Override public void close() { } }