minor edits

This commit is contained in:
Brian LeRoux 2010-02-24 15:00:03 -08:00
parent f491a69769
commit 17d4d521e7
2 changed files with 78 additions and 99 deletions

View File

@ -15,6 +15,7 @@ class Build
def run def run
build_jar build_jar
create_android create_android
include_www
generate_manifest generate_manifest
copy_libs copy_libs
add_name_to_strings add_name_to_strings
@ -43,6 +44,10 @@ class Build
def create_android def create_android
puts "Creating Android project..." puts "Creating Android project..."
`android create project -t 5 -k #{ @pkg } -a #{ @name } -n #{ @name } -p #{ @path }` `android create project -t 5 -k #{ @pkg } -a #{ @name } -n #{ @name } -p #{ @path }`
end
def include_www
puts "Adding www folder to project..."
FileUtils.mkdir_p "#{ @path }#{@s}assets#{@s}www" FileUtils.mkdir_p "#{ @path }#{@s}assets#{@s}www"
FileUtils.cp_r "#{ @www }#{ @s }.", "#{ @path }#{ @s }assets#{ @s }www#{ @s }" FileUtils.cp_r "#{ @www }#{ @s }.", "#{ @path }#{ @s }assets#{ @s }www#{ @s }"
end end
@ -88,7 +93,7 @@ class Build
# puts app name in strings # puts app name in strings
def add_name_to_strings def add_name_to_strings
puts "Adding some application name to strings.xml..." puts "Adding app name to strings.xml..."
x = "<?xml version=\"1.0\" encoding=\"utf-8\"?> x = "<?xml version=\"1.0\" encoding=\"utf-8\"?>
<resources> <resources>
<string name=\"app_name\">#{ @name }</string> <string name=\"app_name\">#{ @name }</string>
@ -150,7 +155,7 @@ else
name ............... The name of your application. name ............... The name of your application.
package_name ....... The name of your package (For example: com.nitobi.demo) package_name ....... The name of your package (For example: com.nitobi.demo)
www ................ The path to your www folder. (Wherein your HTML, CSS and JS app is.) www ................ The path to your www folder. (Wherein your HTML, CSS and JS app is.)
path ............... The path to generate the application. path ............... The path to generate the Android application.
EOF EOF
end end

View File

