Start of new icons integration + reorganization

This commit is contained in:
Nicolas Pomepuy
2019-06-11 10:22:35 +02:00
committed by Geoffrey Métais
parent aa7783f194
commit 79c3cdd95b
92 changed files with 892 additions and 267 deletions

View File

@@ -0,0 +1,47 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?><!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="24" height="24" id="svg4682"
version="1.1" inkscape:version="0.92.3 (unknown)" sodipodi:docname="ic_forward_normal_w.svg"
inkscape:export-filename="/home/corbax/Dev/android/Icons/Test 1/ic_play_normal.png"
inkscape:export-xdpi="90" inkscape:export-ydpi="90">
<defs id="defs4684" />
<sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0"
inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="16"
inkscape:cx="14.572753" inkscape:cy="6.7569491" inkscape:document-units="px"
inkscape:current-layer="layer1" showgrid="true" inkscape:window-width="960"
inkscape:window-height="1028" inkscape:window-x="1920" inkscape:window-y="15"
inkscape:window-maximized="0" inkscape:snap-bbox="true" inkscape:bbox-paths="true"
inkscape:bbox-nodes="true" inkscape:snap-bbox-edge-midpoints="true"
inkscape:snap-bbox-midpoints="true" inkscape:object-paths="true"
inkscape:snap-intersection-paths="true" inkscape:snap-smooth-nodes="true"
inkscape:snap-midpoints="true" inkscape:snap-object-midpoints="true"
inkscape:snap-center="true">
<inkscape:grid type="xygrid" id="grid3002" />
</sodipodi:namedview>
<metadata id="metadata4687">
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1"
transform="translate(0,-1028.3622)">
<g id="g836" transform="translate(6,-15)"
style="fill:#fafafa;fill-opacity:1;stroke:#fafafa;stroke-opacity:1">
<path sodipodi:nodetypes="cccc" inkscape:connector-curvature="0" id="path7943"
d="m -2,1060.3622 v -10 l 7,5 z"
style="fill:#fafafa;fill-opacity:1;fill-rule:evenodd;stroke:#fafafa;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
style="fill:#fafafa;fill-opacity:1;fill-rule:evenodd;stroke:#fafafa;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 8,1060.3622 v -10 l 7,5 z" id="path7945" inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?><!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="24" height="24" id="svg4682"
version="1.1" inkscape:version="0.92.4 (33fec40, 2019-01-16)"
sodipodi:docname="ic_half_seek_forward.svg"
inkscape:export-filename="/home/corbax/Dev/android/Icons/Test 1/ic_play_normal.png"
inkscape:export-xdpi="90" inkscape:export-ydpi="90">
<defs id="defs4684" />
<sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0"
inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="22.4"
inkscape:cx="3.08849" inkscape:cy="15.548271" inkscape:document-units="px"
inkscape:current-layer="layer1" showgrid="true" inkscape:window-width="1920"
inkscape:window-height="1080" inkscape:window-x="1920" inkscape:window-y="0"
inkscape:window-maximized="1">
<inkscape:grid type="xygrid" id="grid3002" />
</sodipodi:namedview>
<metadata id="metadata4687">
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1"
transform="translate(0,-1028.3622)">
<path
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
inkscape:transform-center-x="-1.7681375" d="m 17.5,1040.3622 -11,7 0,-14 z"
id="path5043" inkscape:connector-curvature="0" sodipodi:nodetypes="cccc" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?><!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="24" height="24" id="svg4682"
version="1.1" inkscape:version="0.92.4 (33fec40, 2019-01-16)"
sodipodi:docname="ic_half_seek_rewind.svg"
inkscape:export-filename="/home/corbax/Dev/android/Icons/Test 1/ic_play_normal.png"
inkscape:export-xdpi="90" inkscape:export-ydpi="90">
<defs id="defs4684" />
<sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0"
inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="22.4"
inkscape:cx="3.08849" inkscape:cy="15.548271" inkscape:document-units="px"
inkscape:current-layer="layer1" showgrid="true" inkscape:window-width="1920"
inkscape:window-height="1080" inkscape:window-x="1920" inkscape:window-y="0"
inkscape:window-maximized="1">
<inkscape:grid type="xygrid" id="grid3002" />
</sodipodi:namedview>
<metadata id="metadata4687">
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1"
transform="translate(0,-1028.3622)">
<path
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;marker:none;enable-background:accumulate"
inkscape:transform-center-x="1.7681375" d="m 6.5,1040.3622 11,7 v -14 z" id="path5043"
inkscape:connector-curvature="0" sodipodi:nodetypes="cccc" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@@ -0,0 +1,47 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?><!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="24" height="24" id="svg4682"
version="1.1" inkscape:version="0.92.3 (unknown)" sodipodi:docname="ic_backward_normal_w.svg"
inkscape:export-filename="/home/corbax/Dev/android/Icons/Test 1/ic_play_normal.png"
inkscape:export-xdpi="90" inkscape:export-ydpi="90">
<defs id="defs4684" />
<sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0"
inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="16"
inkscape:cx="14.572753" inkscape:cy="6.7569491" inkscape:document-units="px"
inkscape:current-layer="layer1" showgrid="true" inkscape:window-width="960"
inkscape:window-height="1028" inkscape:window-x="1920" inkscape:window-y="15"
inkscape:window-maximized="0" inkscape:snap-bbox="true" inkscape:bbox-paths="true"
inkscape:bbox-nodes="true" inkscape:snap-bbox-edge-midpoints="true"
inkscape:snap-bbox-midpoints="true" inkscape:object-paths="true"
inkscape:snap-intersection-paths="true" inkscape:snap-smooth-nodes="true"
inkscape:snap-midpoints="true" inkscape:snap-object-midpoints="true"
inkscape:snap-center="true">
<inkscape:grid type="xygrid" id="grid3002" />
</sodipodi:namedview>
<metadata id="metadata4687">
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1"
transform="translate(0,-1028.3622)">
<g id="g836" transform="rotate(-180,9.5,1047.8622)"
style="fill:#fafafa;fill-opacity:1;stroke:#fafafa;stroke-opacity:1">
<path sodipodi:nodetypes="cccc" inkscape:connector-curvature="0" id="path7943"
d="m -2,1060.3622 v -10 l 7,5 z"
style="fill:#fafafa;fill-opacity:1;fill-rule:evenodd;stroke:#fafafa;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
style="fill:#fafafa;fill-opacity:1;fill-rule:evenodd;stroke:#fafafa;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 8,1060.3622 v -10 l 7,5 z" id="path7945" inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

