33 Commits
Author SHA1 Message Date
Ryan Willoughby f94c6129ae [spec] 2.5.0 2013-04-24 14:58:29 -07:00
Ryan Willoughby 4579d40dc0 [spec] removing a maybe bunk spec 2013-04-24 14:58:29 -07:00
Ryan Willoughby 40849d52d6 [spec] removing filsystem init 2013-04-24 14:58:29 -07:00
Ryan Willoughby 2f7d652587 [spec] more specs 2013-04-24 14:58:29 -07:00
Ryan Willoughby c1d0b47929 [spec] formatting for medic 2013-04-24 14:58:29 -07:00
Ryan Willoughby 381ee1c6ac [spec] app id 2013-04-24 14:58:29 -07:00
Ryan Willoughby 560cecc5b8 [spec] Fixed spec 2013-04-24 14:58:29 -07:00
Ryan Willoughby a0373c766f [spec] app id, title 2013-04-24 14:58:29 -07:00
Ryan Willoughby f9e3d0cffa [spec] fixing spec app 2013-04-24 14:58:29 -07:00
Ryan Willoughby 604ebdf144 [spec] add barcodescanner.js 2013-04-24 14:58:29 -07:00
Ryan Willoughby 7c47973f78 [spec] Initial version of spec 2013-04-24 14:58:28 -07:00
Bob EasterdayandRyan Willoughby 1661cc4387 update BarcodeScanner plugin for 2.5.0+ 2013-04-24 14:58:28 -07:00
Ryan Willoughby 15b5cb9442 Merge pull request #14 from jwark/do_not_copy_to_clipboard
Android: Do not copy the scanned barcode to the clipboard.
2013-04-11 15:49:55 -07:00
Justin Wark 1d8ee5ca8d Do not copy the scanned barcode to the clipboard. 2013-03-26 12:20:55 +11:00
Ryan Willoughby 3c73e21796 Merge pull request #7 from JaysonRaymond/master
Updates for Cordova/PhoneGap's 2.0 plugins
2013-03-05 11:22:50 -08:00
Ryan Willoughby bb3812c0cb [iOS][2.3.0] add plugin to config.xml for 2.3.0+
+ upped version to 0.3.0
2013-01-31 17:17:26 -08:00
Jayson Raymond c7158af58e readme fix 2013-01-10 15:54:44 -08:00
Jayson Raymond 3f166162a0 Update for Cordova/PhoneGap 2.0 plugins (http://simonmacdonald.blogspot.ca/2012/08/so-you-wanna-write-phonegap-200-android.html) 2013-01-07 15:49:52 -08:00
Ryan Willoughby 029cb4de7d [0.2.2] updated version 2012-12-17 16:46:56 -08:00
Ryan Willoughby 1e2535ad01 [ios] Fixes AVCaptureSession leak, thanks @markus-olsson 2012-12-17 16:45:54 -08:00
Ryan Willoughby 695f524777 [android] syntax error, missing else 2012-12-17 16:40:47 -08:00
Ryan Willoughby 084594d86c [0.2.1][ios] lock scanner to portrait 2012-12-12 13:11:02 -08:00
Ryan Willoughby 87ffa13f2c [0.2.0] updated version 2012-11-08 17:50:12 -08:00
Ryan Willoughby 413b023697 [ios] lock scanner orientation to portrait 2012-11-08 17:45:38 -08:00
Ryan Willoughby 566c1f166a [0.1.2] version update 2012-11-08 13:42:45 -08:00
Ryan Willoughby e0f7b9a33e [ios] Integrated shazron's iOS6 orientation updates 2012-11-08 13:33:39 -08:00
Ryan Willoughby f1fb499e42 [version] updated to 0.1.1 2012-10-29 11:39:44 -07:00
Ryan Willoughby b145a21012 [android] Removed app_name string resource
+ and menu_settings, from non-english strings.xml
+ Fixes #2
2012-10-29 11:17:44 -07:00
Ryan Willoughby 7119054ce6 [readme] corrected supported types for iOS
+ Fixes #1, thanks @shazron
2012-10-25 11:38:13 -07:00
Ryan Willoughby 9211290b76 [readme] 2012-10-24 15:08:47 -07:00
Ryan Willoughby 89ed372737 [readme] 2012-10-18 14:35:39 -07:00
Ryan Willoughby 3e3093969f [0.1.0] version updated 2012-10-18 14:16:05 -07:00
Ryan Willoughby 47a8bdd29c [android] Added translated resource files 2012-10-18 14:10:38 -07:00
44 changed files with 3727 additions and 181 deletions
+84 -3
View File
@@ -1,11 +1,92 @@
BarcodeScanner
==============
cross-platform BarcodeScanner for Cordova / PhoneGap
Cross-platform BarcodeScanner for Cordova / PhoneGap.
follows the Cordova Plugin spec https://github.com/alunny/cordova-plugin-spec
Follows the [Cordova Plugin spec](https://github.com/alunny/cordova-plugin-spec), so that it works with [Pluginstall](https://github.com/alunny/pluginstall).
This plugin leverages Cordova/PhoneGap's [require/define functionality used for plugins](http://simonmacdonald.blogspot.ca/2012/08/so-you-wanna-write-phonegap-200-android.html).
Note: the Android source for this project includes an Android Library Project.
pluginstall currently doesn't support Library Project refs, so its been
prebuilt as a jar library. Any updates to the Library Project should be
committed with an updated jar.
## Using the plugin ##
The plugin creates the object `cordova/plugin/BarcodeScanner` with the method `scan(success, fail)`.
The following barcode types are currently supported:
### Android
* QR_CODE
* DATA_MATRIX
* UPC_E
* UPC_A
* EAN_8
* EAN_13
* CODE_128
* CODE_39
* CODE_93
* CODABAR
* ITF
* RSS14
* PDF417
* RSS_EXPANDED
### iOS
* QR_CODE
* DATA_MATRIX
* UPC_E
* UPC_A
* EAN_8
* EAN_13
* CODE_128
* CODE_3
`success` and `fail` are callback functions. Success is passed an object with data, type and cancelled properties. Data is the text representation of the barcode data, type is the type of barcode detected and cancelled is whether or not the user cancelled the scan.
A full example could be:
var scanner = window.PhoneGap.require("cordova/plugin/BarcodeScanner");
scanner.scan(
function (result) {
alert("We got a barcode\n" +
"Result: " + result.text + "\n" +
"Format: " + result.format + "\n" +
"Cancelled: " + result.cancelled);
},
function (error) {
alert("Scanning failed: " + error);
}
);
## Encoding a Barcode ##
The plugin creates the object `window.plugins.barcodeScanner` with the method `encode(type, data, success, fail)`.
Supported encoding types:
* TEXT_TYPE
* EMAIL_TYPE
* PHONE_TYPE
* SMS_TYPE
A full example could be:
var scanner = window.PhoneGap.require("cordova/plugin/BarcodeScanner");
scanner.encode(BarcodeScanner.Encode.TEXT_TYPE, "http://www.nytimes.com", function(success) {
alert("encode success: " + success);
}, function(fail) {
alert("encoding failed: " + fail);
}
);
## Thanks on Github ##
So many -- check out the original [iOS](https://github.com/phonegap/phonegap-plugins/tree/master/iOS/BarcodeScanner) and [Android](https://github.com/phonegap/phonegap-plugins/tree/master/Android/BarcodeScanner) repos.
so that it works with Pluginstall https://github.com/alunny/pluginstall
## Licence ##
+29 -72
View File
@@ -2,7 +2,7 @@
<plugin xmlns="http://www.phonegap.com/ns/plugins/1.0"
xmlns:android="http://schemas.android.com/apk/res/android"
id="com.phonegap.plugins.barcodescanner"
version="0.0.1">
version="0.3.1">
<name>BarcodeScanner</name>
@@ -12,6 +12,11 @@
<platform name="ios">
<plugins-plist key="BarcodeScanner" string="CDVBarcodeScanner" />
<!-- Cordova >= 2.3 -->
<config-file target="config.xml" parent="plugins">
<plugin name="BarcodeScanner" value="CDVBarcodeScanner"/>
</config-file>
<resource-file src="scannerOverlay.xib" />
<header-file src="zxing-all-in-one.h" />
@@ -38,7 +43,7 @@
value="com.phonegap.plugins.barcodescanner.BarcodeScanner"/>
</config-file>
<config-file target="res/xml/config.xml" parent="/cordova/plugins">
<config-file target="res/xml/config.xml" parent="plugins">
<plugin name="BarcodeScanner"
value="com.phonegap.plugins.barcodescanner.BarcodeScanner"/>
</config-file>
@@ -232,77 +237,29 @@
<string name="zxing_url">http://code.google.com/p/zxing</string>
</config-file>
<!--
./values-ar:
strings.xml
<source-file src="LibraryProject/res/values-ar/strings.xml" target-dir="res/values-ar"/>
<source-file src="LibraryProject/res/values-bg/strings.xml" target-dir="res/values-bg"/>
<source-file src="LibraryProject/res/values-cs/strings.xml" target-dir="res/values-cs"/>
<source-file src="LibraryProject/res/values-da/strings.xml" target-dir="res/values-da"/>
<source-file src="LibraryProject/res/values-de/strings.xml" target-dir="res/values-de"/>
<source-file src="LibraryProject/res/values-es/strings.xml" target-dir="res/values-es"/>
<source-file src="LibraryProject/res/values-fi/strings.xml" target-dir="res/values-fi"/>
<source-file src="LibraryProject/res/values-fr/strings.xml" target-dir="res/values-fr"/>
<source-file src="LibraryProject/res/values-he/strings.xml" target-dir="res/values-he"/>
<source-file src="LibraryProject/res/values-hu/strings.xml" target-dir="res/values-hu"/>
<source-file src="LibraryProject/res/values-it/strings.xml" target-dir="res/values-it"/>
<source-file src="LibraryProject/res/values-ja-rJP/strings.xml" target-dir="res/values-ja-rJP"/>
<source-file src="LibraryProject/res/values-nl/strings.xml" target-dir="res/values-nl"/>
<source-file src="LibraryProject/res/values-pl/strings.xml" target-dir="res/values-pl"/>
<source-file src="LibraryProject/res/values-pt/strings.xml" target-dir="res/values-pt"/>
<source-file src="LibraryProject/res/values-ru/strings.xml" target-dir="res/values-ru"/>
<source-file src="LibraryProject/res/values-sk/strings.xml" target-dir="res/values-sk"/>
<source-file src="LibraryProject/res/values-sl/strings.xml" target-dir="res/values-sl"/>
<source-file src="LibraryProject/res/values-sv/strings.xml" target-dir="res/values-sv"/>
<source-file src="LibraryProject/res/values-tr/strings.xml" target-dir="res/values-tr"/>
<source-file src="LibraryProject/res/values-zh-rCN/strings.xml" target-dir="res/values-zh-rCN"/>
<source-file src="LibraryProject/res/values-zh-rTW/strings.xml" target-dir="res/values-zh-rTW"/>
./values-bg:
strings.xml
./values-cs:
strings.xml
./values-da:
strings.xml
./values-de:
strings.xml
./values-es:
strings.xml
./values-fi:
strings.xml
./values-fr:
strings.xml
./values-he:
strings.xml
./values-hu:
strings.xml
./values-it:
strings.xml
./values-ja-rJP:
strings.xml
./values-kr:
strings.xml
./values-nl:
strings.xml
./values-pl:
strings.xml
./values-pt:
strings.xml
./values-ru:
strings.xml
./values-sk:
strings.xml
./values-sl:
strings.xml
./values-sv:
strings.xml
./values-tr:
strings.xml
./values-zh-rCN:
strings.xml
./values-zh-rTW:
strings.xml
-->
</platform>
</plugin>
+53
View File
@@ -0,0 +1,53 @@
/*
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*/
describe('Plugin object (window.plugins)', function () {
it("should exist", function() {
expect(window.plugins).toBeDefined();
});
it("should contain a barcodeScanner object", function() {
expect(window.plugins.barcodeScanner).toBeDefined();
expect(typeof window.plugins.barcodeScanner == 'object').toBe(true);
});
it("should contain a scan function", function() {
expect(window.plugins.barcodeScanner.scan).toBeDefined();
expect(typeof window.plugins.barcodeScanner.scan == 'function').toBe(true);
});
it("should contain an encode function", function() {
expect(window.plugins.barcodeScanner.encode).toBeDefined();
expect(typeof window.plugins.barcodeScanner.encode == 'function').toBe(true);
});
it("should contain three DestinationType constants", function() {
expect(BarcodeScanner.Encode.TEXT_TYPE).toBe("TEXT_TYPE");
expect(BarcodeScanner.Encode.EMAIL_TYPE).toBe("EMAIL_TYPE");
expect(BarcodeScanner.Encode.PHONE_TYPE).toBe("PHONE_TYPE");
expect(BarcodeScanner.Encode.SMS_TYPE).toBe("SMS_TYPE");
});
/*
it("should call scan successfully", function() {
window.plugins.barcodeScanner.scan(function() {}, function() {});
});
*/
});
+20
View File
@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<widget xmlns = "http://www.w3.org/ns/widgets"
xmlns:gap = "http://phonegap.com/ns/1.0"
id = "com.phonegap.hydratest"
version = "2.0.0">
<name>cordovaExample</name>
<description>
Barcode Scanner Spec
</description>
<author href="http://phonegap.com" email="support@phonegap.com">
Ryan Willoughby - PhoneGap Team
</author>
<gap:preference name="phonegap-version" value="2.5.0" />
<gap:plugin name="BarcodeScanner"/>
</widget>
+101
View File
@@ -0,0 +1,101 @@
jasmine.HtmlReporter = function(_doc) {
var self = this;
var doc = _doc || window.document;
var reporterView;
var dom = {};
// Jasmine Reporter Public Interface
self.logRunningSpecs = false;
self.reportRunnerStarting = function(runner) {
var specs = runner.specs() || [];
if (specs.length == 0) {
return;
}
createReporterDom(runner.env.versionString());
doc.body.appendChild(dom.reporter);
reporterView = new jasmine.HtmlReporter.ReporterView(dom);
reporterView.addSpecs(specs, self.specFilter);
};
self.reportRunnerResults = function(runner) {
reporterView && reporterView.complete();
};
self.reportSuiteResults = function(suite) {
reporterView.suiteComplete(suite);
};
self.reportSpecStarting = function(spec) {
if (self.logRunningSpecs) {
self.log('>> Jasmine Running ' + spec.suite.description + ' ' + spec.description + '...');
}
};
self.reportSpecResults = function(spec) {
reporterView.specComplete(spec);
};
self.log = function() {
var console = jasmine.getGlobal().console;
if (console && console.log) {
if (console.log.apply) {
console.log.apply(console, arguments);
} else {
console.log(arguments); // ie fix: console.log.apply doesn't exist on ie
}
}
};
self.specFilter = function(spec) {
if (!focusedSpecName()) {
return true;
}
return spec.getFullName().indexOf(focusedSpecName()) === 0;
};
return self;
function focusedSpecName() {
var specName;
(function memoizeFocusedSpec() {
if (specName) {
return;
}
var paramMap = [];
var params = doc.location.search.substring(1).split('&');
for (var i = 0; i < params.length; i++) {
var p = params[i].split('=');
paramMap[decodeURIComponent(p[0])] = decodeURIComponent(p[1]);
}
specName = paramMap.spec;
})();
return specName;
}
function createReporterDom(version) {
dom.reporter = self.createDom('div', { id: 'HTMLReporter', className: 'jasmine_reporter' },
dom.banner = self.createDom('div', { className: 'banner' },
self.createDom('span', { className: 'title' }, "Jasmine "),
self.createDom('span', { className: 'version' }, version)),
dom.symbolSummary = self.createDom('ul', {className: 'symbolSummary'}),
dom.alert = self.createDom('div', {className: 'alert'}),
dom.results = self.createDom('div', {className: 'results'},
dom.summary = self.createDom('div', { className: 'summary' }),
dom.details = self.createDom('div', { id: 'details' }))
);
}
};
jasmine.HtmlReporterHelpers.addHelpers(jasmine.HtmlReporter);
+60
View File
@@ -0,0 +1,60 @@
jasmine.HtmlReporterHelpers = {};
jasmine.HtmlReporterHelpers.createDom = function(type, attrs, childrenVarArgs) {
var el = document.createElement(type);
for (var i = 2; i < arguments.length; i++) {
var child = arguments[i];
if (typeof child === 'string') {
el.appendChild(document.createTextNode(child));
} else {
if (child) {
el.appendChild(child);
}
}
}
for (var attr in attrs) {
if (attr == "className") {
el[attr] = attrs[attr];
} else {
el.setAttribute(attr, attrs[attr]);
}
}
return el;
};
jasmine.HtmlReporterHelpers.getSpecStatus = function(child) {
var results = child.results();
var status = results.passed() ? 'passed' : 'failed';
if (results.skipped) {
status = 'skipped';
}
return status;
};
jasmine.HtmlReporterHelpers.appendToSummary = function(child, childElement) {
var parentDiv = this.dom.summary;
var parentSuite = (typeof child.parentSuite == 'undefined') ? 'suite' : 'parentSuite';
var parent = child[parentSuite];
if (parent) {
if (typeof this.views.suites[parent.id] == 'undefined') {
this.views.suites[parent.id] = new jasmine.HtmlReporter.SuiteView(parent, this.dom, this.views);
}
parentDiv = this.views.suites[parent.id].element;
}
parentDiv.appendChild(childElement);
};
jasmine.HtmlReporterHelpers.addHelpers = function(ctor) {
for(var fn in jasmine.HtmlReporterHelpers) {
ctor.prototype[fn] = jasmine.HtmlReporterHelpers[fn];
}
};
+164
View File
@@ -0,0 +1,164 @@
jasmine.HtmlReporter.ReporterView = function(dom) {
this.startedAt = new Date();
this.runningSpecCount = 0;
this.completeSpecCount = 0;
this.passedCount = 0;
this.failedCount = 0;
this.skippedCount = 0;
this.createResultsMenu = function() {
this.resultsMenu = this.createDom('span', {className: 'resultsMenu bar'},
this.summaryMenuItem = this.createDom('a', {className: 'summaryMenuItem', href: "#"}, '0 specs'),
' | ',
this.detailsMenuItem = this.createDom('a', {className: 'detailsMenuItem', href: "#"}, '0 failing'));
this.summaryMenuItem.onclick = function() {
dom.reporter.className = dom.reporter.className.replace(/ showDetails/g, '');
};
this.detailsMenuItem.onclick = function() {
showDetails();
};
};
this.addSpecs = function(specs, specFilter) {
this.totalSpecCount = specs.length;
this.views = {
specs: {},
suites: {}
};
for (var i = 0; i < specs.length; i++) {
var spec = specs[i];
this.views.specs[spec.id] = new jasmine.HtmlReporter.SpecView(spec, dom, this.views);
if (specFilter(spec)) {
this.runningSpecCount++;
}
}
};
this.specComplete = function(spec) {
this.completeSpecCount++;
if (isUndefined(this.views.specs[spec.id])) {
this.views.specs[spec.id] = new jasmine.HtmlReporter.SpecView(spec, dom);
}
var specView = this.views.specs[spec.id];
switch (specView.status()) {
case 'passed':
this.passedCount++;
break;
case 'failed':
this.failedCount++;
break;
case 'skipped':
this.skippedCount++;
break;
}
specView.refresh();
this.refresh();
};
this.suiteComplete = function(suite) {
var suiteView = this.views.suites[suite.id];
if (isUndefined(suiteView)) {
return;
}
suiteView.refresh();
};
this.refresh = function() {
if (isUndefined(this.resultsMenu)) {
this.createResultsMenu();
}
// currently running UI
if (isUndefined(this.runningAlert)) {
this.runningAlert = this.createDom('a', {href: "?", className: "runningAlert bar"});
dom.alert.appendChild(this.runningAlert);
}
this.runningAlert.innerHTML = "Running " + this.completeSpecCount + " of " + specPluralizedFor(this.totalSpecCount);
// skipped specs UI
if (isUndefined(this.skippedAlert)) {
this.skippedAlert = this.createDom('a', {href: "?", className: "skippedAlert bar"});
}
this.skippedAlert.innerHTML = "Skipping " + this.skippedCount + " of " + specPluralizedFor(this.totalSpecCount) + " - run all";
if (this.skippedCount === 1 && isDefined(dom.alert)) {
dom.alert.appendChild(this.skippedAlert);
}
// passing specs UI
if (isUndefined(this.passedAlert)) {
this.passedAlert = this.createDom('span', {href: "?", className: "passingAlert bar"});
}
this.passedAlert.innerHTML = "Passing " + specPluralizedFor(this.passedCount);
// failing specs UI
if (isUndefined(this.failedAlert)) {
this.failedAlert = this.createDom('span', {href: "?", className: "failingAlert bar"});
}
this.failedAlert.innerHTML = "Failing " + specPluralizedFor(this.failedCount);
if (this.failedCount === 1 && isDefined(dom.alert)) {
dom.alert.appendChild(this.failedAlert);
dom.alert.appendChild(this.resultsMenu);
}
// summary info
this.summaryMenuItem.innerHTML = "" + specPluralizedFor(this.runningSpecCount);
this.detailsMenuItem.innerHTML = "" + this.failedCount + " failing";
};
this.complete = function() {
dom.alert.removeChild(this.runningAlert);
this.skippedAlert.innerHTML = "Ran " + this.runningSpecCount + " of " + specPluralizedFor(this.totalSpecCount) + " - run all";
if (this.failedCount === 0) {
dom.alert.appendChild(this.createDom('span', {className: 'passingAlert bar'}, "Passing " + specPluralizedFor(this.passedCount)));
} else {
showDetails();
}
dom.banner.appendChild(this.createDom('span', {className: 'duration'}, "finished in " + ((new Date().getTime() - this.startedAt.getTime()) / 1000) + "s"));
};
return this;
function showDetails() {
if (dom.reporter.className.search(/showDetails/) === -1) {
dom.reporter.className += " showDetails";
}
}
function isUndefined(obj) {
return typeof obj === 'undefined';
}
function isDefined(obj) {
return !isUndefined(obj);
}
function specPluralizedFor(count) {
var str = count + " spec";
if (count > 1) {
str += "s"
}
return str;
}
};
jasmine.HtmlReporterHelpers.addHelpers(jasmine.HtmlReporter.ReporterView);
+79
View File
@@ -0,0 +1,79 @@
jasmine.HtmlReporter.SpecView = function(spec, dom, views) {
this.spec = spec;
this.dom = dom;
this.views = views;
this.symbol = this.createDom('li', { className: 'pending' });
this.dom.symbolSummary.appendChild(this.symbol);
this.summary = this.createDom('div', { className: 'specSummary' },
this.createDom('a', {
className: 'description',
href: '?spec=' + encodeURIComponent(this.spec.getFullName()),
title: this.spec.getFullName()
}, this.spec.description)
);
this.detail = this.createDom('div', { className: 'specDetail' },
this.createDom('a', {
className: 'description',
href: '?spec=' + encodeURIComponent(this.spec.getFullName()),
title: this.spec.getFullName()
}, this.spec.getFullName())
);
};
jasmine.HtmlReporter.SpecView.prototype.status = function() {
return this.getSpecStatus(this.spec);
};
jasmine.HtmlReporter.SpecView.prototype.refresh = function() {
this.symbol.className = this.status();
switch (this.status()) {
case 'skipped':
break;
case 'passed':
this.appendSummaryToSuiteDiv();
break;
case 'failed':
this.appendSummaryToSuiteDiv();
this.appendFailureDetail();
break;
}
};
jasmine.HtmlReporter.SpecView.prototype.appendSummaryToSuiteDiv = function() {
this.summary.className += ' ' + this.status();
this.appendToSummary(this.spec, this.summary);
};
jasmine.HtmlReporter.SpecView.prototype.appendFailureDetail = function() {
this.detail.className += ' ' + this.status();
var resultItems = this.spec.results().getItems();
var messagesDiv = this.createDom('div', { className: 'messages' });
for (var i = 0; i < resultItems.length; i++) {
var result = resultItems[i];
if (result.type == 'log') {
messagesDiv.appendChild(this.createDom('div', {className: 'resultMessage log'}, result.toString()));
} else if (result.type == 'expect' && result.passed && !result.passed()) {
messagesDiv.appendChild(this.createDom('div', {className: 'resultMessage fail'}, result.message));
if (result.trace.stack) {
messagesDiv.appendChild(this.createDom('div', {className: 'stackTrace'}, result.trace.stack));
}
}
}
if (messagesDiv.childNodes.length > 0) {
this.detail.appendChild(messagesDiv);
this.dom.details.appendChild(this.detail);
}
};
jasmine.HtmlReporterHelpers.addHelpers(jasmine.HtmlReporter.SpecView);
+22
View File
@@ -0,0 +1,22 @@
jasmine.HtmlReporter.SuiteView = function(suite, dom, views) {
this.suite = suite;
this.dom = dom;
this.views = views;
this.element = this.createDom('div', { className: 'suite' },
this.createDom('a', { className: 'description', href: '?spec=' + encodeURIComponent(this.suite.getFullName()) }, this.suite.description)
);
this.appendToSummary(this.suite, this.element);
};
jasmine.HtmlReporter.SuiteView.prototype.status = function() {
return this.getSpecStatus(this.suite);
};
jasmine.HtmlReporter.SuiteView.prototype.refresh = function() {
this.element.className += " " + this.status();
};
jasmine.HtmlReporterHelpers.addHelpers(jasmine.HtmlReporter.SuiteView);
+192
View File
@@ -0,0 +1,192 @@
/* @deprecated Use jasmine.HtmlReporter instead
*/
jasmine.TrivialReporter = function(doc) {
this.document = doc || document;
this.suiteDivs = {};
this.logRunningSpecs = false;
};
jasmine.TrivialReporter.prototype.createDom = function(type, attrs, childrenVarArgs) {
var el = document.createElement(type);
for (var i = 2; i < arguments.length; i++) {
var child = arguments[i];
if (typeof child === 'string') {
el.appendChild(document.createTextNode(child));
} else {
if (child) { el.appendChild(child); }
}
}
for (var attr in attrs) {
if (attr == "className") {
el[attr] = attrs[attr];
} else {
el.setAttribute(attr, attrs[attr]);
}
}
return el;
};
jasmine.TrivialReporter.prototype.reportRunnerStarting = function(runner) {
var showPassed, showSkipped;
this.outerDiv = this.createDom('div', { id: 'TrivialReporter', className: 'jasmine_reporter' },
this.createDom('div', { className: 'banner' },
this.createDom('div', { className: 'logo' },
this.createDom('span', { className: 'title' }, "Jasmine"),
this.createDom('span', { className: 'version' }, runner.env.versionString())),
this.createDom('div', { className: 'options' },
"Show ",
showPassed = this.createDom('input', { id: "__jasmine_TrivialReporter_showPassed__", type: 'checkbox' }),
this.createDom('label', { "for": "__jasmine_TrivialReporter_showPassed__" }, " passed "),
showSkipped = this.createDom('input', { id: "__jasmine_TrivialReporter_showSkipped__", type: 'checkbox' }),
this.createDom('label', { "for": "__jasmine_TrivialReporter_showSkipped__" }, " skipped")
)
),
this.runnerDiv = this.createDom('div', { className: 'runner running' },
this.createDom('a', { className: 'run_spec', href: '?' }, "run all"),
this.runnerMessageSpan = this.createDom('span', {}, "Running..."),
this.finishedAtSpan = this.createDom('span', { className: 'finished-at' }, ""))
);
this.document.body.appendChild(this.outerDiv);
var suites = runner.suites();
for (var i = 0; i < suites.length; i++) {
var suite = suites[i];
var suiteDiv = this.createDom('div', { className: 'suite' },
this.createDom('a', { className: 'run_spec', href: '?spec=' + encodeURIComponent(suite.getFullName()) }, "run"),
this.createDom('a', { className: 'description', href: '?spec=' + encodeURIComponent(suite.getFullName()) }, suite.description));
this.suiteDivs[suite.id] = suiteDiv;
var parentDiv = this.outerDiv;
if (suite.parentSuite) {
parentDiv = this.suiteDivs[suite.parentSuite.id];
}
parentDiv.appendChild(suiteDiv);
}
this.startedAt = new Date();
var self = this;
showPassed.onclick = function(evt) {
if (showPassed.checked) {
self.outerDiv.className += ' show-passed';
} else {
self.outerDiv.className = self.outerDiv.className.replace(/ show-passed/, '');
}
};
showSkipped.onclick = function(evt) {
if (showSkipped.checked) {
self.outerDiv.className += ' show-skipped';
} else {
self.outerDiv.className = self.outerDiv.className.replace(/ show-skipped/, '');
}
};
};
jasmine.TrivialReporter.prototype.reportRunnerResults = function(runner) {
var results = runner.results();
var className = (results.failedCount > 0) ? "runner failed" : "runner passed";
this.runnerDiv.setAttribute("class", className);
//do it twice for IE
this.runnerDiv.setAttribute("className", className);
var specs = runner.specs();
var specCount = 0;
for (var i = 0; i < specs.length; i++) {
if (this.specFilter(specs[i])) {
specCount++;
}
}
var message = "" + specCount + " spec" + (specCount == 1 ? "" : "s" ) + ", " + results.failedCount + " failure" + ((results.failedCount == 1) ? "" : "s");
message += " in " + ((new Date().getTime() - this.startedAt.getTime()) / 1000) + "s";
this.runnerMessageSpan.replaceChild(this.createDom('a', { className: 'description', href: '?'}, message), this.runnerMessageSpan.firstChild);
this.finishedAtSpan.appendChild(document.createTextNode("Finished at " + new Date().toString()));
};
jasmine.TrivialReporter.prototype.reportSuiteResults = function(suite) {
var results = suite.results();
var status = results.passed() ? 'passed' : 'failed';
if (results.totalCount === 0) { // todo: change this to check results.skipped
status = 'skipped';
}
this.suiteDivs[suite.id].className += " " + status;
};
jasmine.TrivialReporter.prototype.reportSpecStarting = function(spec) {
if (this.logRunningSpecs) {
this.log('>> Jasmine Running ' + spec.suite.description + ' ' + spec.description + '...');
}
};
jasmine.TrivialReporter.prototype.reportSpecResults = function(spec) {
var results = spec.results();
var status = results.passed() ? 'passed' : 'failed';
if (results.skipped) {
status = 'skipped';
}
var specDiv = this.createDom('div', { className: 'spec ' + status },
this.createDom('a', { className: 'run_spec', href: '?spec=' + encodeURIComponent(spec.getFullName()) }, "run"),
this.createDom('a', {
className: 'description',
href: '?spec=' + encodeURIComponent(spec.getFullName()),
title: spec.getFullName()
}, spec.description));
var resultItems = results.getItems();
var messagesDiv = this.createDom('div', { className: 'messages' });
for (var i = 0; i < resultItems.length; i++) {
var result = resultItems[i];
if (result.type == 'log') {
messagesDiv.appendChild(this.createDom('div', {className: 'resultMessage log'}, result.toString()));
} else if (result.type == 'expect' && result.passed && !result.passed()) {
messagesDiv.appendChild(this.createDom('div', {className: 'resultMessage fail'}, result.message));
if (result.trace.stack) {
messagesDiv.appendChild(this.createDom('div', {className: 'stackTrace'}, result.trace.stack));
}
}
}
if (messagesDiv.childNodes.length > 0) {
specDiv.appendChild(messagesDiv);
}
this.suiteDivs[spec.suite.id].appendChild(specDiv);
};
jasmine.TrivialReporter.prototype.log = function() {
var console = jasmine.getGlobal().console;
if (console && console.log) {
if (console.log.apply) {
console.log.apply(console, arguments);
} else {
console.log(arguments); // ie fix: console.log.apply doesn't exist on ie
}
}
};
jasmine.TrivialReporter.prototype.getLocation = function() {
return this.document.location;
};
jasmine.TrivialReporter.prototype.specFilter = function(spec) {
var paramMap = {};
var params = this.getLocation().search.substring(1).split('&');
for (var i = 0; i < params.length; i++) {
var p = params[i].split('=');
paramMap[decodeURIComponent(p[0])] = decodeURIComponent(p[1]);
}
if (!paramMap.spec) {
return true;
}
return spec.getFullName().indexOf(paramMap.spec) === 0;
};
+75
View File
@@ -0,0 +1,75 @@
<!DOCTYPE html>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<html>
<head>
<title>Cordova: API Specs</title>
<meta name="viewport" content="width=device-width, height=device-height, user-scalable=yes, initial-scale=1.0;" />
<!-- Load jasmine -->
<link href="jasmine.css" rel="stylesheet"/>
<script type="text/javascript" src="jasmine.js"></script>
<script type="text/javascript" src="html/HtmlReporterHelpers.js"></script>
<script type="text/javascript" src="html/HtmlReporter.js"></script>
<script type="text/javascript" src="html/ReporterView.js"></script>
<script type="text/javascript" src="html/SpecView.js"></script>
<script type="text/javascript" src="html/SuiteView.js"></script>
<script type="text/javascript" src="html/TrivialReporter.js"></script>
<script type="text/javascript" src="jasmine-jsreporter.js"></script>
<!-- Source -->
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript" src="barcodescanner.js"></script>
<!-- Load Test Runner -->
<script type="text/javascript" src="test-runner.js"></script>
<!-- Tests -->
<script type="text/javascript" src="barcodescanner.tests.js"></script>
<script type="text/javascript">
document.addEventListener('deviceready', function () {
// Once root is set up, fire off tests
var jasmineEnv = jasmine.getEnv();
jasmineEnv.updateInterval = 1000;
var htmlReporter = new jasmine.HtmlReporter();
jasmineEnv.addReporter(htmlReporter);jasmineEnv.addReporter(jr);
jasmineEnv.specFilter = function(spec) {
return htmlReporter.specFilter(spec);
};
jasmineEnv.execute();
}, false);
</script>
</head>
<body>
<a href="javascript:" class="backBtn" onclick="backHome();">Back</a>
</body>
</html>
+81
View File
@@ -0,0 +1,81 @@
body { background-color: #eeeeee; padding: 0; margin: 5px; overflow-y: scroll; }
#HTMLReporter { font-size: 11px; font-family: Monaco, "Lucida Console", monospace; line-height: 14px; color: #333333; }
#HTMLReporter a { text-decoration: none; }
#HTMLReporter a:hover { text-decoration: underline; }
#HTMLReporter p, #HTMLReporter h1, #HTMLReporter h2, #HTMLReporter h3, #HTMLReporter h4, #HTMLReporter h5, #HTMLReporter h6 { margin: 0; line-height: 14px; }
#HTMLReporter .banner, #HTMLReporter .symbolSummary, #HTMLReporter .summary, #HTMLReporter .resultMessage, #HTMLReporter .specDetail .description, #HTMLReporter .alert .bar, #HTMLReporter .stackTrace { padding-left: 9px; padding-right: 9px; }
#HTMLReporter #jasmine_content { position: fixed; right: 100%; }
#HTMLReporter .version { color: #aaaaaa; }
#HTMLReporter .banner { margin-top: 14px; }
#HTMLReporter .duration { color: #aaaaaa; float: right; }
#HTMLReporter .symbolSummary { overflow: hidden; *zoom: 1; margin: 14px 0; }
#HTMLReporter .symbolSummary li { display: block; float: left; height: 7px; width: 14px; margin-bottom: 7px; font-size: 16px; }
#HTMLReporter .symbolSummary li.passed { font-size: 14px; }
#HTMLReporter .symbolSummary li.passed:before { color: #5e7d00; content: "\02022"; }
#HTMLReporter .symbolSummary li.failed { line-height: 9px; }
#HTMLReporter .symbolSummary li.failed:before { color: #b03911; content: "x"; font-weight: bold; margin-left: -1px; }
#HTMLReporter .symbolSummary li.skipped { font-size: 14px; }
#HTMLReporter .symbolSummary li.skipped:before { color: #bababa; content: "\02022"; }
#HTMLReporter .symbolSummary li.pending { line-height: 11px; }
#HTMLReporter .symbolSummary li.pending:before { color: #aaaaaa; content: "-"; }
#HTMLReporter .bar { line-height: 28px; font-size: 14px; display: block; color: #eee; }
#HTMLReporter .runningAlert { background-color: #666666; }
#HTMLReporter .skippedAlert { background-color: #aaaaaa; }
#HTMLReporter .skippedAlert:first-child { background-color: #333333; }
#HTMLReporter .skippedAlert:hover { text-decoration: none; color: white; text-decoration: underline; }
#HTMLReporter .passingAlert { background-color: #a6b779; }
#HTMLReporter .passingAlert:first-child { background-color: #5e7d00; }
#HTMLReporter .failingAlert { background-color: #cf867e; }
#HTMLReporter .failingAlert:first-child { background-color: #b03911; }
#HTMLReporter .results { margin-top: 14px; }
#HTMLReporter #details { display: none; }
#HTMLReporter .resultsMenu, #HTMLReporter .resultsMenu a { background-color: #fff; color: #333333; }
#HTMLReporter.showDetails .summaryMenuItem { font-weight: normal; text-decoration: inherit; }
#HTMLReporter.showDetails .summaryMenuItem:hover { text-decoration: underline; }
#HTMLReporter.showDetails .detailsMenuItem { font-weight: bold; text-decoration: underline; }
#HTMLReporter.showDetails .summary { display: none; }
#HTMLReporter.showDetails #details { display: block; }
#HTMLReporter .summaryMenuItem { font-weight: bold; text-decoration: underline; }
#HTMLReporter .summary { margin-top: 14px; }
#HTMLReporter .summary .suite .suite, #HTMLReporter .summary .specSummary { margin-left: 14px; }
#HTMLReporter .summary .specSummary.passed a { color: #5e7d00; }
#HTMLReporter .summary .specSummary.failed a { color: #b03911; }
#HTMLReporter .description + .suite { margin-top: 0; }
#HTMLReporter .suite { margin-top: 14px; }
#HTMLReporter .suite a { color: #333333; }
#HTMLReporter #details .specDetail { margin-bottom: 28px; }
#HTMLReporter #details .specDetail .description { display: block; color: white; background-color: #b03911; }
#HTMLReporter .resultMessage { padding-top: 14px; color: #333333; }
#HTMLReporter .resultMessage span.result { display: block; }
#HTMLReporter .stackTrace { margin: 5px 0 0 0; max-height: 224px; overflow: auto; line-height: 18px; color: #666666; border: 1px solid #ddd; background: white; white-space: pre; }
#TrivialReporter { padding: 8px 13px; position: absolute; top: 0; bottom: 0; left: 0; right: 0; overflow-y: scroll; background-color: white; font-family: "Helvetica Neue Light", "Lucida Grande", "Calibri", "Arial", sans-serif; /*.resultMessage {*/ /*white-space: pre;*/ /*}*/ }
#TrivialReporter a:visited, #TrivialReporter a { color: #303; }
#TrivialReporter a:hover, #TrivialReporter a:active { color: blue; }
#TrivialReporter .run_spec { float: right; padding-right: 5px; font-size: .8em; text-decoration: none; }
#TrivialReporter .banner { color: #303; background-color: #fef; padding: 5px; }
#TrivialReporter .logo { float: left; font-size: 1.1em; padding-left: 5px; }
#TrivialReporter .logo .version { font-size: .6em; padding-left: 1em; }
#TrivialReporter .runner.running { background-color: yellow; }
#TrivialReporter .options { text-align: right; font-size: .8em; }
#TrivialReporter .suite { border: 1px outset gray; margin: 5px 0; padding-left: 1em; }
#TrivialReporter .suite .suite { margin: 5px; }
#TrivialReporter .suite.passed { background-color: #dfd; }
#TrivialReporter .suite.failed { background-color: #fdd; }
#TrivialReporter .spec { margin: 5px; padding-left: 1em; clear: both; }
#TrivialReporter .spec.failed, #TrivialReporter .spec.passed, #TrivialReporter .spec.skipped { padding-bottom: 5px; border: 1px solid gray; }
#TrivialReporter .spec.failed { background-color: #fbb; border-color: red; }
#TrivialReporter .spec.passed { background-color: #bfb; border-color: green; }
#TrivialReporter .spec.skipped { background-color: #bbb; }
#TrivialReporter .messages { border-left: 1px dashed gray; padding-left: 1em; padding-right: 1em; }
#TrivialReporter .passed { background-color: #cfc; display: none; }
#TrivialReporter .failed { background-color: #fbb; }
#TrivialReporter .skipped { color: #777; background-color: #eee; display: none; }
#TrivialReporter .resultMessage span.result { display: block; line-height: 2em; color: black; }
#TrivialReporter .resultMessage .mismatch { color: black; }
#TrivialReporter .stackTrace { white-space: pre; font-size: .8em; margin-left: 10px; max-height: 5em; overflow: auto; border: 1px inset red; padding: 1em; background: #eef; }
#TrivialReporter .finished-at { padding-left: 1em; font-size: .6em; }
#TrivialReporter.show-passed .passed, #TrivialReporter.show-skipped .skipped { display: block; }
#TrivialReporter #jasmine_content { position: fixed; right: 100%; }
#TrivialReporter .runner { border: 1px solid gray; display: block; margin: 5px 0; padding: 2px 0 2px 10px; }
+2530
View File
File diff suppressed because it is too large Load Diff
+62
View File
@@ -0,0 +1,62 @@
/*
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*/
if (window.sessionStorage != null) {
window.sessionStorage.clear();
}
// Timeout is 2 seconds to allow physical devices enough
// time to query the response. This is important for some
// Android devices.
var Tests = function() {};
Tests.TEST_TIMEOUT = 7500;
// Creates a spy that will fail if called.
function createDoNotCallSpy(name, opt_extraMessage) {
return jasmine.createSpy().andCallFake(function() {
var errorMessage = name + ' should not have been called.';
if (arguments.length) {
errorMessage += ' Got args: ' + JSON.stringify(arguments);
}
if (opt_extraMessage) {
errorMessage += '\n' + opt_extraMessage;
}
expect(false).toBe(true, errorMessage);
});
}
// Waits for any of the given spys to be called.
// Last param may be a custom timeout duration.
function waitsForAny() {
var spys = [].slice.call(arguments);
var timeout = Tests.TEST_TIMEOUT;
if (typeof spys[spys.length - 1] == 'number') {
timeout = spys.pop();
}
waitsFor(function() {
for (var i = 0; i < spys.length; ++i) {
if (spys[i].wasCalled) {
return true;
}
}
return false;
}, "Expecting callbacks to be called.", timeout);
}
@@ -15,7 +15,7 @@
limitations under the License.
-->
<resources>
<string name="app_name">ماسح الرمز الشريطي</string>
<!-- string name="app_name">ماسح الرمز الشريطي</string -->
<string name="app_picker_name">تطبيقات</string>
<string name="bookmark_picker_name">إشارات مرجعية</string>
<string name="button_add_calendar">إضافة إلى التقويم</string>
@@ -59,7 +59,7 @@
<string name="menu_about">حول</string>
<string name="menu_help">تعليمات</string>
<string name="menu_history">سجل</string>
<string name="menu_settings">إعدادات</string>
<!-- string name="menu_settings">إعدادات</string -->
<string name="menu_share">مشاركة</string>
<string name="msg_about">حسب مكتبة الرمز الشريطي ZXing مفتوحة المصادر</string>
<string name="msg_buggy">يوجد بالهاتف أخطاء معروفة تتسبب في حدوث مشكلات في مسح الرمز الشريطي. لمزيد من المعلومات، قم بزيارة http://code.google.com/p/zxing/wiki/FrequentlyAskedQuestions</string>
@@ -15,7 +15,7 @@
limitations under the License.
-->
<resources>
<string name="app_name">Баркод Скенер</string>
<!-- string name="app_name">Баркод Скенер</string -->
<string name="app_picker_name">Приложения</string>
<string name="bookmark_picker_name">Отметки</string>
<string name="button_add_calendar">Добави в календар</string>
@@ -59,7 +59,7 @@
<string name="menu_about">Относно</string>
<string name="menu_help">Помощ</string>
<string name="menu_history">История</string>
<string name="menu_settings">Настройки</string>
<!-- string name="menu_settings">Настройки</string -->
<string name="menu_share">Сподели</string>
<string name="msg_about">Базирано на библиотеката с отворен код\nZXing Barcode</string>
<string name="msg_buggy">Това устройство демонстрира проблеми при сканиране на баркодове. За повече информация посетете http://code.google.com/p/zxing/wiki/FrequentlyAskedQuestions</string>
@@ -15,7 +15,7 @@
limitations under the License.
-->
<resources>
<string name="app_name">Barcode Scanner</string>
<!-- string name="app_name">Barcode Scanner</string -->
<string name="app_picker_name">Aplikace</string>
<string name="bookmark_picker_name">Záložky</string>
<string name="button_add_calendar">Přidat do kalendáře</string>
@@ -59,7 +59,7 @@
<string name="menu_about">O</string>
<string name="menu_help">Pomoc!</string>
<string name="menu_history">Historie</string>
<string name="menu_settings">Nastavení</string>
<!-- string name="menu_settings">Nastavení</string -->
<string name="menu_share">Sdílet</string>
<string name="msg_about">Na bázi open source ZXing Barcode Library</string>
<string name="msg_buggy">Tento přístroj má známé chyby, které způsobují problémy čárového kódu. Pro Více informací najdete na http://code.google.com/p/zxing/wiki/FrequentlyAskedQuestions</string>
@@ -15,7 +15,7 @@
limitations under the License.
-->
<resources>
<string name="app_name">Barcode Scanner</string>
<!-- string name="app_name">Barcode Scanner</string -->
<string name="app_picker_name">Applikationer</string>
<string name="bookmark_picker_name">Bogmærker</string>
<string name="button_add_calendar">Tilføj til kalendar</string>
@@ -59,7 +59,7 @@
<string name="menu_about">Om</string>
<string name="menu_help">Hjælp</string>
<string name="menu_history">Historik</string>
<string name="menu_settings">Indstillinger</string>
<!-- string name="menu_settings">Indstillinger</string -->
<string name="menu_share">Del</string>
<string name="msg_about">Baseret på open source ZXing Barcode Library</string>
<string name="msg_buggy">Denne enhed har kendte fejl, der forårsager stregkodescanningsproblemer. For mere information, besøg http://code.google.com/p/zxing/wiki/FrequentlyAskedQuestions (på engelsk)</string>
@@ -15,7 +15,7 @@
limitations under the License.
-->
<resources>
<string name="app_name">Barcode Scanner</string>
<!-- string name="app_name">Barcode Scanner</string -->
<string name="app_picker_name">Anwendungen</string>
<string name="bookmark_picker_name">Lesezeichen</string>
<string name="button_add_calendar">Termin hinzufügen</string>
@@ -59,7 +59,7 @@
<string name="menu_about">Info</string>
<string name="menu_help">Hilfe</string>
<string name="menu_history">Historie</string>
<string name="menu_settings">Einstellungen</string>
<!-- string name="menu_settings">Einstellungen</string -->
<string name="menu_share">Senden</string>
<string name="msg_about">Basiert auf der Open Source ZXing Barcode Bibliothek </string>
<string name="msg_buggy">Bei diesem Gerät sind Fehler bekannt, die beim Barcode-Scanning Probleme bereiten. Weitere Informationen auf http://code.google.com/p/zxing/wiki/FrequentlyAskedQuestions</string>
@@ -15,7 +15,7 @@
limitations under the License.
-->
<resources>
<string name="app_name">Barcode Scanner</string>
<!-- string name="app_name">Barcode Scanner</string -->
<string name="app_picker_name">Aplicaciónes</string>
<string name="bookmark_picker_name">Marcadores</string>
<string name="button_add_calendar">Añadir a calendario</string>
@@ -59,7 +59,7 @@
<string name="menu_about">Acerca de</string>
<string name="menu_help">Ayuda</string>
<string name="menu_history">Historia</string>
<string name="menu_settings">Configuración</string>
<!-- string name="menu_settings">Configuración</string -->
<string name="menu_share">Compartir</string>
<string name="msg_about">Basado en la libreria de código de barras de código abierto ZXing</string>
<string name="msg_buggy">Este dispositivo ha conocido errores de escaneo de código de barras causa problemas. Para más información, visite http://code.google.com/p/zxing/wiki/FrequentlyAskedQuestions</string>
@@ -15,7 +15,7 @@
limitations under the License.
-->
<resources>
<string name="app_name">Barcode Scanner</string>
<!-- string name="app_name">Barcode Scanner</string -->
<string name="app_picker_name">Ohjelmat</string>
<string name="bookmark_picker_name">Kirjanmerkit</string>
<string name="button_add_calendar">Lisää kalenteriin</string>
@@ -59,7 +59,7 @@
<string name="menu_about">Tietoja</string>
<string name="menu_help">Apua</string>
<string name="menu_history">Historia</string>
<string name="menu_settings">Asetukset</string>
<!-- string name="menu_settings">Asetukset</string -->
<string name="menu_share">Jaa</string>
<string name="msg_about">Perustuu avoimen koodin ZXing Barcode kirjastoon</string>
<string name="msg_buggy">Tämä laite on tunnettuja vikoja, jotka aiheuttavat viivakoodi skannauksen ongelmia. Varten Lisätietoja http://code.google.com/p/zxing/wiki/FrequentlyAskedQuestions</string>
@@ -15,7 +15,7 @@
limitations under the License.
-->
<resources>
<string name="app_name">Barcode Scanner</string>
<!-- string name="app_name">Barcode Scanner</string -->
<string name="app_picker_name">Applications</string>
<string name="bookmark_picker_name">Marques-pages</string>
<string name="button_add_calendar">Ajouter à l\'agenda</string>
@@ -59,7 +59,7 @@
<string name="menu_about">A propos</string>
<string name="menu_help">Aide</string>
<string name="menu_history">Historique</string>
<string name="menu_settings">Paramètres</string>
<!-- string name="menu_settings">Paramètres</string -->
<string name="menu_share">Partager</string>
<string name="msg_about">L\'application Android officielle du projet libre ZXing.</string>
<string name="msg_buggy">Cet appareil a rencontré un bogue entraînant des problèmes de lecture de codes-barres. Pour plus d\'informations, rendez-vous sur http://code.google.com/p/zxing/wiki/FrequentlyAskedQuestions</string>
@@ -15,7 +15,7 @@
limitations under the License.
-->
<resources>
<string name="app_name">סורק ברקודים</string>
<!-- string name="app_name">סורק ברקודים</string -->
<string name="app_picker_name">יישומים</string>
<string name="bookmark_picker_name">סימניות</string>
<string name="button_add_calendar">הוסף ללוח שנה</string>
@@ -59,7 +59,7 @@
<string name="menu_about">אודות</string>
<string name="menu_help">עזרה</string>
<string name="menu_history">היסטוריה</string>
<string name="menu_settings">הגדרות</string>
<!-- string name="menu_settings">הגדרות</string -->
<string name="menu_share">שתף</string>
<string name="msg_about">מבוסס עם ספריית הקוד הפתוח ZXing Barcode Library</string>
<string name="msg_buggy">במכשיר זה יופיעו תקלות ידועות שיגרמו לבעיות בסריקת ברקודים. לקבלת מידע נוסף, בקר http://code.google.com/p/zxing/wiki/FrequentlyAskedQuestions</string>
@@ -15,7 +15,7 @@
limitations under the License.
-->
<resources>
<string name="app_name">Barcode Scanner</string>
<!-- string name="app_name">Barcode Scanner</string -->
<string name="app_picker_name">Alkalmazások</string>
<string name="bookmark_picker_name">Könyvjelzők</string>
<string name="button_add_calendar">Hozzáadás a naptárhoz</string>
@@ -59,7 +59,7 @@
<string name="menu_about">Rólunk</string>
<string name="menu_help">Segítség</string>
<string name="menu_history">Előzmények</string>
<string name="menu_settings">Beállítások</string>
<!-- string name="menu_settings">Beállítások</string -->
<string name="menu_share">Megosztás</string>
<string name="msg_about">A nyílt forráskódú ZXing Barcode Library alapján.</string>
<string name="msg_buggy">Ennek a készüléknek ismert hibái vannak, amik vonalkód olvasási problémákat okoznak. További információkért, látogassa meg a http://code.google.com/p/zxing/wiki/FrequentlyAskedQuestions weboldalt.</string>
@@ -15,7 +15,7 @@
limitations under the License.
-->
<resources>
<string name="app_name">Barcode Scanner</string>
<!-- string name="app_name">Barcode Scanner</string -->
<string name="app_picker_name">Applicazioni</string>
<string name="bookmark_picker_name">Segnalibri</string>
<string name="button_add_calendar">Aggiungi al calendario</string>
@@ -59,7 +59,7 @@
<string name="menu_about">Info</string>
<string name="menu_help">Aiuto</string>
<string name="menu_history">Cronologia</string>
<string name="menu_settings">Impostazioni</string>
<!-- string name="menu_settings">Impostazioni</string -->
<string name="menu_share">Condividi</string>
<string name="msg_about">Basato sulla libreria di software libero ZXing Barcode</string>
<string name="msg_buggy">Questo dispositivo ha un bug noto che causa problemi con la scansione dei codici a barre. Per ulteriori informazioni, visita http://code.google.com/p/zxing/wiki/FrequentlyAskedQuestions</string>
@@ -15,7 +15,7 @@
limitations under the License.
-->
<resources>
<string name="app_name">QRコードスキャナー</string>
<!-- string name="app_name">QRコードスキャナー</string -->
<string name="app_picker_name">アプリケーション</string>
<string name="bookmark_picker_name">ブックマーク</string>
<string name="button_add_calendar">カレンダーに追加</string>
@@ -59,7 +59,7 @@
<string name="menu_about">詳細</string>
<string name="menu_help">ヘルプ</string>
<string name="menu_history">履歴</string>
<string name="menu_settings">設定</string>
<!-- string name="menu_settings">設定</string -->
<string name="menu_share">共有</string>
<string name="msg_about">オープンソースのバーコード ライブラリ、ZXing を使用しています</string>
<string name="msg_buggy">このデバイスでは、バーコードのスキャンに問題があります。 詳細については、http://code.google.com/p/zxing/wiki/FrequentlyAskedQuestions を参照してください </string>
@@ -15,7 +15,7 @@
limitations under the License.
-->
<resources>
<string name="app_name">바코드 스캐너</string>
<!-- string name="app_name">바코드 스캐너</string -->
<string name="app_picker_name">어플리케이션</string>
<string name="bookmark_picker_name">즐겨찾기</string>
<string name="button_add_calendar">일정에 추가하기</string>
@@ -59,7 +59,7 @@
<string name="menu_about">정보</string>
<string name="menu_help">도움말</string>
<string name="menu_history">기록</string>
<string name="menu_settings">설정</string>
<!-- string name="menu_settings">설정</string -->
<string name="menu_share">공유</string>
<string name="msg_about">오픈소스 ZXing Barcode Library를 이용하여 제작된 어플</string>
<string name="msg_buggy">해당 기기는 바코드 스캐닝시 알려진 버그가 있습니다. 더 많은 정보를 얻기 위해서는 다음 주소를 방문하세요.(영문)http://code.google.com/p/zxing/wiki/FrequentlyAskedQuestions</string>
@@ -15,7 +15,7 @@
limitations under the License.
-->
<resources>
<string name="app_name">Barcode Scanner</string>
<!-- string name="app_name">Barcode Scanner</string -->
<string name="app_picker_name">Applicaties</string>
<string name="bookmark_picker_name">Bladwijzers</string>
<string name="button_add_calendar">Voeg toe aan agenda</string>
@@ -59,7 +59,7 @@
<string name="menu_about">Over</string>
<string name="menu_help">Help</string>
<string name="menu_history">Geschiedenis</string>
<string name="menu_settings">Instellingen</string>
<!-- string name="menu_settings">Instellingen</string -->
<string name="menu_share">Deel</string>
<string name="msg_about">Gebaseerd op de open source ZXing Barcodebibliotheek</string>
<string name="msg_buggy">Dit apparaat heeft bekende bugs die ervoor zorgen dat er zich problemen voor kunnen doen bij het scannen. Voor meer informatie, bezoek http://code.google.com/p/zxing/wiki/FrequentlyAskedQuestions</string>
@@ -15,7 +15,7 @@
limitations under the License.
-->
<resources>
<string name="app_name">Barcode Scanner</string>
<!-- string name="app_name">Barcode Scanner</string -->
<string name="app_picker_name">Aplikacje</string>
<string name="bookmark_picker_name">Zakładki</string>
<string name="button_add_calendar">Dodaj do kalendarza</string>
@@ -59,7 +59,7 @@
<string name="menu_about">O aplikacji</string>
<string name="menu_help">Pomoc</string>
<string name="menu_history">Historia</string>
<string name="menu_settings">Ustawienia</string>
<!-- string name="menu_settings">Ustawienia</string -->
<string name="menu_share">Udostępnij</string>
<string name="msg_about">Bazowane na bibliotece kodów paskowych ZXing o otwartym źródle</string>
<string name="msg_buggy">To urządzenie wykazuje znane błędy które powodują problemy podczas skanowania kodów paskowych. W celu otrzymania dalszych informacji, odwiedź http://code.google.com/p/zxing/wiki/FrequentlyAskedQuestions</string>
@@ -15,7 +15,7 @@
limitations under the License.
-->
<resources>
<string name="app_name">Barcode Scanner</string>
<!-- string name="app_name">Barcode Scanner</string -->
<string name="app_picker_name">Applications</string>
<string name="bookmark_picker_name">Marcadores</string>
<string name="button_add_calendar">Adicionar ao calendário</string>
@@ -59,7 +59,7 @@
<string name="menu_about">Acerca de</string>
<string name="menu_help">Ajuda</string>
<string name="menu_history">Histórico</string>
<string name="menu_settings">Definições</string>
<!-- string name="menu_settings">Definições</string -->
<string name="menu_share">Partilhar</string>
<string name="msg_about">Baseado na biblioteca de código de barras de código aberto ZXing</string>
<string name="msg_buggy">Este dispositivo tem bugs conhecidos que causam problemas de varredura de código de barras. Para obter mais informações, visite http://code.google.com/p/zxing/wiki/FrequentlyAskedQuestions</string>
@@ -15,7 +15,7 @@
limitations under the License.
-->
<resources>
<string name="app_name">Сканер штрих-кодов</string>
<!-- string name="app_name">Сканер штрих-кодов</string -->
<string name="app_picker_name">Программы</string>
<string name="bookmark_picker_name">Закладки</string>
<string name="button_add_calendar">Добавить в календарь</string>
@@ -59,7 +59,7 @@
<string name="menu_about">О программе</string>
<string name="menu_help">Помощь</string>
<string name="menu_history">История</string>
<string name="menu_settings">Настройки</string>
<!-- string name="menu_settings">Настройки</string -->
<string name="menu_share">Поделиться</string>
<string name="msg_about">Основано на свободной библиотеке штрих-кодов ZXing</string>
<string name="msg_buggy">Это устройство имеет известные ошибки при сканировании штрих-кода. Для получения более подробной информации, посетите http://code.google.com/p/zxing/wiki/FrequentlyAskedQuestions</string>
@@ -15,7 +15,7 @@
limitations under the License.
-->
<resources>
<string name="app_name">Barcode Scanner</string>
<!-- string name="app_name">Barcode Scanner</string -->
<string name="app_picker_name">Aplikácie</string>
<string name="bookmark_picker_name">Záložky</string>
<string name="button_add_calendar">Pridať do kalendára</string>
@@ -59,7 +59,7 @@
<string name="menu_about">O programe</string>
<string name="menu_help">Nápoveda</string>
<string name="menu_history">História</string>
<string name="menu_settings">Nastavenia</string>
<!-- string name="menu_settings">Nastavenia</string -->
<string name="menu_share">Zdieľať</string>
<string name="msg_about">Založené na otvorených zdrojových kódoch knižnice čiarových kódov ZXing</string>
<string name="msg_buggy">Toto zariadenie má známe chyby, ktoré spôsobujú problémy skenovania čiarových kódov. Pre viac informácií navštívte http://code.google.com/p/zxing/wiki/FrequentlyAskedQuestions</string>
@@ -15,7 +15,7 @@
limitations under the License.
-->
<resources>
<string name="app_name">Barcode Scanner</string>
<!-- string name="app_name">Barcode Scanner</string -->
<string name="app_picker_name">Aplikacije</string>
<string name="bookmark_picker_name">Zaznamki</string>
<string name="button_add_calendar">Dodaj v koledar</string>
@@ -59,7 +59,7 @@
<string name="menu_about">O programu</string>
<string name="menu_help">Pomoč</string>
<string name="menu_history">Zgodovina</string>
<string name="menu_settings">Nastavitve</string>
<!-- string name="menu_settings">Nastavitve</string -->
<string name="menu_share">Deli</string>
<string name="msg_about">Temelji na odprtokodni ZXing Barcode knjižnici</string>
<string name="msg_buggy">Ta naprava ima znane hrošče, ki povzročajo težave z branjem črtih kod. Za več informacij obiščite http://code.google.com/p/zxing/wiki/FrequentlyAskedQuestions</string>
@@ -15,7 +15,7 @@
limitations under the License.
-->
<resources>
<string name="app_name">Barcode Scanner</string>
<!-- string name="app_name">Barcode Scanner</string -->
<string name="app_picker_name">Applikationer</string>
<string name="bookmark_picker_name">Bokmärken</string>
<string name="button_add_calendar">Lägg till i kalendern</string>
@@ -59,7 +59,7 @@
<string name="menu_about">Om</string>
<string name="menu_help">Hjälp</string>
<string name="menu_history">Historik</string>
<string name="menu_settings">Inställningar</string>
<!-- string name="menu_settings">Inställningar</string -->
<string name="menu_share">Dela</string>
<string name="msg_about">Baserad på ZXing Barcode Library som är öppen källkod</string>
<string name="msg_buggy">Här enheten har kända buggar som gör att streckkoden scanning problem. För mer information, besök http://code.google.com/p/zxing/wiki/FrequentlyAskedQuestions</string>
@@ -15,7 +15,7 @@
limitations under the License.
-->
<resources>
<string name="app_name">Barkod Tarayıcısı</string>
<!-- string name="app_name">Barkod Tarayıcısı</string -->
<string name="app_picker_name">Uygulamalar</string>
<string name="bookmark_picker_name">Yer imleri</string>
<string name="button_add_calendar">Takvime ekle</string>
@@ -59,7 +59,7 @@
<string name="menu_about">Hakkında</string>
<string name="menu_help">Yardım</string>
<string name="menu_history">Geçmiş</string>
<string name="menu_settings">Ayarlar</string>
<!-- string name="menu_settings">Ayarlar</string -->
<string name="menu_share">Paylaş</string>
<string name="msg_about">Açık kaynak ZXing Barkod Kitaplığı temellidir</string>
<string name="msg_buggy">Bu cihaz barkod tarama sorunlarına yol açtığı bilinen hatalar içermektedir. Daha fazla bilgi için şu adresi ziyaret edin: http://code.google.com/p/zxing/wiki/FrequentlyAskedQuestions</string>
@@ -15,7 +15,7 @@
limitations under the License.
-->
<resources>
<string name="app_name">条码扫描器</string>
<!-- string name="app_name">条码扫描器</string -->
<string name="app_picker_name">应用</string>
<string name="bookmark_picker_name">书签</string>
<string name="button_add_calendar">添加事件至日历</string>
@@ -59,7 +59,7 @@
<string name="menu_about">关于</string>
<string name="menu_help">帮助</string>
<string name="menu_history">历史</string>
<string name="menu_settings">设置</string>
<!-- string name="menu_settings">设置</string -->
<string name="menu_share">分享</string>
<string name="msg_about">基于ZXing开源条码引擎</string>
<string name="msg_buggy">此设备存在已知问题,将导致条码扫描器出错。更多信息,请访问 http://code.google.com/p/zxing/wiki/FrequentlyAskedQuestions</string>
@@ -15,7 +15,7 @@
limitations under the License.
-->
<resources>
<string name="app_name">條碼掃描器</string>
<!-- string name="app_name">條碼掃描器</string -->
<string name="app_picker_name">應用程式</string>
<string name="bookmark_picker_name">書籤</string>
<string name="button_add_calendar">加入事件至日曆</string>
@@ -59,7 +59,7 @@
<string name="menu_about">關於</string>
<string name="menu_help">幫助</string>
<string name="menu_history">記錄</string>
<string name="menu_settings">設置</string>
<!-- string name="menu_settings">設置</string -->
<string name="menu_share">分享</string>
<string name="msg_about">使用ZXing開放原始碼的條碼資料庫</string>
<string name="msg_buggy">該裝置有已知的錯誤導致條碼掃描有問題。如需更多資訊,請至 http://code.google.com/p/zxing/wiki/FrequentlyAskedQuestions</string>
@@ -15,7 +15,7 @@
limitations under the License.
-->
<resources>
<string name="app_name">Barcode Scanner</string>
<!-- string name="app_name">Barcode Scanner</string -->
<string name="app_picker_name">Applications</string>
<string name="bookmark_picker_name">Bookmarks</string>
<string name="button_add_calendar">Add to calendar</string>
@@ -59,7 +59,7 @@
<string name="menu_about">About</string>
<string name="menu_help">Help</string>
<string name="menu_history">History</string>
<string name="menu_settings">Settings</string>
<!-- string name="menu_settings">Settings</string -->
<string name="menu_share">Share</string>
<string name="msg_about">The official Android app of the open source ZXing barcode project.</string>
<string name="msg_buggy">This device has known bugs that cause barcode scanning problems. For more information, visit http://code.google.com/p/zxing/wiki/FrequentlyAskedQuestions</string>
@@ -40,7 +40,7 @@
android:title="@string/preferences_vibrate_title"/>
<CheckBoxPreference
android:key="preferences_copy_to_clipboard"
android:defaultValue="true"
android:defaultValue="false"
android:title="@string/preferences_copy_to_clipboard_title"/>
<CheckBoxPreference
android:key="preferences_remember_duplicates"
@@ -238,7 +238,7 @@ public final class CaptureActivity extends Activity implements SurfaceHolder.Cal
}
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
copyToClipboard = prefs.getBoolean(PreferencesActivity.KEY_COPY_TO_CLIPBOARD, true)
copyToClipboard = prefs.getBoolean(PreferencesActivity.KEY_COPY_TO_CLIPBOARD, false)
&& (intent == null || intent.getBooleanExtra(Intents.Scan.SAVE_HISTORY, true));
beepManager.updatePrefs();
@@ -121,7 +121,7 @@ public class BarcodeScanner extends Plugin {
//Log.d(LOG_TAG, "This should never happen");
}
this.success(new PluginResult(PluginResult.Status.OK, obj), this.callback);
} if (resultCode == Activity.RESULT_CANCELED) {
} else if (resultCode == Activity.RESULT_CANCELED) {
JSONObject obj = new JSONObject();
try {
obj.put(TEXT, "");
+70 -11
View File
@@ -16,7 +16,20 @@
//------------------------------------------------------------------------------
#import "zxing-all-in-one.h"
#import <CORDOVA/CDVPlugin.h>
#import <Cordova/CDVPlugin.h>
//------------------------------------------------------------------------------
// Delegate to handle orientation functions
//
//------------------------------------------------------------------------------
@protocol CDVBarcodeScannerOrientationDelegate <NSObject>
- (NSUInteger)supportedInterfaceOrientations;
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation;
- (BOOL)shouldAutorotate;
@end
//------------------------------------------------------------------------------
// Adds a shutter button to the UI, and changes the scan from continuous to
@@ -72,11 +85,13 @@
//------------------------------------------------------------------------------
// view controller for the ui
//------------------------------------------------------------------------------
@interface CDVbcsViewController : UIViewController {}
@interface CDVbcsViewController : UIViewController <CDVBarcodeScannerOrientationDelegate> {}
@property (nonatomic, retain) CDVbcsProcessor* processor;
@property (nonatomic, retain) NSString* alternateXib;
@property (nonatomic) BOOL shutterPressed;
@property (nonatomic, retain) IBOutlet UIView* overlayView;
// unsafe_unretained is equivalent to assign - used to prevent retain cycles in the property below
@property (nonatomic, unsafe_unretained) id orientationDelegate;
- (id)initWithProcessor:(CDVbcsProcessor*)processor alternateOverlay:(NSString *)alternateXib;
- (void)startCapturing;
@@ -234,6 +249,8 @@ parentViewController:(UIViewController*)parentViewController
}
self.viewController = [[[CDVbcsViewController alloc] initWithProcessor: self alternateOverlay:self.alternateXib] autorelease];
// here we set the orientation delegate to the MainViewController of the app (orientation controlled in the Project Settings)
self.viewController.orientationDelegate = self.plugin.viewController;
// delayed [self openDialog];
[self performSelector:@selector(openDialog) withObject:nil afterDelay:1];
@@ -283,7 +300,7 @@ parentViewController:(UIViewController*)parentViewController
- (NSString*)setUpCaptureSession {
NSError* error = nil;
AVCaptureSession* captureSession = [[AVCaptureSession alloc] init];
AVCaptureSession* captureSession = [[[AVCaptureSession alloc] init] autorelease];
self.captureSession = captureSession;
AVCaptureDevice* device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
@@ -629,6 +646,17 @@ parentViewController:(UIViewController*)parentViewController
[self.view addSubview:[self buildOverlayView]];
}
//--------------------------------------------------------------------------
- (void)viewWillAppear:(BOOL)animated {
// set video orientation to what the camera sees
self.processor.previewLayer.orientation = [[UIApplication sharedApplication] statusBarOrientation];
// this fixes the bug when the statusbar is landscape, and the preview layer
// starts up in portrait (not filling the whole view)
self.processor.previewLayer.frame = self.view.bounds;
}
//--------------------------------------------------------------------------
- (void)viewDidAppear:(BOOL)animated {
[self startCapturing];
@@ -641,13 +669,6 @@ parentViewController:(UIViewController*)parentViewController
self.processor.capturing = YES;
}
//--------------------------------------------------------------------------
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// rotation currently not supported
if (interfaceOrientation == UIInterfaceOrientationPortrait) return YES;
return NO;
}
//--------------------------------------------------------------------------
- (void)shutterButtonPressed {
self.shutterPressed = YES;
@@ -796,4 +817,42 @@ parentViewController:(UIViewController*)parentViewController
return result;
}
@end
#pragma mark CDVBarcodeScannerOrientationDelegate
- (BOOL)shouldAutorotate
{
return NO;
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
return UIInterfaceOrientationPortrait;
}
- (NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskPortrait;
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
if ((self.orientationDelegate != nil) && [self.orientationDelegate respondsToSelector:@selector(shouldAutorotateToInterfaceOrientation:)]) {
return [self.orientationDelegate shouldAutorotateToInterfaceOrientation:interfaceOrientation];
}
return YES;
}
- (void) willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)orientation duration:(NSTimeInterval)duration
{
[CATransaction begin];
self.processor.previewLayer.orientation = orientation;
[self.processor.previewLayer layoutSublayers];
self.processor.previewLayer.frame = self.view.bounds;
[CATransaction commit];
[super willAnimateRotationToInterfaceOrientation:orientation duration:duration];
}
@end
+54 -44
View File
@@ -6,58 +6,68 @@
* Copyright (c) 2011, IBM Corporation
*/
var BarcodeScanner = function() {
};
//-------------------------------------------------------------------
BarcodeScanner.Encode = {
TEXT_TYPE: "TEXT_TYPE",
EMAIL_TYPE: "EMAIL_TYPE",
PHONE_TYPE: "PHONE_TYPE",
SMS_TYPE: "SMS_TYPE",
// CONTACT_TYPE: "CONTACT_TYPE", // TODO: not implemented, requires passing a Bundle class from Javascriopt to Java
// LOCATION_TYPE: "LOCATION_TYPE" // TODO: not implemented, requires passing a Bundle class from Javascriopt to Java
};
PhoneGap.define("cordova/plugin/BarcodeScanner",
function (require, exports, module) {
//-------------------------------------------------------------------
BarcodeScanner.prototype.scan = function(successCallback, errorCallback) {
if (errorCallback == null) { errorCallback = function() {}}
var exec = require("cordova/exec");
if (typeof errorCallback != "function") {
console.log("BarcodeScanner.scan failure: failure parameter not a function");
return
}
var BarcodeScanner = function () {
};
if (typeof successCallback != "function") {
console.log("BarcodeScanner.scan failure: success callback parameter must be a function");
return
}
//-------------------------------------------------------------------
BarcodeScanner.Encode = {
TEXT_TYPE: "TEXT_TYPE",
EMAIL_TYPE: "EMAIL_TYPE",
PHONE_TYPE: "PHONE_TYPE",
SMS_TYPE: "SMS_TYPE",
// CONTACT_TYPE: "CONTACT_TYPE", // TODO: not implemented, requires passing a Bundle class from Javascript to Java
// LOCATION_TYPE: "LOCATION_TYPE" // TODO: not implemented, requires passing a Bundle class from Javascript to Java
};
cordova.exec(successCallback, errorCallback, 'BarcodeScanner', 'scan', []);
};
//-------------------------------------------------------------------
BarcodeScanner.prototype.scan = function (successCallback, errorCallback) {
if (errorCallback == null) {
errorCallback = function () {
}
}
//-------------------------------------------------------------------
BarcodeScanner.prototype.encode = function(type, data, successCallback, errorCallback, options) {
if (errorCallback == null) { errorCallback = function() {}}
if (typeof errorCallback != "function") {
console.log("BarcodeScanner.scan failure: failure parameter not a function");
return
}
if (typeof errorCallback != "function") {
console.log("BarcodeScanner.scan failure: failure parameter not a function");
return
}
if (typeof successCallback != "function") {
console.log("BarcodeScanner.scan failure: success callback parameter must be a function");
return
}
if (typeof successCallback != "function") {
console.log("BarcodeScanner.scan failure: success callback parameter must be a function");
return
}
exec(successCallback, errorCallback, 'BarcodeScanner', 'scan', []);
};
cordova.exec(successCallback, errorCallback, 'BarcodeScanner', 'encode', [{"type": type, "data": data, "options": options}]);
};
//-------------------------------------------------------------------
BarcodeScanner.prototype.encode = function (type, data, successCallback, errorCallback, options) {
if (errorCallback == null) {
errorCallback = function () {
}
}
//-------------------------------------------------------------------
if (typeof errorCallback != "function") {
console.log("BarcodeScanner.scan failure: failure parameter not a function");
return
}
if(!window.plugins) {
window.plugins = {};
}
if (!window.plugins.barcodeScanner) {
window.plugins.barcodeScanner = new BarcodeScanner();
}
if (typeof successCallback != "function") {
console.log("BarcodeScanner.scan failure: success callback parameter must be a function");
return
}
exec(successCallback, errorCallback, 'BarcodeScanner', 'encode', [
{"type": type, "data": data, "options": options}
]);
};
var barcodeScanner = new BarcodeScanner();
module.exports = barcodeScanner;
});