@ -72,7 +72,7 @@ PhoneGap.addConstructor = function(func) {
e.initEvent('deviceready'); e.initEvent('deviceready');
document.dispatchEvent(e); document.dispatchEvent(e);
} }
}, 1); }, 5);
})(); })();
@ -138,10 +138,11 @@ function Acceleration(x, y, z)
this.x = x; this.x = x;
this.y = y; this.y = y;
this.z = z; this.z = z;
this.timestamp = new Date().getTime();
} }
// Need to define these for android // Need to define these for android
_accel = {} _accel = {};
_accel.x = 0; _accel.x = 0;
_accel.y = 0; _accel.y = 0;
_accel.z = 0; _accel.z = 0;
@ -355,7 +356,7 @@ PhoneGap.addConstructor(function() {
if (typeof navigator.compass == "undefined") navigator.compass = new Compass(); if (typeof navigator.compass == "undefined") navigator.compass = new Compass();
}); });
var Contact = function(){ var Contact = function(){
this.name = null; this.name = new ContactName();
this.emails = []; this.emails = [];
this.phones = []; this.phones = [];
} }
@ -393,7 +394,18 @@ Contacts.prototype.find = function(obj, win, fail)
{ {
if(obj.name != null) if(obj.name != null)
{ {
ContactHook.search(name, "", ""); // Build up the search term that we'll use in SQL, based on the structure/contents of the contact object passed into find.
var searchTerm = '';
if (obj.name.givenName && obj.name.givenName.length > 0) {
searchTerm = obj.name.givenName.split(' ').join('%');
}
if (obj.name.familyName && obj.name.familyName.length > 0) {
searchTerm += obj.name.familyName.split(' ').join('%');
}
if (!obj.name.familyName && !obj.name.givenName && obj.name.formatted) {
searchTerm = obj.name.formatted;
}
ContactHook.search(searchTerm, "", "");
} }
this.win = win; this.win = win;
this.fail = fail; this.fail = fail;
@ -578,46 +590,12 @@ function Geolocation() {
}; };
}; };
/** Geolocation.prototype.getCurrentPosition = function(successCallback, errorCallback, options)
* Asynchronously aquires the current position. {
* @param {Function} successCallback The function to call when the position var position = Geo.getCurrentLocation();
* data is available this.global_success = successCallback;
* @param {Function} errorCallback The function to call when there is an error this.fail = errorCallback;
* getting the position data.
* @param {PositionOptions} options The options for getting the position data
* such as timeout.
*/
Geolocation.prototype.getCurrentPosition = function(successCallback, errorCallback, options) {
var referenceTime = 0;
if (this.lastPosition)
referenceTime = this.lastPosition.timeout;
else
this.start(options);
var timeout = 20000;
var interval = 500;
if (typeof(options) == 'object' && options.interval)
interval = options.interval;
if (typeof(successCallback) != 'function')
successCallback = function() {};
if (typeof(errorCallback) != 'function')
errorCallback = function() {};
var dis = this;
var delay = 0;
var timer = setInterval(function() {
delay += interval;
if (typeof(dis.lastPosition) == 'object' && dis.lastPosition.timestamp > referenceTime) {
successCallback(dis.lastPosition);
clearInterval(timer);
} else if (delay >= timeout) {
errorCallback();
clearInterval(timer);
} }
}, interval);
};
/** /**
* Asynchronously aquires the position repeatedly at a given interval. * Asynchronously aquires the position repeatedly at a given interval.
@ -676,23 +654,6 @@ Geolocation.prototype.setError = function(message) {
} }
}; };
PhoneGap.addConstructor(function() {
if (typeof navigator.geolocation == "undefined") navigator.geolocation = new Geolocation();
});
/*
* Since we can't guarantee that we will have the most recent, we just try our best!
*
* Also, the API doesn't specify which version is the best version of the API
*/
Geolocation.prototype.getCurrentPosition = function(successCallback, errorCallback, options)
{
var position = Geo.getCurrentLocation();
this.global_success = successCallback;
this.fail = errorCallback;
}
// Run the global callback // Run the global callback
Geolocation.prototype.gotCurrentPosition = function(lat, lng, alt, altacc, head, vel, stamp) Geolocation.prototype.gotCurrentPosition = function(lat, lng, alt, altacc, head, vel, stamp)
{ {
@ -704,6 +665,7 @@ Geolocation.prototype.gotCurrentPosition = function(lat, lng, alt, altacc, head,
{ {
coords = new Coordinates(lat, lng, alt, altacc, head, vel); coords = new Coordinates(lat, lng, alt, altacc, head, vel);
loc = new Position(coords, stamp); loc = new Position(coords, stamp);
this.lastPosition = loc;
this.global_success(loc); this.global_success(loc);
} }
} }
@ -749,7 +711,19 @@ Geolocation.prototype.clearWatch = function(watchId)
{ {
Geo.stop(watchId); Geo.stop(watchId);
} }
function KeyEvent() // Taken from Jesse's geo fix (similar problem) in PhoneGap iPhone. Go figure, same browser!
function __proxyObj(origObj, proxyObj, funkList) {
for (var v in funkList) {
origObj[funkList[v]] = proxyObj[funkList[v]];
}
}
PhoneGap.addConstructor(function() {
navigator._geo = new Geolocation();
__proxyObj(navigator.geolocation, navigator._geo,
["setLocation", "getCurrentPosition", "watchPosition",
"clearWatch", "setError", "start", "stop", "gotCurrentPosition"]
);
});function KeyEvent()
{ {
} }