@picsa/capacitor-video-player 7.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/CapacitorVideoPlayer.podspec +17 -0
  2. package/LICENSE +21 -0
  3. package/android/build.gradle +71 -0
  4. package/android/src/main/AndroidManifest.xml +3 -0
  5. package/android/src/main/java/com/jeep/plugin/capacitor/capacitorvideoplayer/CapacitorVideoPlayer.java +71 -0
  6. package/android/src/main/java/com/jeep/plugin/capacitor/capacitorvideoplayer/CapacitorVideoPlayerPlugin.java +1256 -0
  7. package/android/src/main/java/com/jeep/plugin/capacitor/capacitorvideoplayer/FullscreenExoPlayerFragment.java +1595 -0
  8. package/android/src/main/java/com/jeep/plugin/capacitor/capacitorvideoplayer/Notifications/MyRunnable.java +21 -0
  9. package/android/src/main/java/com/jeep/plugin/capacitor/capacitorvideoplayer/Notifications/NotificationCenter.java +61 -0
  10. package/android/src/main/java/com/jeep/plugin/capacitor/capacitorvideoplayer/PickerVideo/AdapterVideoList.java +47 -0
  11. package/android/src/main/java/com/jeep/plugin/capacitor/capacitorvideoplayer/PickerVideo/ModelVideo.java +49 -0
  12. package/android/src/main/java/com/jeep/plugin/capacitor/capacitorvideoplayer/PickerVideo/PickerVideoFragment.java +119 -0
  13. package/android/src/main/java/com/jeep/plugin/capacitor/capacitorvideoplayer/PickerVideo/VideoRecyclerViewHolder.java +65 -0
  14. package/android/src/main/java/com/jeep/plugin/capacitor/capacitorvideoplayer/Utilities/FilesUtils.java +101 -0
  15. package/android/src/main/java/com/jeep/plugin/capacitor/capacitorvideoplayer/Utilities/FragmentUtils.java +32 -0
  16. package/android/src/main/res/.gitkeep +0 -0
  17. package/android/src/main/res/drawable/bg_round_rect_white_50.xml +9 -0
  18. package/android/src/main/res/drawable/bg_rounded_rectangle_white_corner_rounded.xml +10 -0
  19. package/android/src/main/res/drawable/exo_close_btn.xml +12 -0
  20. package/android/src/main/res/drawable/gradient_transparent_middle.xml +12 -0
  21. package/android/src/main/res/drawable/ic_arrow_left.xml +5 -0
  22. package/android/src/main/res/drawable/ic_baseline_lq.xml +7 -0
  23. package/android/src/main/res/drawable/ic_exo_icon_fastforward.xml +35 -0
  24. package/android/src/main/res/drawable/ic_exo_icon_pause.xml +26 -0
  25. package/android/src/main/res/drawable/ic_exo_icon_play.xml +36 -0
  26. package/android/src/main/res/drawable/ic_exo_icon_rewind.xml +35 -0
  27. package/android/src/main/res/drawable/ic_expand.xml +5 -0
  28. package/android/src/main/res/drawable/ic_fit.xml +5 -0
  29. package/android/src/main/res/drawable/ic_image_background.xml +12 -0
  30. package/android/src/main/res/drawable/ic_img_16_9_background.xml +10 -0
  31. package/android/src/main/res/drawable/ic_img_9_16_background.xml +10 -0
  32. package/android/src/main/res/drawable/ic_outline_lock.xml +5 -0
  33. package/android/src/main/res/drawable/ic_outline_lock_open.xml +5 -0
  34. package/android/src/main/res/drawable/ic_pip_white.xml +5 -0
  35. package/android/src/main/res/drawable/ic_views.xml +18 -0
  36. package/android/src/main/res/drawable/ic_zoom.xml +5 -0
  37. package/android/src/main/res/layout/bridge_layout_main.xml +15 -0
  38. package/android/src/main/res/layout/exo_playback_control_view.xml +289 -0
  39. package/android/src/main/res/layout/exoplayer_layout_youtube.xml +361 -0
  40. package/android/src/main/res/layout/fragment_fs_exoplayer.xml +50 -0
  41. package/android/src/main/res/layout/fragment_picker_video.xml +21 -0
  42. package/android/src/main/res/layout/row_video.xml +76 -0
  43. package/android/src/main/res/values/colors.xml +14 -0
  44. package/android/src/main/res/values/strings.xml +3 -0
  45. package/android/src/main/res/values/styles.xml +3 -0
  46. package/dist/docs.json +831 -0
  47. package/dist/esm/definitions.d.ts +322 -0
  48. package/dist/esm/definitions.js +2 -0
  49. package/dist/esm/definitions.js.map +1 -0
  50. package/dist/esm/index.d.ts +4 -0
  51. package/dist/esm/index.js +7 -0
  52. package/dist/esm/index.js.map +1 -0
  53. package/dist/esm/web-utils/video-types.d.ts +16 -0
  54. package/dist/esm/web-utils/video-types.js +15 -0
  55. package/dist/esm/web-utils/video-types.js.map +1 -0
  56. package/dist/esm/web-utils/videoplayer.d.ts +30 -0
  57. package/dist/esm/web-utils/videoplayer.js +315 -0
  58. package/dist/esm/web-utils/videoplayer.js.map +1 -0
  59. package/dist/esm/web.d.ts +123 -0
  60. package/dist/esm/web.js +675 -0
  61. package/dist/esm/web.js.map +1 -0
  62. package/dist/plugin.cjs.js +1017 -0
  63. package/dist/plugin.cjs.js.map +1 -0
  64. package/dist/plugin.js +1019 -0
  65. package/dist/plugin.js.map +1 -0
  66. package/ios/Plugin/CapacitorVideoPlayer.swift +64 -0
  67. package/ios/Plugin/CapacitorVideoPlayerPlugin.h +10 -0
  68. package/ios/Plugin/CapacitorVideoPlayerPlugin.m +22 -0
  69. package/ios/Plugin/CapacitorVideoPlayerPlugin.swift +632 -0
  70. package/ios/Plugin/Extensions/CapacitorVideoPlayerPlugin.AVPlayerViewController.swift +59 -0
  71. package/ios/Plugin/Extensions/CapacitorVideoPlayerPlugin.File.swift +126 -0
  72. package/ios/Plugin/Extensions/CapacitorVideoPlayerPlugin.Fullscreen.swift +94 -0
  73. package/ios/Plugin/Extensions/CapacitorVideoPlayerPlugin.Notifications.swift +140 -0
  74. package/ios/Plugin/Extensions/CapacitorVideoPlayerPlugin.Observers.swift +180 -0
  75. package/ios/Plugin/Info.plist +24 -0
  76. package/ios/Plugin/VideoPicker/VideoHelper.swift +127 -0
  77. package/ios/Plugin/VideoPicker/VideoPickerViewController.swift +144 -0
  78. package/ios/Plugin/VideoPlayer/Extensions/AVURLAsset.swift +18 -0
  79. package/ios/Plugin/VideoPlayer/Extensions/AllOrientationAVPlayerController.swift +12 -0
  80. package/ios/Plugin/VideoPlayer/Extensions/CMTime.swift +23 -0
  81. package/ios/Plugin/VideoPlayer/Extensions/LandscapeAVPlayerController.swift +12 -0
  82. package/ios/Plugin/VideoPlayer/Extensions/Notification.Name.swift +18 -0
  83. package/ios/Plugin/VideoPlayer/Extensions/PortraitAVPlayerController.swift +12 -0
  84. package/ios/Plugin/VideoPlayer/Extensions/View.swift +54 -0
  85. package/ios/Plugin/VideoPlayer/FullScreenVideoPlayerView.swift +601 -0
  86. package/ios/Plugin/VideoPlayer/Models/Video.swift +28 -0
  87. package/ios/Plugin/VideoPlayer/Models/VideoModel.swift +42 -0
  88. package/package.json +92 -0
  89. package/readme.md +190 -0