@@ -0,0 +1,16 @@
Index: vlc-android/src/org/videolan/vlc/gui/video/VideoPlayerActivity.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- vlc-android/src/org/videolan/vlc/gui/video/VideoPlayerActivity.java (revision 65a7c33ead0d8fbdaea01701dfaed7546fffef23)
+++ vlc-android/src/org/videolan/vlc/gui/video/VideoPlayerActivity.java (date 1556541549000)
@@ -2357,7 +2357,7 @@
else mActionBar.show();
int visibility = View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN;
- int navbar = 0;
+ int navbar = View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION;
if (dim || mIsLocked) {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
navbar |= View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION |View.SYSTEM_UI_FLAG_LOW_PROFILE|View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 995 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1001 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 850 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1005 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 918 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1009 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1015 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 565 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 547 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 554 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 475 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 700 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 522 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 558 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 538 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 551 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1015 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 995 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1001 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 558 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 551 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 565 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 547 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 554 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 799 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 769 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 800 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 775 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 772 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -0,0 +1,26 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="40dp"
android:height="40dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="m21,7l-0,10l-7,-5z"
android:strokeAlpha="1"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#fafafa"
android:strokeColor="#fafafa"
android:fillAlpha="1"
android:fillType="evenOdd"
android:strokeLineCap="butt" />
<path
android:pathData="m11,7l-0,10l-7,-5z"
android:strokeAlpha="1"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#fafafa"
android:strokeColor="#fafafa"
android:fillAlpha="1"
android:fillType="evenOdd"
android:strokeLineCap="butt" />
</vector>

View File

@@ -0,0 +1,26 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="40dp"
android:height="40dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="m21,7l-0,10l-7,-5z"
android:strokeAlpha="1"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#707070"
android:strokeColor="#707070"
android:fillAlpha="1"
android:fillType="evenOdd"
android:strokeLineCap="butt" />
<path
android:pathData="m11,7l-0,10l-7,-5z"
android:strokeAlpha="1"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#707070"
android:strokeColor="#707070"
android:fillAlpha="1"
android:fillType="evenOdd"
android:strokeLineCap="butt" />
</vector>

View File

@@ -0,0 +1,16 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="40dp"
android:height="40dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillAlpha="1"
android:fillColor="#fafafa"
android:fillType="evenOdd"
android:pathData="m7,17.9999c0.554,0 1,-0.446 1,-0.9999v-9.999c0,-0.554 -0.446,-0.9999 -1,-0.9999 -0.554,0 -1,0.4459 -1,0.9999v9.999c0,0.5539 0.446,0.9999 1,0.9999zM17.9805,17.9999c0.5591,0.011 1.0184,-0.4388 1.0195,-0.9979v-9.999c0.0009,-0.8142 -0.9198,-1.2882 -1.582,-0.8144l-7,4.9995c-0.5579,0.3988 -0.5579,1.228 0,1.6268l7,4.9995c0.1644,0.1172 0.3605,0.1819 0.5625,0.1855z"
android:strokeWidth="1.99990106"
android:strokeAlpha="1"
android:strokeColor="#00000000"
android:strokeLineCap="butt"
android:strokeLineJoin="round" />
</vector>

View File

@@ -0,0 +1,26 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="40dp"
android:height="40dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="m4,17v-10l7,5z"
android:strokeAlpha="1"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#fafafa"
android:strokeColor="#fafafa"
android:fillAlpha="1"
android:fillType="evenOdd"
android:strokeLineCap="butt" />
<path
android:pathData="m14,17v-10l7,5z"
android:strokeAlpha="1"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#fafafa"
android:strokeColor="#fafafa"
android:fillAlpha="1"
android:fillType="evenOdd"
android:strokeLineCap="butt" />
</vector>

View File

@@ -0,0 +1,26 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="40dp"
android:height="40dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="m4,17v-10l7,5z"
android:strokeAlpha="1"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#707070"
android:strokeColor="#707070"
android:fillAlpha="1"
android:fillType="evenOdd"
android:strokeLineCap="butt" />
<path
android:pathData="m14,17v-10l7,5z"
android:strokeAlpha="1"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#707070"
android:strokeColor="#707070"
android:fillAlpha="1"
android:fillType="evenOdd"
android:strokeLineCap="butt" />
</vector>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 800 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 775 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 772 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 588 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 921 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 703 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 799 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 769 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 769 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_forward_circle_normal_o" android:state_focused="true" android:state_pressed="true"/>
<item android:drawable="@drawable/ic_forward_circle_pressed_o" android:state_focused="true"/>
<item android:drawable="@drawable/ic_forward_circle_pressed_o" android:state_pressed="true"/>
<item android:drawable="@drawable/ic_forward_circle_normal_o"/>
</selector>

View File

@@ -0,0 +1,26 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="40dp"
android:height="40dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="m4,17v-10l7,5z"
android:strokeAlpha="1"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#fafafa"
android:strokeColor="#fafafa"
android:fillAlpha="1"
android:fillType="evenOdd"
android:strokeLineCap="butt" />
<path
android:pathData="m14,17v-10l7,5z"
android:strokeAlpha="1"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#fafafa"
android:strokeColor="#fafafa"
android:fillAlpha="1"
android:fillType="evenOdd"
android:strokeLineCap="butt" />
</vector>

View File

@@ -0,0 +1,26 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="40dp"
android:height="40dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="m4,17v-10l7,5z"
android:strokeAlpha="1"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#707070"
android:strokeColor="#707070"
android:fillAlpha="1"
android:fillType="evenOdd"
android:strokeLineCap="butt" />
<path
android:pathData="m14,17v-10l7,5z"
android:strokeAlpha="1"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#707070"
android:strokeColor="#707070"
android:fillAlpha="1"
android:fillType="evenOdd"
android:strokeLineCap="butt" />
</vector>

View File

@@ -0,0 +1,16 @@
<vector android:height="40dp"
android:viewportHeight="24"
android:viewportWidth="24"
android:width="40dp"
xmlns:android="http://schemas.android.com/apk/res/android">
<path
android:fillAlpha="1"
android:fillColor="#fafafa"
android:fillType="evenOdd"
android:pathData="m17,6.0021c-0.554,0 -1,0.446 -1,1v10c0,0.554 0.446,1 1,1 0.554,0 1,-0.446 1,-1v-10c0,-0.554 -0.446,-1 -1,-1zM6.0195,6.0021c-0.5591,-0.011 -1.0184,0.4388 -1.0195,0.998v10c-0.0009,0.8143 0.9198,1.2883 1.582,0.8145l7,-5c0.5579,-0.3989 0.5579,-1.2281 0,-1.627l-7,-5c-0.1644,-0.1172 -0.3605,-0.1819 -0.5625,-0.1855z"
android:strokeAlpha="1"
android:strokeColor="#00000000"
android:strokeLineCap="butt"
android:strokeLineJoin="round"
android:strokeWidth="2" />
</vector>

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_pause_circle_normal_o" android:state_focused="true" android:state_pressed="true"/>
<item android:drawable="@drawable/ic_pause_player" android:state_focused="true" android:state_pressed="true" />
<item android:drawable="@drawable/ic_pause_circle_pressed_o" android:state_focused="true"/>
<item android:drawable="@drawable/ic_pause_circle_pressed_o" android:state_pressed="true"/>
<item android:drawable="@drawable/ic_pause_circle_normal_o"/>
<item android:drawable="@drawable/ic_pause_player" />
</selector>

View File

@@ -0,0 +1,20 @@
<vector android:height="52dp"
android:viewportHeight="24"
android:viewportWidth="24"
android:width="52dp"
xmlns:android="http://schemas.android.com/apk/res/android">
<path
android:fillAlpha="1"
android:fillColor="#fafafa"
android:fillType="nonZero"
android:pathData="M8,4L8,4A2,2 0,0 1,10 6L10,18A2,2 0,0 1,8 20L8,20A2,2 0,0 1,6 18L6,6A2,2 0,0 1,8 4z"
android:strokeColor="#00000000"
android:strokeWidth="1.06904495" />
<path
android:fillAlpha="1"
android:fillColor="#fafafa"
android:fillType="nonZero"
android:pathData="M16,4L16,4A2,2 0,0 1,18 6L18,18A2,2 0,0 1,16 20L16,20A2,2 0,0 1,14 18L14,6A2,2 0,0 1,16 4z"
android:strokeColor="#00000000"
android:strokeWidth="2" />
</vector>

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_play_circle_normal_o" android:state_focused="true" android:state_pressed="true"/>
<item android:drawable="@drawable/ic_play_player" android:state_focused="true" android:state_pressed="true" />
<item android:drawable="@drawable/ic_play_circle_pressed_o" android:state_focused="true"/>
<item android:drawable="@drawable/ic_play_circle_pressed_o" android:state_pressed="true"/>
<item android:drawable="@drawable/ic_play_circle_normal_o"/>
<item android:drawable="@drawable/ic_play_player" />
</selector>

View File

@@ -0,0 +1,16 @@
<vector android:height="52dp"
android:viewportHeight="24"
android:viewportWidth="24"
android:width="52dp"
xmlns:android="http://schemas.android.com/apk/res/android">
<path
android:fillAlpha="1"
android:fillColor="#fafafa"
android:fillType="evenOdd"
android:pathData="m7,5 l12,7 -12,7z"
android:strokeAlpha="1"
android:strokeColor="#fafafa"
android:strokeLineCap="butt"
android:strokeLineJoin="round"
android:strokeWidth="2" />
</vector>

View File

@@ -0,0 +1,16 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="52dp"
android:height="52dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillAlpha="1"
android:fillColor="#80bdbdbd"
android:fillType="evenOdd"
android:pathData="m7,5 l12,7 -12,7z"
android:strokeWidth="2"
android:strokeAlpha="1"
android:strokeColor="#80bdbdbd"
android:strokeLineCap="butt"
android:strokeLineJoin="round" />
</vector>

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_playlist_next_circle_normal_o" android:state_focused="true" android:state_pressed="true"/>
<item android:drawable="@drawable/ic_next_player" android:state_focused="true" android:state_pressed="true" />
<item android:drawable="@drawable/ic_playlist_next_circle_pressed_o" android:state_focused="true"/>
<item android:drawable="@drawable/ic_playlist_next_circle_pressed_o" android:state_pressed="true"/>
<item android:drawable="@drawable/ic_playlist_next_circle_normal_o"/>
<item android:drawable="@drawable/ic_next_player" />
</selector>

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_playlist_previous_circle_normal_o" android:state_focused="true" android:state_pressed="true"/>
<item android:drawable="@drawable/ic_previous_player" android:state_focused="true" android:state_pressed="true" />
<item android:drawable="@drawable/ic_playlist_previous_circle_pressed_o" android:state_focused="true"/>
<item android:drawable="@drawable/ic_playlist_previous_circle_pressed_o" android:state_pressed="true"/>
<item android:drawable="@drawable/ic_playlist_previous_circle_normal_o"/>
<item android:drawable="@drawable/ic_previous_player" />
</selector>

View File

@@ -0,0 +1,16 @@
<vector android:height="40dp"
android:viewportHeight="24"
android:viewportWidth="24"
android:width="40dp"
xmlns:android="http://schemas.android.com/apk/res/android">
<path
android:fillAlpha="1"
android:fillColor="#fafafa"
android:fillType="evenOdd"
android:pathData="m7,17.9999c0.554,0 1,-0.446 1,-0.9999v-9.999c0,-0.554 -0.446,-0.9999 -1,-0.9999 -0.554,0 -1,0.4459 -1,0.9999v9.999c0,0.5539 0.446,0.9999 1,0.9999zM17.9805,17.9999c0.5591,0.011 1.0184,-0.4388 1.0195,-0.9979v-9.999c0.0009,-0.8142 -0.9198,-1.2882 -1.582,-0.8144l-7,4.9995c-0.5579,0.3988 -0.5579,1.228 0,1.6268l7,4.9995c0.1644,0.1172 0.3605,0.1819 0.5625,0.1855z"
android:strokeAlpha="1"
android:strokeColor="#00000000"
android:strokeLineCap="butt"
android:strokeLineJoin="round"
android:strokeWidth="1.99990106" />
</vector>

View File

@@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_rewind_circle_normal_o" android:state_focused="true" android:state_pressed="true"/>
<item android:drawable="@drawable/ic_rewind_circle_pressed_o" android:state_focused="true"/>
<item android:drawable="@drawable/ic_rewind_circle_pressed_o" android:state_pressed="true"/>
<item android:drawable="@drawable/ic_rewind_circle_normal_o"/>
</selector>

View File

@@ -0,0 +1,26 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="40dp"
android:height="40dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="m21,7l-0,10l-7,-5z"
android:strokeAlpha="1"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#fafafa"
android:strokeColor="#fafafa"
android:fillAlpha="1"
android:fillType="evenOdd"
android:strokeLineCap="butt" />
<path
android:pathData="m11,7l-0,10l-7,-5z"
android:strokeAlpha="1"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#fafafa"
android:strokeColor="#fafafa"
android:fillAlpha="1"
android:fillType="evenOdd"
android:strokeLineCap="butt" />
</vector>

View File

@@ -0,0 +1,26 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="40dp"
android:height="40dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="m21,7l-0,10l-7,-5z"
android:strokeAlpha="1"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#707070"
android:strokeColor="#707070"
android:fillAlpha="1"
android:fillType="evenOdd"
android:strokeLineCap="butt" />
<path
android:pathData="m11,7l-0,10l-7,-5z"
android:strokeAlpha="1"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#707070"
android:strokeColor="#707070"
android:fillAlpha="1"
android:fillType="evenOdd"
android:strokeLineCap="butt" />
</vector>

View File

@@ -1,7 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_rotate_normal_o" android:state_focused="true" android:state_pressed="true"/>
<item android:drawable="@drawable/ic_rotate_pressed_o" android:state_focused="true"/>
<item android:drawable="@drawable/ic_rotate_pressed_o" android:state_pressed="true"/>
<item android:drawable="@drawable/ic_rotate_normal_o"/>
</selector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="#FFFFFF"
android:pathData="M16.48,2.52c3.27,1.55 5.61,4.72 5.97,8.48h1.5C23.44,4.84 18.29,0 12,0l-0.66,0.03 3.81,3.81 1.33,-1.32zM10.23,1.75c-0.59,-0.59 -1.54,-0.59 -2.12,0L1.75,8.11c-0.59,0.59 -0.59,1.54 0,2.12l12.02,12.02c0.59,0.59 1.54,0.59 2.12,0l6.36,-6.36c0.59,-0.59 0.59,-1.54 0,-2.12L10.23,1.75zM14.83,21.19L2.81,9.17l6.36,-6.36 12.02,12.02 -6.36,6.36zM7.52,21.48C4.25,19.94 1.91,16.76 1.55,13L0.05,13C0.56,19.16 5.71,24 12,24l0.66,-0.03 -3.81,-3.81 -1.33,1.32z" />
</vector>

View File

@@ -1,5 +0,0 @@
<vector android:height="24dp" android:tint="#F6911D"
android:viewportHeight="24.0" android:viewportWidth="24.0"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FF000000" android:pathData="M16.48,2.52c3.27,1.55 5.61,4.72 5.97,8.48h1.5C23.44,4.84 18.29,0 12,0l-0.66,0.03 3.81,3.81 1.33,-1.32zM10.23,1.75c-0.59,-0.59 -1.54,-0.59 -2.12,0L1.75,8.11c-0.59,0.59 -0.59,1.54 0,2.12l12.02,12.02c0.59,0.59 1.54,0.59 2.12,0l6.36,-6.36c0.59,-0.59 0.59,-1.54 0,-2.12L10.23,1.75zM14.83,21.19L2.81,9.17l6.36,-6.36 12.02,12.02 -6.36,6.36zM7.52,21.48C4.25,19.94 1.91,16.76 1.55,13L0.05,13C0.56,19.16 5.71,24 12,24l0.66,-0.03 -3.81,-3.81 -1.33,1.32z"/>
</vector>

View File

@@ -1,5 +0,0 @@
<vector android:height="24dp" android:tint="#FECB65"
android:viewportHeight="24.0" android:viewportWidth="24.0"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FF000000" android:pathData="M16.48,2.52c3.27,1.55 5.61,4.72 5.97,8.48h1.5C23.44,4.84 18.29,0 12,0l-0.66,0.03 3.81,3.81 1.33,-1.32zM10.23,1.75c-0.59,-0.59 -1.54,-0.59 -2.12,0L1.75,8.11c-0.59,0.59 -0.59,1.54 0,2.12l12.02,12.02c0.59,0.59 1.54,0.59 2.12,0l6.36,-6.36c0.59,-0.59 0.59,-1.54 0,-2.12L10.23,1.75zM14.83,21.19L2.81,9.17l6.36,-6.36 12.02,12.02 -6.36,6.36zM7.52,21.48C4.25,19.94 1.91,16.76 1.55,13L0.05,13C0.56,19.16 5.71,24 12,24l0.66,-0.03 -3.81,-3.81 -1.33,1.32z"/>
</vector>

View File

@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@android:id/background"
android:gravity="center_vertical|fill_horizontal">
<shape android:shape="rectangle">
<corners android:radius="1.5dp" />
<size android:height="3dp" />
<solid android:color="@color/grey200" />
</shape>
</item>
<item
android:id="@android:id/secondaryProgress"
android:gravity="center_vertical|fill_horizontal">
<clip>
<shape android:shape="rectangle">
<corners android:radius="1.5dp" />
<size android:height="3dp" />
<solid android:color="@color/grey200" />
</shape>
</clip>
</item>
<item
android:id="@android:id/progress"
android:gravity="center_vertical|fill_horizontal">
<clip>
<shape android:shape="rectangle">
<corners android:radius="1.5dp" />
<size android:height="3dp" />
<solid android:color="@color/orange500" />
</shape>
</clip>
</item>
</layer-list>

View File

@@ -2,11 +2,9 @@
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid
android:color="@color/blacktransparent" >
<solid android:color="@color/player_background">
</solid>
<corners
android:radius="3dp" >
<corners android:radius="5dp">
</corners>
</shape>

View File

@@ -4,17 +4,7 @@
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<ImageView
android:id="@+id/orientation_toggle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:src="@drawable/ic_rotate"
android:focusable="true"
android:visibility="gone"/>
<TextView
android:id="@+id/player_overlay_title"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"

View File

@@ -1,202 +1,301 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:vlc="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
xmlns:tools="http://schemas.android.com/tools"
xmlns:vlc="http://schemas.android.com/apk/res-auto">
<data>
<import type="org.videolan.medialibrary.Tools" />
<variable
name="progress"
type="androidx.lifecycle.LiveData&lt;org.videolan.vlc.media.Progress>" />
<variable
name="player"
type="org.videolan.vlc.gui.video.VideoPlayerActivity" />
</data>
<RelativeLayout
android:id="@+id/progress_overlay"
android:layout_width="800dp"
android:layout_height="wrap_content"
android:background="@drawable/rounded_corners"
android:paddingTop="@dimen/overlay_padding_top"
android:paddingBottom="@dimen/overlay_padding_bottom"
android:visibility="invisible"
tools:visibility="visible" >
<SeekBar
android:id="@+id/player_overlay_seekbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:maxHeight="@dimen/seekbar_height"
android:minHeight="@dimen/seekbar_height"
android:paddingLeft="@dimen/time_margin_sides"
android:paddingRight="@dimen/time_margin_sides"
android:paddingTop="4dp"
android:paddingBottom="4dp"
android:layoutDirection="ltr"
android:layout_alignParentTop="true"
android:progressDrawable="@drawable/po_seekbar"
android:thumb="@drawable/seekbar_thumb"
android:splitTrack="false"
android:focusable="true"
android:progress="@{(int)progress.time}"
vlc:mediamax="@{(int)progress.length}"/>
<TextView
android:id="@+id/player_overlay_time"
android:layout_width="66dp"
android:layout_height="wrap_content"
android:layout_below="@id/player_overlay_seekbar"
android:layout_alignLeft="@+id/player_overlay_seekbar"
android:layout_alignStart="@+id/player_overlay_seekbar"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginLeft="@dimen/time_margin_sides"
android:layout_marginStart="@dimen/time_margin_sides"
android:gravity="left|start"
android:textAppearance="@style/TextAppearance.AppCompat.SearchResult.Title"
android:textColor="@color/orange500"
android:text="@{Tools.millisToString(progress.time)}"
android:textSize="16sp"
android:onClick="@{(v) -> player.toggleTimeDisplay()}" />
<TextView
android:id="@+id/player_overlay_length"
android:layout_width="66dp"
android:layout_height="wrap_content"
android:layout_below="@id/player_overlay_seekbar"
android:layout_alignParentRight="true"
android:layout_alignRight="@+id/player_overlay_seekbar"
android:layout_marginRight="@dimen/time_margin_sides"
android:gravity="right|end"
vlc:time="@{progress.time}"
vlc:length="@{progress.length}"
android:textAppearance="@style/TextAppearance.AppCompat.SearchResult.Title"
android:textSize="16sp"
android:layout_alignParentEnd="true"
android:layout_alignEnd="@+id/player_overlay_seekbar"
android:layout_marginEnd="@dimen/time_margin_sides"
android:onClick="@{(v) -> player.toggleTimeDisplay()}" />
<!-- Media control buttons -->
<LinearLayout
android:id="@+id/player_overlay_buttons"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/player_overlay_length"
android:layout_marginRight="@dimen/images_margin_sides"
android:layout_marginLeft="@dimen/images_margin_sides">
<ImageView
android:id="@+id/lock_overlay_button"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:src="@drawable/ic_lock_circle"
android:scaleType="center"
android:onClick="@{(v) -> player.toggleLock()}"
android:contentDescription="@string/lock"
android:focusable="true"/>
<ImageView
android:id="@+id/player_overlay_tracks"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:clickable="true"
android:src="@drawable/ic_audiosub_circle"
android:scaleType="center"
android:onClick="@{player::onAudioSubClick}"
android:contentDescription="@string/tracks"
android:focusable="true"/>
<ImageView
android:id="@+id/playlist_previous"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:clickable="true"
android:focusable="true"
android:longClickable="true"
android:scaleType="center"
android:onClick="@{(v) -> player.previous()}"
android:src="@drawable/ic_playlist_previous_circle"
android:contentDescription="@string/previous"
android:visibility="gone" />
<ImageView
android:id="@+id/player_overlay_rewind"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:clickable="true"
android:focusable="true"
android:longClickable="true"
android:scaleType="center"
android:src="@drawable/ic_rewind_circle"
android:contentDescription="@string/playback_rewind"
android:visibility="gone" />
<ImageView
android:id="@+id/player_overlay_play"
android:layout_width="0dp"
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/progress_overlay"
android:layout_width="800dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:clickable="true"
android:src="@drawable/ic_pause_circle"
android:scaleType="fitCenter"
android:focusable="true"
android:onClick="@{(v) -> player.doPlayPause()}"
android:onLongClick="@{player::toggleLoop}"
android:contentDescription="@string/play"/>
android:background="@drawable/rounded_corners"
android:paddingTop="@dimen/overlay_padding_top"
android:paddingBottom="@dimen/overlay_padding_bottom"
android:visibility="invisible"
tools:visibility="visible">
<ImageView
android:id="@+id/player_overlay_forward"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:clickable="true"
android:longClickable="true"
android:src="@drawable/ic_forward_circle"
android:scaleType="center"
android:focusable="true"
android:contentDescription="@string/playback_forward"
android:visibility="gone" />
<TextView
android:id="@+id/player_overlay_title"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:textAppearance="@style/TextAppearance.AppCompat.SearchResult.Title"
android:textSize="16sp"
tools:text="Game of Thrones S01-E01"
vlc:layout_constraintEnd_toStartOf="@+id/orientation_toggle"
vlc:layout_constraintStart_toStartOf="parent"
vlc:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/playlist_next"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:clickable="true"
android:longClickable="true"
android:src="@drawable/ic_playlist_next_circle"
android:scaleType="center"
android:focusable="true"
android:onClick="@{(v) -> player.next()}"
android:contentDescription="@string/next"
android:visibility="gone" />
<ImageView
android:id="@+id/orientation_toggle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginEnd="16dp"
android:background="?attr/selectableItemBackgroundBorderless"
android:focusable="true"
android:padding="@dimen/kl_half"
android:src="@drawable/ic_rotate"
android:visibility="gone"
vlc:layout_constraintBottom_toBottomOf="@+id/player_overlay_title"
vlc:layout_constraintEnd_toEndOf="parent"
vlc:layout_constraintTop_toTopOf="@+id/player_overlay_title" />
<ImageView
android:id="@+id/player_overlay_adv_function"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:clickable="true"
android:src="@drawable/ic_more_circle"
android:scaleType="center"
android:onClick="@{(v) -> player.showAdvancedOptions()}"
android:contentDescription="@string/advanced"
android:focusable="true"/>
<SeekBar
android:id="@+id/player_overlay_seekbar"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:focusable="true"
android:layoutDirection="ltr"
android:maxHeight="@dimen/seekbar_height"
android:minHeight="@dimen/seekbar_height"
android:paddingLeft="@dimen/time_margin_sides"
android:paddingTop="4dp"
android:paddingRight="@dimen/time_margin_sides"
android:paddingBottom="4dp"
android:progress="@{(int)progress.time}"
android:progressDrawable="@drawable/po_seekbar_video"
android:splitTrack="false"
android:thumb="@drawable/seekbar_thumb"
vlc:layout_constraintEnd_toEndOf="parent"
vlc:layout_constraintStart_toStartOf="parent"
vlc:layout_constraintTop_toBottomOf="@+id/player_overlay_title"
vlc:mediamax="@{(int)progress.length}" />
<ImageView
android:id="@+id/player_overlay_size"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:src="@drawable/ic_crop_circle_o"
android:scaleType="center"
android:onClick="@{(v) -> player.resizeVideo()}"
android:contentDescription="@string/resize"
android:focusable="true" />
</LinearLayout>
</RelativeLayout>
<FrameLayout
android:id="@+id/player_overlay_time_container"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/time_margin_sides"
android:layout_marginBottom="8dp"
vlc:layout_constraintBottom_toBottomOf="parent"
vlc:layout_constraintHorizontal_chainStyle="spread_inside"
vlc:layout_constraintStart_toStartOf="parent"
vlc:layout_constraintTop_toBottomOf="@+id/player_overlay_seekbar">
<TextView
android:id="@+id/player_overlay_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="?attr/selectableItemBackgroundBorderless"
android:onClick="@{(v) -> player.toggleTimeDisplay()}"
android:text="@{Tools.millisToString(progress.time)}"
android:textAlignment="center"
android:textAppearance="@style/TextAppearance.AppCompat.SearchResult.Title"
android:textColor="@color/orange500"
android:textSize="16sp"
tools:text="0:32" />
</FrameLayout>
<ImageView
android:id="@+id/lock_overlay_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginBottom="8dp"
android:contentDescription="@string/lock"
android:focusable="true"
android:onClick="@{(v) -> player.toggleLock()}"
android:scaleType="center"
android:src="@drawable/ic_lock_circle"
vlc:layout_constraintBottom_toBottomOf="parent"
vlc:layout_constraintEnd_toStartOf="@+id/player_overlay_tracks"
vlc:layout_constraintHorizontal_bias="0.5"
vlc:layout_constraintHorizontal_chainStyle="spread"
vlc:layout_constraintStart_toEndOf="@+id/player_overlay_time_container"
vlc:layout_constraintTop_toBottomOf="@+id/player_overlay_seekbar" />
<ImageView
android:id="@+id/player_overlay_tracks"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:clickable="true"
android:contentDescription="@string/tracks"
android:focusable="true"
android:onClick="@{player::onAudioSubClick}"
android:scaleType="center"
android:src="@drawable/ic_audiosub_circle"
vlc:layout_constraintBottom_toBottomOf="parent"
vlc:layout_constraintEnd_toStartOf="@+id/playlist_previous"
vlc:layout_constraintHorizontal_bias="0.5"
vlc:layout_constraintStart_toEndOf="@+id/lock_overlay_button"
vlc:layout_constraintTop_toBottomOf="@+id/player_overlay_seekbar" />
<ImageView
android:id="@+id/playlist_previous"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:background="?attr/selectableItemBackgroundBorderless"
android:clickable="true"
android:contentDescription="@string/previous"
android:focusable="true"
android:longClickable="true"
android:onClick="@{(v) -> player.previous()}"
android:scaleType="center"
android:src="@drawable/ic_previous_player"
android:visibility="gone"
tools:visibility="visible"
vlc:layout_constraintBottom_toBottomOf="parent"
vlc:layout_constraintEnd_toStartOf="@+id/player_overlay_rewind"
vlc:layout_constraintHorizontal_bias="0.5"
vlc:layout_constraintStart_toEndOf="@+id/player_overlay_tracks"
vlc:layout_constraintTop_toBottomOf="@+id/player_overlay_seekbar" />
<ImageView
android:id="@+id/player_overlay_rewind"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:background="?attr/selectableItemBackgroundBorderless"
android:clickable="true"
android:contentDescription="@string/playback_rewind"
android:focusable="true"
android:longClickable="true"
android:scaleType="center"
android:src="@drawable/ic_rewind_player"
android:visibility="gone"
tools:visibility="visible"
vlc:layout_constraintBottom_toBottomOf="parent"
vlc:layout_constraintEnd_toStartOf="@+id/player_overlay_play"
vlc:layout_constraintHorizontal_bias="0.5"
vlc:layout_constraintStart_toEndOf="@+id/playlist_previous"
vlc:layout_constraintTop_toBottomOf="@+id/player_overlay_seekbar" />
<ImageView
android:id="@+id/player_overlay_play"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:background="?attr/selectableItemBackgroundBorderless"
android:clickable="true"
android:contentDescription="@string/play"
android:focusable="true"
android:onClick="@{(v) -> player.doPlayPause()}"
android:onLongClick="@{player::toggleLoop}"
android:scaleType="fitCenter"
android:src="@drawable/ic_pause_circle"
vlc:layout_constraintBottom_toBottomOf="parent"
vlc:layout_constraintEnd_toStartOf="@+id/player_overlay_forward"
vlc:layout_constraintHorizontal_bias="0.5"
vlc:layout_constraintStart_toEndOf="@+id/player_overlay_rewind"
vlc:layout_constraintTop_toBottomOf="@+id/player_overlay_seekbar" />
<ImageView
android:id="@+id/player_overlay_forward"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:background="?attr/selectableItemBackgroundBorderless"
android:clickable="true"
android:contentDescription="@string/playback_forward"
android:focusable="true"
android:longClickable="true"
android:scaleType="center"
android:src="@drawable/ic_forward_player"
android:visibility="gone"
tools:visibility="visible"
vlc:layout_constraintBottom_toBottomOf="parent"
vlc:layout_constraintEnd_toStartOf="@+id/playlist_next"
vlc:layout_constraintHorizontal_bias="0.5"
vlc:layout_constraintStart_toEndOf="@+id/player_overlay_play"
vlc:layout_constraintTop_toBottomOf="@+id/player_overlay_seekbar" />
<ImageView
android:id="@+id/playlist_next"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:background="?attr/selectableItemBackgroundBorderless"
android:clickable="true"
android:contentDescription="@string/next"
android:focusable="true"
android:longClickable="true"
android:onClick="@{(v) -> player.next()}"
android:scaleType="center"
android:src="@drawable/ic_next_player"
android:visibility="gone"
tools:visibility="visible"
vlc:layout_constraintBottom_toBottomOf="parent"
vlc:layout_constraintEnd_toStartOf="@+id/player_overlay_adv_function"
vlc:layout_constraintHorizontal_bias="0.5"
vlc:layout_constraintStart_toEndOf="@+id/player_overlay_forward"
vlc:layout_constraintTop_toBottomOf="@+id/player_overlay_seekbar" />
<ImageView
android:id="@+id/player_overlay_adv_function"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:clickable="true"
android:contentDescription="@string/advanced"
android:focusable="true"
android:onClick="@{(v) -> player.showAdvancedOptions()}"
android:scaleType="center"
android:src="@drawable/ic_more_circle"
vlc:layout_constraintBottom_toBottomOf="parent"
vlc:layout_constraintEnd_toStartOf="@+id/player_overlay_size"
vlc:layout_constraintHorizontal_bias="0.5"
vlc:layout_constraintStart_toEndOf="@+id/playlist_next"
vlc:layout_constraintTop_toBottomOf="@+id/player_overlay_seekbar" />
<ImageView
android:id="@+id/player_overlay_size"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:contentDescription="@string/resize"
android:focusable="true"
android:onClick="@{(v) -> player.resizeVideo()}"
android:scaleType="center"
android:src="@drawable/ic_crop_circle_o"
vlc:layout_constraintBottom_toBottomOf="parent"
vlc:layout_constraintEnd_toStartOf="@+id/player_overlay_length_container"
vlc:layout_constraintHorizontal_bias="0.5"
vlc:layout_constraintStart_toEndOf="@+id/player_overlay_adv_function"
vlc:layout_constraintTop_toBottomOf="@+id/player_overlay_seekbar" />
<FrameLayout
android:id="@+id/player_overlay_length_container"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/time_margin_sides"
android:layout_marginBottom="8dp"
vlc:layout_constraintBottom_toBottomOf="parent"
vlc:layout_constraintEnd_toEndOf="parent"
vlc:layout_constraintTop_toBottomOf="@+id/player_overlay_seekbar">
<TextView
android:id="@+id/player_overlay_length"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:background="?attr/selectableItemBackgroundBorderless"
android:onClick="@{(v) -> player.toggleTimeDisplay()}"
android:textAppearance="@style/TextAppearance.AppCompat.SearchResult.Title"
android:textSize="16sp"
tools:text="56:37"
vlc:length="@{progress.length}"
vlc:time="@{progress.time}" />
</FrameLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<!-- Media control buttons -->
</layout>

View File

@@ -37,6 +37,8 @@
<color name="grey875">#2a2a2a</color>
<color name="grey900">#212121</color>
<color name="player_background">#c0141414</color>
<color name="grey50transparent">#b9fafafa</color>
<color name="grey50transparent_ea">#eafafafa</color>
<color name="grey400transparent">#80bdbdbd</color>

View File

@@ -328,12 +328,14 @@
<item name="list_subtitle">@color/grey400</item>
<item name="list_title_last">@color/list_title_last</item>
<item name="list_title">@color/bt_list_title</item>
<item name="progress_background">@color/grey300</item>
<item name="progress_background">@color/grey200</item>
<item name="ic_abrepeat">@drawable/ic_abrepeat_w</item>
<item name="ic_abrepeat_seta">@drawable/ic_abrepeat_seta_w</item>
<item name="ic_abrepeat_setb">@drawable/ic_abrepeat_setb_w</item>
<item name="ic_abrepeat_reset">@drawable/ic_abrepeat_reset_w</item>
<item name="ic_dial">@drawable/ic_dial_w</item>
<item name="android:colorControlHighlight">@color/orange500</item>
<item name="colorControlHighlight">@color/orange500</item>
</style>
<style name="VLCTransparentTheme" parent="Theme.AppCompat.Light.Dialog.MinWidth">

View File

@@ -55,6 +55,7 @@ import androidx.appcompat.app.AlertDialog
import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.widget.PopupMenu
import androidx.appcompat.widget.ViewStubCompat
import androidx.constraintlayout.widget.ConstraintSet
import androidx.core.content.ContextCompat
import androidx.databinding.BindingAdapter
import androidx.databinding.DataBindingUtil
@@ -106,6 +107,8 @@ import java.util.*
@ExperimentalCoroutinesApi
open class VideoPlayerActivity : AppCompatActivity(), IPlaybackSettingsController, PlaybackService.Callback, PlaylistAdapter.IPlayer, OnClickListener, OnLongClickListener, StoragePermissionsDelegate.CustomActionController, Observer<PlaybackService> {
private val controlsConstraintSetPortrait = ConstraintSet()
private val controlsConstraintSetLandscape = ConstraintSet()
var service: PlaybackService? = null
private lateinit var medialibrary: Medialibrary
private var videoLayout: VLCVideoLayout? = null
@@ -119,7 +122,6 @@ open class VideoPlayerActivity : AppCompatActivity(), IPlaybackSettingsControlle
private lateinit var playlistAdapter: PlaylistAdapter
private var playlistModel: PlaylistModel? = null
private var orientationToggle: ImageView? = null
private lateinit var settings: SharedPreferences
@@ -133,7 +135,6 @@ open class VideoPlayerActivity : AppCompatActivity(), IPlaybackSettingsControlle
private set
private var isShowingDialog: Boolean = false
private var playbackSetting: IPlaybackSettingsController.DelayState = IPlaybackSettingsController.DelayState.OFF
private var titleTextView: TextView? = null
private var info: TextView? = null
private var overlayInfo: View? = null
private var verticalBar: View? = null
@@ -425,14 +426,12 @@ open class VideoPlayerActivity : AppCompatActivity(), IPlaybackSettingsControlle
rootView = findViewById(R.id.player_root)
actionBarView = actionBar.customView as ViewGroup
titleTextView = actionBarView!!.findViewById(R.id.player_overlay_title)
playlistToggle = actionBarView!!.findViewById(R.id.playlist_toggle)
playlist = findViewById(R.id.video_playlist)
secondaryDisplayBtn = actionBarView!!.findViewById(R.id.video_secondary_display)
orientationToggle = actionBarView!!.findViewById(R.id.orientation_toggle)
screenOrientation = Integer.valueOf(
settings.getString(SCREEN_ORIENTATION, "99" /*SCREEN ORIENTATION SENSOR*/)!!)
@@ -489,9 +488,6 @@ open class VideoPlayerActivity : AppCompatActivity(), IPlaybackSettingsControlle
lp.setMargins(hm, 0, hm, vm)
uiContainer.layoutParams = lp
val titleParams = titleTextView!!.layoutParams as LinearLayout.LayoutParams
titleParams.setMargins(0, vm, 0, 0)
titleTextView!!.layoutParams = titleParams
}
}
@@ -530,11 +526,11 @@ open class VideoPlayerActivity : AppCompatActivity(), IPlaybackSettingsControlle
}
private fun setListeners(enabled: Boolean) {
if (::hudBinding.isInitialized) hudBinding.playerOverlaySeekbar.setOnSeekBarChangeListener(if (enabled) seekListener else null)
if (navMenu != null) navMenu!!.setOnClickListener(if (enabled) this else null)
if (orientationToggle != null) {
orientationToggle!!.setOnClickListener(if (enabled) this else null)
orientationToggle!!.setOnLongClickListener(if (enabled) this else null)
if (::hudBinding.isInitialized) {
hudBinding.playerOverlaySeekbar.setOnSeekBarChangeListener(if (enabled) seekListener else null)
hudBinding.orientationToggle.setOnClickListener(if (enabled) this else null)
hudBinding.orientationToggle.setOnLongClickListener(if (enabled) this else null)
}
UiTools.setViewOnClickListener(rendererBtn, if (enabled) this else null)
}
@@ -542,7 +538,9 @@ open class VideoPlayerActivity : AppCompatActivity(), IPlaybackSettingsControlle
override fun onNewIntent(intent: Intent) {
setIntent(intent)
if (playbackStarted) service?.run {
titleTextView!!.text = currentMediaWrapper?.title ?: return@run
if (::hudBinding.isInitialized) {
hudBinding.playerOverlayTitle.text = currentMediaWrapper?.title ?: return@run
}
var uri: Uri? = if (intent.hasExtra(PLAY_EXTRA_ITEM_LOCATION))
intent.extras!!.getParcelable<Parcelable>(PLAY_EXTRA_ITEM_LOCATION) as Uri?
else
@@ -664,20 +662,18 @@ open class VideoPlayerActivity : AppCompatActivity(), IPlaybackSettingsControlle
touchDelegate!!.screenConfig = sc
}
resetHudLayout()
showControls(isShowing)
}
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
fun resetHudLayout() {
if (!::hudBinding.isInitialized) return
val layoutParams = hudBinding.playerOverlayButtons.layoutParams as RelativeLayout.LayoutParams
val orientation = getScreenOrientation(100)
val portrait = orientation == ActivityInfo.SCREEN_ORIENTATION_PORTRAIT || orientation == ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT
layoutParams.addRule(RelativeLayout.ALIGN_PARENT_START, if (portrait) 1 else 0)
layoutParams.addRule(RelativeLayout.ALIGN_PARENT_END, if (portrait) 1 else 0)
layoutParams.addRule(RelativeLayout.BELOW, if (portrait) R.id.player_overlay_length else R.id.player_overlay_seekbar)
layoutParams.addRule(RelativeLayout.END_OF, if (portrait) 0 else R.id.player_overlay_time)
layoutParams.addRule(RelativeLayout.START_OF, if (portrait) 0 else R.id.player_overlay_length)
hudBinding.playerOverlayButtons.layoutParams = layoutParams
if (portrait) controlsConstraintSetPortrait.applyTo(hudBinding.progressOverlay) else controlsConstraintSetLandscape.applyTo(hudBinding.progressOverlay)
if (!isTv && !AndroidDevices.isChromeBook)
hudBinding.orientationToggle.setVisible()
}
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
@@ -1563,7 +1559,8 @@ open class VideoPlayerActivity : AppCompatActivity(), IPlaybackSettingsControlle
wasPaused = false
}
setESTracks()
if (titleTextView?.length() == 0) titleTextView?.text = mw.title
if (::hudBinding.isInitialized && hudBinding.playerOverlayTitle.length() == 0)
hudBinding.playerOverlayTitle.text = mw.title
// Get possible subtitles
observeDownloadedSubtitles()
optionsDelegate?.setup()
@@ -1939,14 +1936,14 @@ open class VideoPlayerActivity : AppCompatActivity(), IPlaybackSettingsControlle
if (!::hudBinding.isInitialized) return
hudBinding.playerOverlayRewind.isEnabled = seekable
hudBinding.playerOverlayRewind.setImageResource(if (seekable)
R.drawable.ic_rewind_circle
R.drawable.ic_rewind_player
else
R.drawable.ic_rewind_circle_disable_o)
R.drawable.ic_rewind_player_disabled)
hudBinding.playerOverlayForward.isEnabled = seekable
hudBinding.playerOverlayForward.setImageResource(if (seekable)
R.drawable.ic_forward_circle
R.drawable.ic_forward_player
else
R.drawable.ic_forward_circle_disable_o)
R.drawable.ic_forward_player_disabled)
if (!isLocked)
hudBinding.playerOverlaySeekbar.isEnabled = seekable
}
@@ -1955,7 +1952,7 @@ open class VideoPlayerActivity : AppCompatActivity(), IPlaybackSettingsControlle
if (!::hudBinding.isInitialized) return
hudBinding.playerOverlayPlay.isEnabled = pausable
if (!pausable)
hudBinding.playerOverlayPlay.setImageResource(R.drawable.ic_play_circle_disable_o)
hudBinding.playerOverlayPlay.setImageResource(R.drawable.ic_play_player_disabled)
}
fun doPlayPause() {
@@ -2190,7 +2187,39 @@ open class VideoPlayerActivity : AppCompatActivity(), IPlaybackSettingsControlle
PlaybackService.renderer.observe(this, Observer { rendererItem -> if (rendererBtn != null) rendererBtn!!.setImageResource(if (rendererItem == null) R.drawable.ic_renderer_circle else R.drawable.ic_renderer_on_circle) })
RendererDelegate.renderers.observe(this, Observer<List<RendererItem>> { rendererItems -> rendererBtn.setVisibility(if (Util.isListEmpty(rendererItems)) View.GONE else View.VISIBLE) })
}
hudBinding.playerOverlayTitle.text = service.currentMediaWrapper?.title
if (seekButtons) initSeekButton()
controlsConstraintSetPortrait.clone(hudBinding.progressOverlay)
controlsConstraintSetLandscape.clone(hudBinding.progressOverlay)
controlsConstraintSetPortrait.clear(R.id.player_overlay_time_container, ConstraintSet.BOTTOM)
controlsConstraintSetPortrait.clear(R.id.player_overlay_length_container, ConstraintSet.BOTTOM)
controlsConstraintSetPortrait.removeFromHorizontalChain(R.id.player_overlay_time_container)
controlsConstraintSetPortrait.removeFromHorizontalChain(R.id.player_overlay_length_container)
controlsConstraintSetPortrait.connect(R.id.player_overlay_time_container, ConstraintSet.START, ConstraintSet.PARENT_ID, ConstraintSet.START)
controlsConstraintSetPortrait.connect(R.id.player_overlay_length_container, ConstraintSet.END, ConstraintSet.PARENT_ID, ConstraintSet.END)
controlsConstraintSetPortrait.setMargin(R.id.player_overlay_time_container, ConstraintSet.START, resources.getDimensionPixelSize(R.dimen.time_margin_sides))
controlsConstraintSetPortrait.setMargin(R.id.player_overlay_length_container, ConstraintSet.END, resources.getDimensionPixelSize(R.dimen.time_margin_sides))
val chainIds = arrayOf(R.id.lock_overlay_button, R.id.player_overlay_tracks, R.id.playlist_previous, R.id.player_overlay_rewind, R.id.player_overlay_play, R.id.player_overlay_forward, R.id.playlist_next, R.id.player_overlay_adv_function, R.id.player_overlay_size)
chainIds.forEach {
controlsConstraintSetPortrait.clear(it, ConstraintSet.START)
controlsConstraintSetPortrait.clear(it, ConstraintSet.END)
controlsConstraintSetPortrait.removeFromHorizontalChain(it)
controlsConstraintSetPortrait.connect(it, ConstraintSet.TOP, R.id.player_overlay_time_container, ConstraintSet.BOTTOM)
controlsConstraintSetPortrait.connect(it, ConstraintSet.BOTTOM, ConstraintSet.PARENT_ID, ConstraintSet.BOTTOM)
}
controlsConstraintSetPortrait.createHorizontalChain(ConstraintSet.PARENT_ID, ConstraintSet.LEFT, ConstraintSet.PARENT_ID, ConstraintSet.RIGHT, chainIds.toIntArray(), null, ConstraintSet.CHAIN_PACKED)
resetHudLayout()
updateOverlayPausePlay()
updateSeekable(service.isSeekable)
@@ -2203,8 +2232,7 @@ open class VideoPlayerActivity : AppCompatActivity(), IPlaybackSettingsControlle
hudBinding.playerOverlaySize.setGone()
}
if (!isTv && !AndroidDevices.isChromeBook)
orientationToggle.setVisible()
} else if (::hudBinding.isInitialized) {
hudBinding.progress = service.playlistManager.player.progress
hudBinding.lifecycleOwner = this
@@ -2288,9 +2316,9 @@ open class VideoPlayerActivity : AppCompatActivity(), IPlaybackSettingsControlle
service?.let { service ->
if (service.isPausable)
hudBinding.playerOverlayPlay.setImageResource(if (service.isPlaying)
R.drawable.ic_pause_circle
R.drawable.ic_pause_player
else
R.drawable.ic_play_circle)
R.drawable.ic_play_player)
hudBinding.playerOverlayPlay.requestFocus()
}
}
@@ -2515,7 +2543,9 @@ open class VideoPlayerActivity : AppCompatActivity(), IPlaybackSettingsControlle
service.loadLastPlaylist(PLAYLIST_TYPE_VIDEO)
}
if (itemTitle != null) title = itemTitle
titleTextView!!.text = title
if (::hudBinding.isInitialized) {
hudBinding.playerOverlayTitle.text = title
}
if (wasPaused) {
// XXX: Workaround to update the seekbar position