|
7 | 7 | import androidx.media3.extractor.metadata.id3.Id3Frame; |
8 | 8 | import androidx.media3.extractor.metadata.id3.TextInformationFrame; |
9 | 9 |
|
| 10 | +import com.diceplatform.doris.ui.skipmarker.SkipMarker; |
10 | 11 | import com.facebook.react.ReactApplication; |
11 | 12 | import com.facebook.react.bridge.Arguments; |
12 | 13 | import com.facebook.react.bridge.ReactContext; |
@@ -63,6 +64,7 @@ class VideoEventEmitter { |
63 | 64 | private static final String EVENT_ANNOTATIONS_BUTTON_CLICK = "onAnnotationsButtonClick"; |
64 | 65 | private static final String EVENT_SUBTITLE_TRACK_CHANGED = "onSubtitleTrackChanged"; |
65 | 66 | private static final String EVENT_AUDIO_TRACK_CHANGED = "onAudioTrackChanged"; |
| 67 | + private static final String EVENT_SKIP_MARKER = "onSkipMarkerButton"; |
66 | 68 |
|
67 | 69 | static final String[] Events = { |
68 | 70 | EVENT_LOAD_START, |
@@ -100,7 +102,8 @@ class VideoEventEmitter { |
100 | 102 | EVENT_AUDIO_TRACK_CHANGED, |
101 | 103 | EVENT_REQUIRE_AD_PARAMETERS, |
102 | 104 | EVENT_RELOAD_CURRENT_SOURCE, |
103 | | - EVENT_BEHIND_LIVE_WINDOW_ERROR |
| 105 | + EVENT_BEHIND_LIVE_WINDOW_ERROR, |
| 106 | + EVENT_SKIP_MARKER |
104 | 107 | }; |
105 | 108 |
|
106 | 109 | @Retention(RetentionPolicy.SOURCE) |
@@ -140,7 +143,8 @@ class VideoEventEmitter { |
140 | 143 | EVENT_AUDIO_TRACK_CHANGED, |
141 | 144 | EVENT_REQUIRE_AD_PARAMETERS, |
142 | 145 | EVENT_RELOAD_CURRENT_SOURCE, |
143 | | - EVENT_BEHIND_LIVE_WINDOW_ERROR |
| 146 | + EVENT_BEHIND_LIVE_WINDOW_ERROR, |
| 147 | + EVENT_SKIP_MARKER |
144 | 148 | }) |
145 | 149 | @interface VideoEvents { |
146 | 150 | } |
@@ -178,6 +182,7 @@ class VideoEventEmitter { |
178 | 182 | private static final String EVENT_PROP_DATE = "date"; |
179 | 183 | private static final String EVENT_PROP_IS_BLOCKING = "isBlocking"; |
180 | 184 | private static final String EVENT_PROP_LANGUAGE = "language"; |
| 185 | + private static final String EVENT_PROP_TARGET = "target"; |
181 | 186 |
|
182 | 187 | private static final String EVENT_PROP_ERROR = "error"; |
183 | 188 | private static final String EVENT_PROP_ERROR_STRING = "errorString"; |
@@ -402,6 +407,13 @@ void watchlistButtonClick() { |
402 | 407 | receiveEvent(EVENT_WATCHLIST_BUTTON_CLICK, null); |
403 | 408 | } |
404 | 409 |
|
| 410 | + void skipMarkerClick(SkipMarker skipMarker) { |
| 411 | + WritableMap map = Arguments.createMap(); |
| 412 | + map.putString(EVENT_PROP_TYPE, skipMarker.skipMarkerType.name().toLowerCase()); |
| 413 | + map.putLong(EVENT_PROP_TARGET, skipMarker.endTimeMs); |
| 414 | + receiveEvent(EVENT_SKIP_MARKER, map); |
| 415 | + } |
| 416 | + |
405 | 417 | void annotationsButtonClick() { |
406 | 418 | receiveEvent(EVENT_ANNOTATIONS_BUTTON_CLICK, null); |
407 | 419 | } |
|
0 commit comments