@@ -0,0 +1,35 @@
1
+ <vector xmlns:android="http://schemas.android.com/apk/res/android"
2
+ android:width="40dp"
3
+ android:height="40dp"
4
+ android:viewportWidth="40"
5
+ android:viewportHeight="40">
6
+ <path
7
+ android:pathData="M20,20m-20,0a20,20 0,1 1,40 0a20,20 0,1 1,-40 0"
8
+ android:strokeAlpha="0.5"
9
+ android:strokeWidth="1"
10
+ android:fillColor="#000000"
11
+ android:fillType="evenOdd"
12
+ android:strokeColor="#00000000"
13
+ android:fillAlpha="0.5"/>
14
+ <path
15
+ android:pathData="M10,20.7187C10,26.2415 14.4772,30.7187 20,30.7187C25.5228,30.7187 30,26.2415 30,20.7187C30,15.1958 25.5228,10.7187 20,10.7187L17.6399,10.7187"
16
+ android:strokeWidth="1.5"
17
+ android:fillColor="#00000000"
18
+ android:strokeColor="#FFFFFF"
19
+ android:fillType="evenOdd"
20
+ android:strokeLineCap="round"/>
21
+ <path
22
+ android:pathData="M17,11L21,7L17,11ZM17,11L21,15L17,11Z"
23
+ android:strokeLineJoin="round"
24
+ android:strokeWidth="1.5"
25
+ android:fillColor="#00000000"
26
+ android:strokeColor="#FFFFFF"
27
+ android:fillType="evenOdd"
28
+ android:strokeLineCap="round"/>
29
+ <path
30
+ android:pathData="M16.416,18.9187C16.816,18.86 17.168,18.7187 17.472,18.4947L18.184,18.4947L18.184,23.7187L17.24,23.7187L17.24,19.6227C16.968,19.756 16.6933,19.8227 16.416,19.8227L16.416,18.9187ZM20.964,18.4227C21.284,18.4227 21.576,18.4773 21.84,18.5867C22.104,18.696 22.3293,18.8627 22.516,19.0867C22.9213,19.5613 23.124,20.2413 23.124,21.1267C23.124,22.012 22.9213,22.692 22.516,23.1667C22.1427,23.6093 21.628,23.8307 20.972,23.8307C20.3107,23.8307 19.7907,23.6093 19.412,23.1667C19.012,22.7027 18.812,22.0227 18.812,21.1267C18.812,20.2307 19.012,19.5507 19.412,19.0867C19.7907,18.644 20.308,18.4227 20.964,18.4227ZM22.148,21.1267C22.148,20.5293 22.0453,20.072 21.84,19.7547C21.6347,19.4373 21.344,19.2787 20.968,19.2787C20.592,19.2787 20.3013,19.4373 20.096,19.7547C19.8907,20.072 19.788,20.5293 19.788,21.1267C19.788,21.724 19.8907,22.1787 20.096,22.4907C20.3013,22.8027 20.592,22.9587 20.968,22.9587C21.344,22.9587 21.6347,22.8027 21.84,22.4907C22.0453,22.1787 22.148,21.724 22.148,21.1267Z"
31
+ android:strokeWidth="1"
32
+ android:fillColor="#FFFFFF"
33
+ android:fillType="nonZero"
34
+ android:strokeColor="#00000000"/>
35
+ </vector>
@@ -0,0 +1,5 @@
1
+ <vector android:height="24dp" android:tint="#FFFFFF"
2
+ android:viewportHeight="24" android:viewportWidth="24"
3
+ android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
4
+ <path android:fillColor="@android:color/white" android:pathData="M7,14L5,14v5h5v-2L7,17v-3zM5,10h2L7,7h3L10,5L5,5v5zM17,17h-3v2h5v-5h-2v3zM14,5v2h3v3h2L19,5h-5z"/>
5
+ </vector>
@@ -0,0 +1,5 @@
1
+ <vector android:height="24dp" android:tint="#FFFFFF"
2
+ android:viewportHeight="24" android:viewportWidth="24"
3
+ android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
4
+ <path android:fillColor="@android:color/white" android:pathData="M5,16h3v3h2v-5L5,14v2zM8,8L5,8v2h5L10,5L8,5v3zM14,19h2v-3h3v-2h-5v5zM16,8L16,5h-2v5h5L19,8h-3z"/>
5
+ </vector>
@@ -0,0 +1,12 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <vector xmlns:android="http://schemas.android.com/apk/res/android"
3
+ android:width="170dp"
4
+ android:height="96dp"
5
+ android:viewportWidth="170"
6
+ android:viewportHeight="96"
7
+ android:layout_height="170dp"
8
+ android:layout_width="96dp">
9
+ <path
10
+ android:fillColor="#000000"
11
+ android:pathData="M0,0h170v96h-170z" />
12
+ </vector>
@@ -0,0 +1,10 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <vector xmlns:android="http://schemas.android.com/apk/res/android"
3
+ android:width="140dp"
4
+ android:height="79dp"
5
+ android:viewportWidth="140"
6
+ android:viewportHeight="79">
7
+ <path
8
+ android:fillColor="@android:color/black"
9
+ android:pathData="M0,0h140v79h-140z" />
10
+ </vector>
@@ -0,0 +1,10 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <vector xmlns:android="http://schemas.android.com/apk/res/android"
3
+ android:width="79dp"
4
+ android:height="140dp"
5
+ android:viewportWidth="79"
6
+ android:viewportHeight="140">
7
+ <path
8
+ android:fillColor="@android:color/white"
9
+ android:pathData="M0,0h79v140h-79z" />
10
+ </vector>
@@ -0,0 +1,5 @@
1
+ <vector android:height="24dp" android:tint="#FFFFFF"
2
+ android:viewportHeight="24" android:viewportWidth="24"
3
+ android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
4
+ <path android:fillColor="@android:color/white" android:pathData="M18,8h-1L17,6c0,-2.76 -2.24,-5 -5,-5S7,3.24 7,6v2L6,8c-1.1,0 -2,0.9 -2,2v10c0,1.1 0.9,2 2,2h12c1.1,0 2,-0.9 2,-2L20,10c0,-1.1 -0.9,-2 -2,-2zM9,6c0,-1.66 1.34,-3 3,-3s3,1.34 3,3v2L9,8L9,6zM18,20L6,20L6,10h12v10zM12,17c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2 -2,0.9 -2,2 0.9,2 2,2z"/>
5
+ </vector>
@@ -0,0 +1,5 @@
1
+ <vector android:height="24dp" android:tint="#FFFFFF"
2
+ android:viewportHeight="24" android:viewportWidth="24"
3
+ android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
4
+ <path android:fillColor="@android:color/white" android:pathData="M18,8h-1L17,6c0,-2.76 -2.24,-5 -5,-5S7,3.24 7,6h2c0,-1.66 1.34,-3 3,-3s3,1.34 3,3v2L6,8c-1.1,0 -2,0.9 -2,2v10c0,1.1 0.9,2 2,2h12c1.1,0 2,-0.9 2,-2L20,10c0,-1.1 -0.9,-2 -2,-2zM18,20L6,20L6,10h12v10zM12,17c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2 -2,0.9 -2,2 0.9,2 2,2z"/>
5
+ </vector>
@@ -0,0 +1,5 @@
1
+ <vector android:height="24dp" android:tint="#FFFFFF"
2
+ android:viewportHeight="24" android:viewportWidth="24"
3
+ android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
4
+ <path android:fillColor="@android:color/white" android:pathData="M18,11h-6c-0.55,0 -1,0.45 -1,1v4c0,0.55 0.45,1 1,1h6c0.55,0 1,-0.45 1,-1v-4c0,-0.55 -0.45,-1 -1,-1zM23,19L23,4.98C23,3.88 22.1,3 21,3L3,3c-1.1,0 -2,0.88 -2,1.98L1,19c0,1.1 0.9,2 2,2h18c1.1,0 2,-0.9 2,-2zM20,19.02L4,19.02c-0.55,0 -1,-0.45 -1,-1L3,5.97c0,-0.55 0.45,-1 1,-1h16c0.55,0 1,0.45 1,1v12.05c0,0.55 -0.45,1 -1,1z"/>
5
+ </vector>
@@ -0,0 +1,18 @@
1
+ <vector xmlns:android="http://schemas.android.com/apk/res/android"
2
+ android:width="12dp"
3
+ android:height="8dp"
4
+ android:viewportWidth="12"
5
+ android:viewportHeight="8">
6
+ <path
7
+ android:pathData="M5.9945,0.0069C3.3502,0.0069 1.0711,1.5964 0.0241,3.8902C-0.008,3.9597 -0.008,4.041 0.0241,4.1118C1.0711,6.4056 3.3502,7.9951 5.9945,7.9951C8.6389,7.9951 10.918,6.4056 11.965,4.1118C11.9971,4.0423 11.9971,3.961 11.965,3.8902C10.918,1.5964 8.6389,0.0069 5.9945,0.0069ZM5.9945,6.7571C4.5013,6.7571 3.2923,5.523 3.2923,4.0016C3.2923,2.479 4.5026,1.2462 5.9945,1.2462C7.4878,1.2462 8.6968,2.4803 8.6968,4.0016C8.6968,5.523 7.4865,6.7571 5.9945,6.7571Z"
8
+ android:strokeWidth="1"
9
+ android:fillColor="#FFFFFF"
10
+ android:fillType="nonZero"
11
+ android:strokeColor="#00000000"/>
12
+ <path
13
+ android:pathData="M4.2646,4.0003a1.7299,1.7639 0,1 0,3.4598 0a1.7299,1.7639 0,1 0,-3.4598 0z"
14
+ android:strokeWidth="1"
15
+ android:fillColor="#FFFFFF"
16
+ android:fillType="nonZero"
17
+ android:strokeColor="#00000000"/>
18
+ </vector>
@@ -0,0 +1,5 @@
1
+ <vector android:height="24dp" android:tint="#FFFFFF"
2
+ android:viewportHeight="24" android:viewportWidth="24"
3
+ android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
4
+ <path android:fillColor="@android:color/white" android:pathData="M15,3l2.3,2.3l-2.89,2.87l1.42,1.42L18.7,6.7L21,9V3H15zM3,9l2.3,-2.3l2.87,2.89l1.42,-1.42L6.7,5.3L9,3H3V9zM9,21l-2.3,-2.3l2.89,-2.87l-1.42,-1.42L5.3,17.3L3,15v6H9zM21,15l-2.3,2.3l-2.87,-2.89l-1.42,1.42l2.89,2.87L15,21h6V15z"/>
5
+ </vector>
@@ -0,0 +1,15 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
3
+ xmlns:app="http://schemas.android.com/apk/res-auto"
4
+ xmlns:tools="http://schemas.android.com/tools"
5
+ android:layout_width="match_parent"
6
+ android:layout_height="match_parent"
7
+ android:keepScreenOn="true"
8
+ tools:context="com.getcapacitor.BridgeActivity"
9
+ >
10
+
11
+ <WebView
12
+ android:id="@+id/webview"
13
+ android:layout_width="fill_parent"
14
+ android:layout_height="fill_parent" />
15
+ </androidx.coordinatorlayout.widget.CoordinatorLayout>
@@ -0,0 +1,289 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Copyright 2020 The Android Open Source Project
3
+ Licensed under the Apache License, Version 2.0 (the "License");
4
+ you may not use this file except in compliance with the License.
5
+ You may obtain a copy of the License at
6
+ http://www.apache.org/licenses/LICENSE-2.0
7
+ Unless required by applicable law or agreed to in writing, software
8
+ distributed under the License is distributed on an "AS IS" BASIS,
9
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
10
+ See the License for the specific language governing permissions and
11
+ limitations under the License.
12
+ -->
13
+ <androidx.constraintlayout.widget.ConstraintLayout
14
+ xmlns:android="http://schemas.android.com/apk/res/android"
15
+ xmlns:app="http://schemas.android.com/apk/res-auto"
16
+ xmlns:tools="http://schemas.android.com/tools"
17
+ android:layout_width="match_parent"
18
+ android:layout_height="match_parent"
19
+ android:background="@color/exo_black_opacity_60"
20
+ android:fitsSystemWindows="true">
21
+
22
+ <!-- 0dp dimensions are used to prevent this view from influencing the size of
23
+ the parent view if it uses "wrap_content". It is expanded to occupy the
24
+ entirety of the parent in code, after the parent's size has been
25
+ determined. See: https://github.com/google/ExoPlayer/issues/8726.
26
+ -->
27
+ <View
28
+ android:id="@id/exo_controls_background"
29
+ android:layout_width="match_parent"
30
+ android:layout_height="match_parent" />
31
+
32
+ <ImageView
33
+ android:id="@+id/cast_image"
34
+ android:layout_width="match_parent"
35
+ android:layout_height="match_parent"
36
+ android:adjustViewBounds="true"
37
+ android:foreground="@color/exo_black_opacity_60"
38
+ android:scaleType="centerCrop"
39
+ android:visibility="gone"
40
+ app:layout_constraintBottom_toBottomOf="parent"
41
+ app:layout_constraintEnd_toEndOf="parent"
42
+ app:layout_constraintStart_toStartOf="parent"
43
+ app:layout_constraintTop_toTopOf="parent" />
44
+
45
+ <FrameLayout
46
+ android:layout_height="wrap_content"
47
+ android:layout_marginTop="@dimen/exo_styled_bottom_bar_margin_top"
48
+ android:layout_gravity="top"
49
+ android:layoutDirection="ltr"
50
+ android:layout_width="match_parent"
51
+ app:layout_constraintTop_toTopOf="parent">
52
+
53
+ <LinearLayout
54
+ android:layout_width="match_parent"
55
+ android:layout_height="wrap_content"
56
+ android:orientation="horizontal">
57
+
58
+ <LinearLayout
59
+ android:layout_width="0dp"
60
+ android:layout_weight="1"
61
+ android:layout_height="wrap_content"
62
+ android:orientation="horizontal">
63
+
64
+ <ImageButton
65
+ android:id="@+id/exo_close"
66
+ android:layout_width="48dp"
67
+ android:layout_height="48dp"
68
+ android:background="?actionBarItemBackground"
69
+ android:ellipsize="end"
70
+ android:scaleX="1.3"
71
+ android:scaleY="1.3"
72
+ android:src="@drawable/ic_arrow_left"
73
+ android:contentDescription="Back button"/>
74
+
75
+ <LinearLayout
76
+ android:layout_width="wrap_content"
77
+ android:layout_height="wrap_content"
78
+ android:orientation="vertical">
79
+
80
+ <TextView
81
+ android:id="@+id/header_tv"
82
+ android:layout_width="wrap_content"
83
+ android:layout_height="wrap_content"
84
+ android:ellipsize="end"
85
+ android:maxLines="2"
86
+ android:textColor="@color/white"
87
+ android:textSize="18sp"/>
88
+
89
+ <TextView
90
+ android:id="@+id/header_below"
91
+ android:layout_width="wrap_content"
92
+ android:layout_height="wrap_content"
93
+ android:ellipsize="end"
94
+ android:maxLines="2"
95
+ android:textColor="@color/white"
96
+ android:textSize="12sp"
97
+ app:layout_constraintStart_toStartOf="parent"
98
+ app:layout_constraintTop_toBottomOf="@id/header_tv"
99
+ app:layout_constraintWidth_percent="0.9"/>
100
+
101
+ </LinearLayout>
102
+
103
+ </LinearLayout>
104
+
105
+ <LinearLayout
106
+ android:id="@+id/right_buttons"
107
+ android:layout_width="wrap_content"
108
+ android:layout_height="wrap_content">
109
+
110
+ <androidx.mediarouter.app.MediaRouteButton
111
+ android:id="@+id/media_route_button"
112
+ android:layout_width="48dp"
113
+ android:layout_height="48dp"
114
+ android:mediaRouteTypes="user"
115
+ android:background="?actionBarItemBackground"
116
+ android:visibility="gone"/>
117
+
118
+ <ImageButton
119
+ android:id="@+id/exo_pip"
120
+ android:layout_width="48dp"
121
+ android:layout_height="48dp"
122
+ android:background="?actionBarItemBackground"
123
+ android:src="@drawable/ic_pip_white"
124
+ android:visibility="gone"
125
+ android:contentDescription="Picture in picture button"/>
126
+
127
+ <ImageButton
128
+ android:id="@+id/exo_resize"
129
+ android:layout_width="48dp"
130
+ android:layout_height="48dp"
131
+ android:background="?actionBarItemBackground"
132
+ android:src="@drawable/ic_expand"
133
+ android:visibility="gone"
134
+ android:contentDescription="visible"/>
135
+
136
+ </LinearLayout>
137
+
138
+ </LinearLayout>
139
+
140
+ </FrameLayout>
141
+
142
+ <FrameLayout android:id="@id/exo_bottom_bar"
143
+ android:layout_width="match_parent"
144
+ android:layout_height="@dimen/exo_styled_bottom_bar_height"
145
+ android:layout_marginTop="@dimen/exo_styled_bottom_bar_margin_top"
146
+ android:layout_gravity="bottom"
147
+ android:layoutDirection="ltr"
148
+ app:layout_constraintBottom_toBottomOf="parent">
149
+
150
+ <LinearLayout android:id="@id/exo_time"
151
+ android:layout_width="wrap_content"
152
+ android:layout_height="wrap_content"
153
+ android:paddingStart="@dimen/exo_styled_bottom_bar_time_padding"
154
+ android:paddingEnd="@dimen/exo_styled_bottom_bar_time_padding"
155
+ android:paddingLeft="@dimen/exo_styled_bottom_bar_time_padding"
156
+ android:paddingRight="@dimen/exo_styled_bottom_bar_time_padding"
157
+ android:layout_gravity="center_vertical|start"
158
+ android:layoutDirection="ltr">
159
+
160
+ <TextView android:id="@+id/exo_position"
161
+ style="@style/ExoStyledControls.TimeText.Position"/>
162
+
163
+ <TextView
164
+ android:id="@+id/exo_label_separation"
165
+ style="@style/ExoStyledControls.TimeText.Separator"/>
166
+
167
+ <TextView
168
+ android:id="@+id/live_text"
169
+ android:layout_width="wrap_content"
170
+ android:layout_height="wrap_content"
171
+ android:text="LIVE"
172
+ android:textColor="@color/white"
173
+ android:textSize="12sp"
174
+ android:visibility="gone"/>
175
+
176
+ <TextView android:id="@+id/exo_duration"
177
+ style="@style/ExoStyledControls.TimeText.Duration"/>
178
+
179
+ </LinearLayout>
180
+
181
+ <LinearLayout android:id="@id/exo_basic_controls"
182
+ android:layout_width="wrap_content"
183
+ android:layout_height="wrap_content"
184
+ android:layout_gravity="center_vertical|end"
185
+ android:layoutDirection="ltr">
186
+
187
+ <ImageButton android:id="@id/exo_vr"
188
+ style="@style/ExoStyledControls.Button.Bottom.VR"/>
189
+
190
+ <ImageButton android:id="@id/exo_shuffle"
191
+ style="@style/ExoStyledControls.Button.Bottom.Shuffle"/>
192
+
193
+ <ImageButton android:id="@id/exo_repeat_toggle"
194
+ style="@style/ExoStyledControls.Button.Bottom.RepeatToggle"/>
195
+
196
+ <ImageButton android:id="@id/exo_subtitle"
197
+ style="@style/ExoStyledControls.Button.Bottom.CC"/>
198
+
199
+ <ImageButton android:id="@id/exo_settings"
200
+ style="@style/ExoStyledControls.Button.Bottom.Settings"/>
201
+
202
+ <ImageButton android:id="@id/exo_fullscreen"
203
+ style="@style/ExoStyledControls.Button.Bottom.FullScreen"/>
204
+
205
+ <ImageButton android:id="@id/exo_overflow_show"
206
+ style="@style/ExoStyledControls.Button.Bottom.OverflowShow"/>
207
+
208
+ </LinearLayout>
209
+
210
+ <HorizontalScrollView
211
+ android:id="@id/exo_extra_controls_scroll_view"
212
+ android:layout_width="wrap_content"
213
+ android:layout_height="wrap_content"
214
+ android:layout_gravity="center_vertical|end"
215
+ android:visibility="invisible">
216
+
217
+ <LinearLayout
218
+ android:id="@id/exo_extra_controls"
219
+ android:layout_width="wrap_content"
220
+ android:layout_height="wrap_content"
221
+ android:layoutDirection="ltr">
222
+
223
+ <ImageButton
224
+ android:id="@id/exo_overflow_hide"
225
+ style="@style/ExoStyledControls.Button.Bottom.OverflowHide" />
226
+
227
+ </LinearLayout>
228
+
229
+ </HorizontalScrollView>
230
+
231
+ </FrameLayout>
232
+
233
+ <View android:id="@id/exo_progress_placeholder"
234
+ android:layout_width="match_parent"
235
+ android:layout_height="@dimen/exo_styled_progress_layout_height"
236
+ android:layout_gravity="bottom"
237
+ android:layout_marginBottom="@dimen/exo_styled_progress_margin_bottom"
238
+ app:layout_constraintBottom_toBottomOf="parent"/>
239
+
240
+ <LinearLayout android:id="@id/exo_minimal_controls"
241
+ android:layout_width="wrap_content"
242
+ android:layout_height="wrap_content"
243
+ android:layout_gravity="bottom|end"
244
+ android:layout_marginBottom="@dimen/exo_styled_minimal_controls_margin_bottom"
245
+ android:orientation="horizontal"
246
+ android:gravity="center_vertical"
247
+ android:layoutDirection="ltr"
248
+ app:layout_constraintTop_toTopOf="parent"
249
+ app:layout_constraintRight_toRightOf="parent"
250
+ >
251
+
252
+ <ImageButton android:id="@id/exo_minimal_fullscreen"
253
+ style="@style/ExoStyledControls.Button.Bottom.FullScreen"/>
254
+
255
+ </LinearLayout>
256
+
257
+ <LinearLayout
258
+ android:id="@id/exo_center_controls"
259
+ android:layout_width="wrap_content"
260
+ android:layout_height="wrap_content"
261
+ android:layout_gravity="center"
262
+ android:background="@android:color/transparent"
263
+ android:gravity="center"
264
+ android:padding="@dimen/exo_styled_controls_padding"
265
+ android:clipToPadding="false"
266
+ app:layout_constraintTop_toTopOf="parent"
267
+ app:layout_constraintRight_toRightOf="parent"
268
+ app:layout_constraintLeft_toLeftOf="parent"
269
+ app:layout_constraintBottom_toBottomOf="parent">
270
+
271
+ <ImageButton android:id="@id/exo_prev"
272
+ style="@style/ExoStyledControls.Button.Center.Previous"/>
273
+
274
+ <ImageButton android:id="@id/exo_rew"
275
+ style="@style/ExoStyledControls.Button.Center.Previous"/>
276
+
277
+ <ImageButton android:id="@id/exo_play_pause"
278
+ style="@style/ExoStyledControls.Button.Center.PlayPause"/>
279
+
280
+ <ImageButton android:id="@id/exo_ffwd"
281
+ style="@style/ExoStyledControls.Button.Center.Next"/>
282
+
283
+ <ImageButton android:id="@id/exo_next"
284
+ style="@style/ExoStyledControls.Button.Center.Next"
285
+ tools:ignore="ContentDescription" />
286
+
287
+ </LinearLayout>
288
+
289
+ </androidx.constraintlayout.widget.ConstraintLayout>