diff --git a/.gitignore b/.gitignore
index 0f0d9b0..cb38c24 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,3 +5,6 @@
webcam/target
webcam-demo/target
webcam-demo/src/main/webapp/VAADIN/widgetsets
+
+.idea
+*.iml
\ No newline at end of file
diff --git a/README.md b/README.md
index 4e316ea..06cdde1 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
-# Webcam Add-on for Vaadin 7
+# Webcam Add-on for Vaadin 8
-Webcam is an HTML5 webcam component for Vaadin 7.
+Webcam is an HTML5 webcam component for Vaadin 8.
## Online demo
@@ -14,10 +14,10 @@ Official releases of this add-on will later be available at Vaadin Directory. Fo
## Building and running demo
-- git clone https://github.com/tehapo/webcam.git
-- mvn clean install
-- cd demo
-- mvn jetty:run
+- `git clone https://github.com/tehapo/webcam.git`
+- `mvn clean install`
+- `cd webcam-demo`
+- `mvn jetty:run`
To see the demo, navigate to http://localhost:8080/
diff --git a/pom.xml b/pom.xml
index f024400..bd85f7a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
org.vaadin.teemu
webcam-root
pom
- 0.3.0
+ 0.3.2-SNAPSHOT
Webcam Add-on Root Project
diff --git a/webcam-demo/pom.xml b/webcam-demo/pom.xml
index 5dcbfe1..dfff4e7 100644
--- a/webcam-demo/pom.xml
+++ b/webcam-demo/pom.xml
@@ -5,12 +5,12 @@
org.vaadin.teemu
webcam-demo
war
- 0.3.0
+ 0.3.2-SNAPSHOT
Webcam Add-on Demo
UTF-8
- 7.0.7
+ 8.0.5
${vaadin.version}
diff --git a/webcam-demo/src/main/webapp/VAADIN/themes/demo/styles.scss b/webcam-demo/src/main/webapp/VAADIN/themes/demo/styles.scss
index 263af35..bc573ab 100644
--- a/webcam-demo/src/main/webapp/VAADIN/themes/demo/styles.scss
+++ b/webcam-demo/src/main/webapp/VAADIN/themes/demo/styles.scss
@@ -1,4 +1,4 @@
-@import "../reindeer/reindeer.scss";
+@import "../valo/valo.scss";
$blue: #00b4f0;
$gray: #d1d1cf;
@@ -35,8 +35,8 @@ $darkgreen: darken($green, 30%);
// Prefix all selectors in your theme with .demo
.demo {
- // Include reindeer theme styles in your theme
- @include reindeer;
+ // Include valo theme styles in your theme
+ @include valo;
// You can style your demo app right here
.demoContentLayout {
diff --git a/webcam/pom.xml b/webcam/pom.xml
index fb00e57..77ab203 100644
--- a/webcam/pom.xml
+++ b/webcam/pom.xml
@@ -5,12 +5,12 @@
org.vaadin.teemu
webcam
jar
- 0.3.0
+ 0.3.2-SNAPSHOT
Webcam
UTF-8
- 7.0.7
+ 8.0.5
${vaadin.version}
diff --git a/webcam/src/main/java/org/vaadin/teemu/webcam/Webcam.java b/webcam/src/main/java/org/vaadin/teemu/webcam/Webcam.java
index ad789f1..cbb1913 100644
--- a/webcam/src/main/java/org/vaadin/teemu/webcam/Webcam.java
+++ b/webcam/src/main/java/org/vaadin/teemu/webcam/Webcam.java
@@ -75,6 +75,10 @@ public void capture() {
getRpcProxy(WebcamClientRpc.class).capture();
}
+ public void stopStream() {
+ getRpcProxy(WebcamClientRpc.class).stopStream();
+ }
+
protected OutputStream getOutputStream(String filename, String mimeType) {
if (receiver != null) {
return receiver.receiveUpload(filename, mimeType);
diff --git a/webcam/src/main/java/org/vaadin/teemu/webcam/client/WebcamClientRpc.java b/webcam/src/main/java/org/vaadin/teemu/webcam/client/WebcamClientRpc.java
index f2269a5..132b3ab 100644
--- a/webcam/src/main/java/org/vaadin/teemu/webcam/client/WebcamClientRpc.java
+++ b/webcam/src/main/java/org/vaadin/teemu/webcam/client/WebcamClientRpc.java
@@ -9,4 +9,9 @@ public interface WebcamClientRpc extends ClientRpc {
*/
public void capture();
+ /**
+ * Passes the command to stop all tracks on the camera stream
+ */
+ public void stopStream();
+
}
\ No newline at end of file
diff --git a/webcam/src/main/java/org/vaadin/teemu/webcam/client/WebcamConnector.java b/webcam/src/main/java/org/vaadin/teemu/webcam/client/WebcamConnector.java
index ba1acc5..6f2f427 100644
--- a/webcam/src/main/java/org/vaadin/teemu/webcam/client/WebcamConnector.java
+++ b/webcam/src/main/java/org/vaadin/teemu/webcam/client/WebcamConnector.java
@@ -37,6 +37,11 @@ public void capture() {
// Commanded by the server-side component.
captureNow();
}
+
+ @Override
+ public void stopStream() {
+ getWidget().stopSteam();
+ }
});
}
diff --git a/webcam/src/main/java/org/vaadin/teemu/webcam/client/WebcamStream.java b/webcam/src/main/java/org/vaadin/teemu/webcam/client/WebcamStream.java
index bd91df4..1bc6a3f 100644
--- a/webcam/src/main/java/org/vaadin/teemu/webcam/client/WebcamStream.java
+++ b/webcam/src/main/java/org/vaadin/teemu/webcam/client/WebcamStream.java
@@ -11,7 +11,12 @@ protected WebcamStream() {
// @formatter:off
public final native void stop() /*-{
- this.stop();
+ for (var i = 0; i < this.getTracks().length; i++) {
+ var track = this.getTracks()[i];
+ if(track !== null) {
+ track.stop();
+ }
+ }
}-*/;
// @formatter:on
diff --git a/webcam/src/main/java/org/vaadin/teemu/webcam/client/WebcamWidget.java b/webcam/src/main/java/org/vaadin/teemu/webcam/client/WebcamWidget.java
index 3d09676..1063760 100644
--- a/webcam/src/main/java/org/vaadin/teemu/webcam/client/WebcamWidget.java
+++ b/webcam/src/main/java/org/vaadin/teemu/webcam/client/WebcamWidget.java
@@ -45,6 +45,13 @@ private Element getVideoElement() {
return video.getElement();
}
+
+ protected void stopSteam() {
+ if (stream != null) {
+ stream.stop();
+ }
+ }
+
public void setClickListener(EventListener listener) {
if (video != null) {
DOM.setEventListener(video.getElement(), listener);
@@ -54,9 +61,7 @@ public void setClickListener(EventListener listener) {
@Override
protected void onUnload() {
super.onUnload();
- if (stream != null) {
- stream.stop();
- }
+ stopSteam();
}
// @formatter:off