Compare commits

..
8 Commits
7 changed files with 54 additions and 29 deletions
+22
View File
@@ -175,3 +175,25 @@
* CB-8559 Integrate TravisCI
* CB-8438 cordova-plugin-camera documentation translation: cordova-plugin-camera
* CB-8538 Added package.json file
### 1.0.0 (Apr 15, 2015)
* CB-8780 - Display popover using main thread. Fixes popover slowness (closes #81)
* CB-8746 bumped version of file dependency
* CB-8746 gave plugin major version bump
* CB-8707 refactoring windows code to improve readability
* CB-8706 use filePicker if saveToPhotoAlbum is true
* CB-8706 remove unnecessary capabilities from xml
* CB-8747 updated dependency, added peer dependency
* CB-8683 updated blackberry specific references of org.apache.cordova.camera to cordova-plugin-camera
* CB-8782: Updated the docs to talk about the allowEdit quirks, it's not 100% working, but better than it was
* CB-8782: Fixed the flow so that we save the cropped image and use it, not the original non-cropped. Crop only supports G+ Photos Crop, other crops may not work, depending on the OEM
* CB-8740: Removing FileHelper call that was failing on Samsung Galaxy S3, now that we have a real path, we only need to update the MediaStore, not pull from it in this case
* CB-8740: Partial fix for Save Image to Gallery error found in MobileSpec
* CB-8683 changed plugin-id to pacakge-name
* CB-8653 properly updated translated docs to use new id
* CB-8653 updated translated docs to use new id
* CB-8351 Fix custom implementation of integerValueForKey (close #79)
* Fix cordova-paramedic path change, build with TRAVIS_BUILD_DIR, use npm to install paramedic
* docs: added 'Windows' to supported platforms
* CB-8653 Updated Readme
* CB-8659: ios: 4.0.x Compatibility: Remove use of deprecated headers
+5 -2
View File
@@ -1,9 +1,9 @@
{
"name": "cordova-plugin-camera",
"version": "0.3.7-dev",
"version": "1.0.0",
"description": "Cordova Camera Plugin",
"cordova": {
"id": "org.apache.cordova.camera",
"id": "cordova-plugin-camera",
"platforms": [
"firefoxos",
"android",
@@ -38,6 +38,9 @@
"cordova-browser",
"cordova-windows"
],
"peerDependencies": {
"cordova-plugin-file": ">=2.0.0"
},
"author": "Apache Software Foundation",
"license": "Apache 2.0"
}
+2 -2
View File
@@ -21,8 +21,8 @@
<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:rim="http://www.blackberry.com/ns/widgets"
id="org.apache.cordova.camera"
version="0.3.7-dev">
id="cordova-plugin-camera"
version="1.0.0">
<name>Camera</name>
<description>Cordova Camera Plugin</description>
<license>Apache 2.0</license>
+1 -1
View File
@@ -60,7 +60,7 @@ function showCameraDialog (done, cancel, fail) {
});
wv.on('JavaScriptCallback', function (evt, data) {
var args = JSON.parse(data).args;
if (args[0] === 'org.apache.cordova.camera') {
if (args[0] === 'cordova-plugin-camera') {
if (args[1] === 'cancel') {
cancel('User canceled');
} else if (args[1] === 'error') {
+18 -18
View File
@@ -130,8 +130,8 @@ static NSString* toBase64(NSData* data) {
[self.commandDelegate runInBackground:^{
CDVPictureOptions* pictureOptions = [CDVPictureOptions createFromTakePictureArguments:command];
pictureOptions.popoverSupported = [self popoverSupported];
pictureOptions.usesGeolocation = [self usesGeolocation];
pictureOptions.popoverSupported = [weakSelf popoverSupported];
pictureOptions.usesGeolocation = [weakSelf usesGeolocation];
pictureOptions.cropToSize = NO;
BOOL hasCamera = [UIImagePickerController isSourceTypeAvailable:pictureOptions.sourceType];
@@ -142,13 +142,6 @@ static NSString* toBase64(NSData* data) {
return;
}
// If a popover is already open, close it; we only want one at a time.
if (([[weakSelf pickerController] pickerPopoverController] != nil) && [[[weakSelf pickerController] pickerPopoverController] isPopoverVisible]) {
[[[weakSelf pickerController] pickerPopoverController] dismissPopoverAnimated:YES];
[[[weakSelf pickerController] pickerPopoverController] setDelegate:nil];
[[weakSelf pickerController] setPickerPopoverController:nil];
}
CDVCameraPicker* cameraPicker = [CDVCameraPicker createFromPictureOptions:pictureOptions];
weakSelf.pickerController = cameraPicker;
@@ -157,20 +150,27 @@ static NSString* toBase64(NSData* data) {
// we need to capture this state for memory warnings that dealloc this object
cameraPicker.webView = weakSelf.webView;
if ([weakSelf popoverSupported] && (pictureOptions.sourceType != UIImagePickerControllerSourceTypeCamera)) {
if (cameraPicker.pickerPopoverController == nil) {
cameraPicker.pickerPopoverController = [[NSClassFromString(@"UIPopoverController") alloc] initWithContentViewController:cameraPicker];
// Perform UI operations on the main thread
dispatch_async(dispatch_get_main_queue(), ^{
// If a popover is already open, close it; we only want one at a time.
if (([[weakSelf pickerController] pickerPopoverController] != nil) && [[[weakSelf pickerController] pickerPopoverController] isPopoverVisible]) {
[[[weakSelf pickerController] pickerPopoverController] dismissPopoverAnimated:YES];
[[[weakSelf pickerController] pickerPopoverController] setDelegate:nil];
[[weakSelf pickerController] setPickerPopoverController:nil];
}
[weakSelf displayPopover:pictureOptions.popoverOptions];
weakSelf.hasPendingOperation = NO;
} else {
dispatch_async(dispatch_get_main_queue(), ^{
if ([weakSelf popoverSupported] && (pictureOptions.sourceType != UIImagePickerControllerSourceTypeCamera)) {
if (cameraPicker.pickerPopoverController == nil) {
cameraPicker.pickerPopoverController = [[NSClassFromString(@"UIPopoverController") alloc] initWithContentViewController:cameraPicker];
}
[weakSelf displayPopover:pictureOptions.popoverOptions];
weakSelf.hasPendingOperation = NO;
} else {
[weakSelf.viewController presentViewController:cameraPicker animated:YES completion:^{
weakSelf.hasPendingOperation = NO;
}];
});
}
}
});
}];
}
+3 -3
View File
@@ -21,12 +21,12 @@
<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:rim="http://www.blackberry.com/ns/widgets"
id="org.apache.cordova.camera.tests"
version="0.3.7-dev">
id="cordova-plugin-camera-tests"
version="1.0.0">
<name>Cordova Camera Plugin Tests</name>
<license>Apache 2.0</license>
<dependency id="org.apache.cordova.file" version=">=1.0.1" />
<dependency id="cordova-plugin-file" version=">=2.0.0" />
<js-module src="tests.js" name="tests">
</js-module>
+3 -3
View File
@@ -20,7 +20,7 @@
document.addEventListener('DOMContentLoaded', function () {
document.getElementById('back').onclick = function () {
window.qnx.callExtensionMethod('org.apache.cordova.camera', 'cancel');
window.qnx.callExtensionMethod('cordova-plugin-camera', 'cancel');
};
window.navigator.webkitGetUserMedia(
{ video: true },
@@ -36,11 +36,11 @@ document.addEventListener('DOMContentLoaded', function () {
canvas.width = video.videoWidth;
canvas.height = video.videoHeight;
canvas.getContext('2d').drawImage(video, 0, 0, video.videoWidth, video.videoHeight);
window.qnx.callExtensionMethod('org.apache.cordova.camera', canvas.toDataURL('img/png'));
window.qnx.callExtensionMethod('cordova-plugin-camera', canvas.toDataURL('img/png'));
};
},
function () {
window.qnx.callExtensionMethod('org.apache.cordova.camera', 'error', 'getUserMedia failed');
window.qnx.callExtensionMethod('cordova-plugin-camera', 'error', 'getUserMedia failed');
}
);
});