diff --git a/doc/fr/index.md b/doc/fr/index.md
index 849edde..b6f17b0 100644
--- a/doc/fr/index.md
+++ b/doc/fr/index.md
@@ -31,6 +31,10 @@ L'objet `options` contient les options de configuration de l'appareil photo.
- **Type :** `string`
- **Valeur par défaut :** `null`
++ **imgBackgroundBase64OtherOrientation :** Image qui sera présente en surimpression de l'appareil photo lorsque l'on tourne l'appareil dans l'autre sens que celui de démarrage du plugin. Elle doit être en base64. Si à `null`, on utilisera `imgBackgroundBase64` en redimensionnant l'image.
+ - **Type :** `string`
+ - **Valeur par défaut :** `null`
+
+ **miniature :** Permet d'activer ou non la fonction de miniature. `true` : Active l'option. `false` : Désactive l'option.
- **Type :** `boolean`
- **Valeur par défaut :** `true`
@@ -113,6 +117,18 @@ navigator.GeneanetCustomCamera.startCamera(
);
```
+### Application de code barre
+
+[Voir le code](https://github.com/geneanet/customCamera/tree/master/examples/barcode)
+
+
+
+### Application avec grille
+
+[Voir le code](https://github.com/geneanet/customCamera/tree/master/examples/grid)
+
+
+
### AngularJS
Une implémentation dans AngularJS a été réalisée pour faciliter son utilisation : [$geneanetCustomCamera](https://github.com/geneanet/customCameraAngular.git).
@@ -122,4 +138,3 @@ Une implémentation dans AngularJS a été réalisée pour faciliter son utilisa
Pour contribuer à ce projet, merci de respecter les règles suivantes :
+ **Les bugs, suggestions, etc :** Ils doivent être remontés via le système d'issues de Github. Merci de vérifier que votre sujet n'a pas déjà été traité.
+ **Développement Javascript :** Le code javascript doit être valide avec JSHint.
-+ **Développement Java :** Le code java doit être valide [Checkstyle](http://eclipse-cs.sourceforge.net/#!/).
diff --git a/examples/barcode/screenshot.png b/examples/barcode/screenshot.png
new file mode 100644
index 0000000..11a79cd
Binary files /dev/null and b/examples/barcode/screenshot.png differ
diff --git a/examples/grid/.gitignore b/examples/grid/.gitignore
new file mode 100644
index 0000000..602549b
--- /dev/null
+++ b/examples/grid/.gitignore
@@ -0,0 +1,9 @@
+platforms/*
+!platforms/.gitkeep
+
+plugins/*
+!plugins/.gitkeep
+
+node_modules/*
+
+*.DS_Store
\ No newline at end of file
diff --git a/examples/grid/config.xml b/examples/grid/config.xml
new file mode 100644
index 0000000..693fc7c
--- /dev/null
+++ b/examples/grid/config.xml
@@ -0,0 +1,12 @@
+
+
+ grid
+
+ A sample Apache Cordova application that responds to the deviceready event.
+
+
+ Apache Cordova Team
+
+
+
+
diff --git a/examples/grid/screenshot.png b/examples/grid/screenshot.png
new file mode 100644
index 0000000..6647395
Binary files /dev/null and b/examples/grid/screenshot.png differ
diff --git a/examples/grid/www/index.html b/examples/grid/www/index.html
new file mode 100644
index 0000000..7b8556c
--- /dev/null
+++ b/examples/grid/www/index.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+ Grid
+
+
+
+
+
+
+
+
diff --git a/examples/grid/www/js/index.js b/examples/grid/www/js/index.js
new file mode 100644
index 0000000..c0762ca
--- /dev/null
+++ b/examples/grid/www/js/index.js
@@ -0,0 +1,57 @@
+function getGrid(inverse) {
+ var format = "image/png";
+ var width = window.innerWidth * devicePixelRatio;
+ var height = window.innerHeight * devicePixelRatio;
+ if (inverse) {
+ width = window.innerHeight * devicePixelRatio;
+ height = window.innerWidth * devicePixelRatio;
+ }
+ var widthInterval = width * 0.25;
+ var heightInterval = height * 0.25;
+ var x = widthInterval;
+ var y = heightInterval;
+
+ var canvas = document.getElementById('my-canvas');;
+ canvas.width = width;
+ canvas.height = height;
+
+ var ctx = canvas.getContext("2d");
+
+ ctx.beginPath();
+
+ while (x < width) {
+ ctx.moveTo(x, 0);
+ ctx.lineTo(x, height);
+ x += widthInterval;
+ }
+
+ while (y < height) {
+ ctx.moveTo(0, y);
+ ctx.lineTo(width, y);
+ y += heightInterval;
+ }
+ ctx.stroke();
+
+ ctx.closePath();
+
+ var base64 = canvas.toDataURL(format);
+
+ return base64.replace(/data:[^\/]*\/[^\,]*,/, "");
+};
+
+document.getElementById("start-camera").onclick = function() {
+ navigator.GeneanetCustomCamera.startCamera(
+ {
+ imgBackgroundBase64: getGrid(),
+ imgBackgroundBase64OtherOrientation: getGrid(true),
+ opacity: false,
+ miniature: false
+ },
+ function() {
+ window.console.log("success");
+ },
+ function() {
+ window.console.log("fail");
+ }
+ );
+}
\ No newline at end of file
diff --git a/src/android/CameraLauncher.java b/src/android/CameraLauncher.java
index fea4e1d..4b5623c 100644
--- a/src/android/CameraLauncher.java
+++ b/src/android/CameraLauncher.java
@@ -60,14 +60,29 @@ public class CameraLauncher extends CordovaPlugin {
TransferBigData.setImgBackgroundBase64(imgBackgroundBase64);
}
- intent.putExtra("miniature", args.getBoolean(1));
- intent.putExtra("saveInGallery", args.getBoolean(2));
- intent.putExtra("cameraBackgroundColor", args.getString(3));
- intent.putExtra("cameraBackgroundColorPressed", args.getString(4));
- if (args.getInt(5) >= 0 && args.getInt(5) <= 100) {
- intent.putExtra("quality", args.getInt(5));
+ if (args.getString(1) != "null") {
+ byte[] imgBackgroundBase64OtherOrientation;
+ try {
+ imgBackgroundBase64OtherOrientation = Base64
+ .decode(args.getString(1), Base64.NO_WRAP);
+ } catch (IllegalArgumentException e) {
+ this.callbackContext.error(generateError(CameraLauncher.RESULT_ERROR,
+ "Error decode base64 picture."));
+
+ return false;
+ }
+ TransferBigData.setImgBackgroundBase64OtherOrientation(imgBackgroundBase64OtherOrientation);
}
- intent.putExtra("opacity", args.getBoolean(6));
+
+ intent.putExtra("miniature", args.getBoolean(2));
+ intent.putExtra("saveInGallery", args.getBoolean(3));
+ intent.putExtra("cameraBackgroundColor", args.getString(4));
+ intent.putExtra("cameraBackgroundColorPressed", args.getString(5));
+ if (args.getInt(6) >= 0 && args.getInt(6) <= 100) {
+ intent.putExtra("quality", args.getInt(6));
+ }
+ intent.putExtra("opacity", args.getBoolean(7));
+ intent.putExtra("startOrientation", this.cordova.getActivity().getResources().getConfiguration().orientation);
cordova.startActivityForResult((CordovaPlugin) this, intent,
CameraLauncher.REQUEST_CODE);
diff --git a/src/android/customCamera/.gitignore b/src/android/customCamera/.gitignore
index 99008c9..2956d2f 100644
--- a/src/android/customCamera/.gitignore
+++ b/src/android/customCamera/.gitignore
@@ -2,7 +2,12 @@
.project
.classpath
project.properties
+ant.properties
+build.xml
+local.properties
+proguard-project.txt
+nbandroid/*
bin/*
gen/*
libs/*
diff --git a/src/android/customCamera/project.properties b/src/android/customCamera/project.properties
deleted file mode 100644
index 655eb8f..0000000
--- a/src/android/customCamera/project.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-# This file is automatically generated by Android Tools.
-# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
-#
-# This file must be checked in Version Control Systems.
-#
-# To customize properties used by the Ant build system edit
-# "ant.properties", and override values to adapt the script to your
-# project structure.
-#
-# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
-#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
-
-# Project target.
-target=Google Inc.:Google APIs:14
diff --git a/src/android/customCamera/src/org/geneanet/customcamera/CameraActivity.java b/src/android/customCamera/src/org/geneanet/customcamera/CameraActivity.java
index f5cb395..523e81c 100644
--- a/src/android/customCamera/src/org/geneanet/customcamera/CameraActivity.java
+++ b/src/android/customCamera/src/org/geneanet/customcamera/CameraActivity.java
@@ -398,7 +398,16 @@ public class CameraActivity extends Activity {
/** To set background in the view. */
protected void setBackground() {
// Get the base64 picture for the background only if it's exist.
- byte[] imgBackgroundBase64 = TransferBigData.getImgBackgroundBase64();
+ byte[] imgBackgroundBase64;
+ if (
+ TransferBigData.getImgBackgroundBase64OtherOrientation() == null ||
+ this.getIntent().getIntExtra("startOrientation", 1)
+ == this.getResources().getConfiguration().orientation
+ ) {
+ imgBackgroundBase64 = TransferBigData.getImgBackgroundBase64();
+ } else {
+ imgBackgroundBase64 = TransferBigData.getImgBackgroundBase64OtherOrientation();
+ }
if (imgBackgroundBase64 != null) {
// Get picture.
Bitmap imgBackgroundBitmap = BitmapFactory.decodeByteArray(
diff --git a/src/android/customCamera/src/org/geneanet/customcamera/TransferBigData.java b/src/android/customCamera/src/org/geneanet/customcamera/TransferBigData.java
index f53bc4d..c3ea46a 100644
--- a/src/android/customCamera/src/org/geneanet/customcamera/TransferBigData.java
+++ b/src/android/customCamera/src/org/geneanet/customcamera/TransferBigData.java
@@ -5,6 +5,7 @@ package org.geneanet.customcamera;
*/
public class TransferBigData {
protected static byte[] imgBackgroundBase64 = null;
+ protected static byte[] imgBackgroundBase64OtherOrientation = null;
protected static byte[] imgTaken = null;
/**
@@ -25,6 +26,24 @@ public class TransferBigData {
TransferBigData.imgBackgroundBase64 = imgBackgroundBase64;
}
+ /**
+ * Get bytes to represent background picture for OtherOrientation.
+ *
+ * @return byte[]
+ */
+ public static byte[] getImgBackgroundBase64OtherOrientation() {
+ return TransferBigData.imgBackgroundBase64OtherOrientation;
+ }
+
+ /**
+ * Set bytes to represent background picture for OtherOrientation.
+ *
+ * @param byte[] imgBackgroundBase64OtherOrientation
+ */
+ public static void setImgBackgroundBase64OtherOrientation(byte[] imgBackgroundBase64OtherOrientation) {
+ TransferBigData.imgBackgroundBase64OtherOrientation = imgBackgroundBase64OtherOrientation;
+ }
+
/**
* Get bytes to represent picture taken.
*
diff --git a/www/customCamera.js b/www/customCamera.js
index d9b331a..d418b8a 100644
--- a/www/customCamera.js
+++ b/www/customCamera.js
@@ -17,6 +17,7 @@
CustomCameraExport.prototype.startCamera = function(options, successFct, failFct) {
var defaultOptions = {
imgBackgroundBase64: null, // background picture in base64.
+ imgBackgroundBase64OtherOrientation: null, // background picture in base64 for second orientation. If it's not defined, imgBackgroundBase64 is used.
miniature: true, // active or disable the miniature function.
saveInGallery: false, // save or not the picture in gallery.
cameraBackgroundColor: "#e26760", // color of the camera button.
@@ -47,6 +48,7 @@
"startCamera",
[
options.imgBackgroundBase64,
+ options.imgBackgroundBase64OtherOrientation,
options.miniature,
options.saveInGallery,
options.cameraBackgroundColor,