mirror of
https://github.com/apache/cordova-android.git
synced 2025-02-20 23:56:20 +08:00
Merge branch 'master' of github.com:phonegap/phonegap-android
This commit is contained in:
commit
60eb60b4f5
@ -39,22 +39,6 @@ function File(name, fullPath, type, lastModifiedDate, size) {
|
||||
this.size = size || 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an event object since we can't set target on DOM event.
|
||||
*
|
||||
* @param type
|
||||
* @param target
|
||||
*
|
||||
*/
|
||||
File._createEvent = function(type, target) {
|
||||
// Can't create event object, since we can't set target (its readonly)
|
||||
//var evt = document.createEvent('Events');
|
||||
//evt.initEvent("onload", false, false);
|
||||
var evt = {"type": type};
|
||||
evt.target = target;
|
||||
return evt;
|
||||
};
|
||||
|
||||
function FileError() {
|
||||
this.code = null;
|
||||
}
|
||||
@ -185,18 +169,15 @@ FileReader.prototype.abort = function() {
|
||||
|
||||
// If error callback
|
||||
if (typeof this.onerror === "function") {
|
||||
evt = File._createEvent("error", this);
|
||||
this.onerror(evt);
|
||||
this.onerror({"type":"error", "target":this});
|
||||
}
|
||||
// If abort callback
|
||||
if (typeof this.onabort === "function") {
|
||||
evt = File._createEvent("abort", this);
|
||||
this.onabort(evt);
|
||||
this.oneabort({"type":"abort", "target":this});
|
||||
}
|
||||
// If load end callback
|
||||
if (typeof this.onloadend === "function") {
|
||||
evt = File._createEvent("loadend", this);
|
||||
this.onloadend(evt);
|
||||
this.onloadend({"type":"loadend", "target":this});
|
||||
}
|
||||
};
|
||||
|
||||
@ -219,8 +200,7 @@ FileReader.prototype.readAsText = function(file, encoding) {
|
||||
|
||||
// If loadstart callback
|
||||
if (typeof this.onloadstart === "function") {
|
||||
var evt = File._createEvent("loadstart", this);
|
||||
this.onloadstart(evt);
|
||||
this.onloadstart({"type":"loadstart", "target":this});
|
||||
}
|
||||
|
||||
// Default encoding is UTF-8
|
||||
@ -245,8 +225,6 @@ FileReader.prototype.readAsText = function(file, encoding) {
|
||||
|
||||
// If onload callback
|
||||
if (typeof me.onload === "function") {
|
||||
evt = File._createEvent("load", me);
|
||||
me.onload(evt);
|
||||
}
|
||||
|
||||
// DONE state
|
||||
@ -254,8 +232,7 @@ FileReader.prototype.readAsText = function(file, encoding) {
|
||||
|
||||
// If onloadend callback
|
||||
if (typeof me.onloadend === "function") {
|
||||
evt = File._createEvent("loadend", me);
|
||||
me.onloadend(evt);
|
||||
me.onloadend({"type":"loadend", "target":me});
|
||||
}
|
||||
},
|
||||
|
||||
@ -272,8 +249,7 @@ FileReader.prototype.readAsText = function(file, encoding) {
|
||||
|
||||
// If onerror callback
|
||||
if (typeof me.onerror === "function") {
|
||||
evt = File._createEvent("error", me);
|
||||
me.onerror(evt);
|
||||
me.onerror({"type":"error", "target":me});
|
||||
}
|
||||
|
||||
// DONE state
|
||||
@ -281,8 +257,7 @@ FileReader.prototype.readAsText = function(file, encoding) {
|
||||
|
||||
// If onloadend callback
|
||||
if (typeof me.onloadend === "function") {
|
||||
evt = File._createEvent("loadend", me);
|
||||
me.onloadend(evt);
|
||||
me.onloadend({"type":"loadend", "target":me});
|
||||
}
|
||||
}
|
||||
);
|
||||
@ -309,8 +284,7 @@ FileReader.prototype.readAsDataURL = function(file) {
|
||||
|
||||
// If loadstart callback
|
||||
if (typeof this.onloadstart === "function") {
|
||||
var evt = File._createEvent("loadstart", this);
|
||||
this.onloadstart(evt);
|
||||
this.onloadstart({"type":"loadstart", "target":this});
|
||||
}
|
||||
|
||||
var me = this;
|
||||
@ -332,8 +306,7 @@ FileReader.prototype.readAsDataURL = function(file) {
|
||||
|
||||
// If onload callback
|
||||
if (typeof me.onload === "function") {
|
||||
evt = File._createEvent("load", me);
|
||||
me.onload(evt);
|
||||
me.onload({"type":"load", "target":me});
|
||||
}
|
||||
|
||||
// DONE state
|
||||
@ -341,8 +314,7 @@ FileReader.prototype.readAsDataURL = function(file) {
|
||||
|
||||
// If onloadend callback
|
||||
if (typeof me.onloadend === "function") {
|
||||
evt = File._createEvent("loadend", me);
|
||||
me.onloadend(evt);
|
||||
me.onloadend({"type":"loadend", "target":me});
|
||||
}
|
||||
},
|
||||
|
||||
@ -359,8 +331,7 @@ FileReader.prototype.readAsDataURL = function(file) {
|
||||
|
||||
// If onerror callback
|
||||
if (typeof me.onerror === "function") {
|
||||
evt = File._createEvent("error", me);
|
||||
me.onerror(evt);
|
||||
me.onerror({"type":"error", "target":me});
|
||||
}
|
||||
|
||||
// DONE state
|
||||
@ -368,8 +339,7 @@ FileReader.prototype.readAsDataURL = function(file) {
|
||||
|
||||
// If onloadend callback
|
||||
if (typeof me.onloadend === "function") {
|
||||
evt = File._createEvent("loadend", me);
|
||||
me.onloadend(evt);
|
||||
me.onloadend({"type":"loadend", "target":me});
|
||||
}
|
||||
}
|
||||
);
|
||||
@ -456,115 +426,21 @@ FileWriter.prototype.abort = function() {
|
||||
|
||||
// If error callback
|
||||
if (typeof this.onerror === "function") {
|
||||
evt = File._createEvent("error", this);
|
||||
this.onerror(evt);
|
||||
this.onerror({"type":"error", "target":this});
|
||||
}
|
||||
// If abort callback
|
||||
if (typeof this.onabort === "function") {
|
||||
evt = File._createEvent("abort", this);
|
||||
this.onabort(evt);
|
||||
this.oneabort({"type":"abort", "target":this});
|
||||
}
|
||||
|
||||
this.readyState = FileWriter.DONE;
|
||||
|
||||
// If write end callback
|
||||
if (typeof this.onwriteend == "function") {
|
||||
evt = File._createEvent("writeend", this);
|
||||
this.onwriteend(evt);
|
||||
this.onwriteend({"type":"writeend", "target":this});
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* @Deprecated: use write instead
|
||||
*
|
||||
* @param file to write the data to
|
||||
* @param text to be written
|
||||
* @param bAppend if true write to end of file, otherwise overwrite the file
|
||||
*/
|
||||
FileWriter.prototype.writeAsText = function(file, text, bAppend) {
|
||||
// Throw an exception if we are already writing a file
|
||||
if (this.readyState === FileWriter.WRITING) {
|
||||
throw FileError.INVALID_STATE_ERR;
|
||||
}
|
||||
|
||||
if (bAppend !== true) {
|
||||
bAppend = false; // for null values
|
||||
}
|
||||
|
||||
this.fileName = file;
|
||||
|
||||
// WRITING state
|
||||
this.readyState = FileWriter.WRITING;
|
||||
|
||||
var me = this;
|
||||
|
||||
// If onwritestart callback
|
||||
if (typeof me.onwritestart === "function") {
|
||||
var evt = File._createEvent("writestart", me);
|
||||
me.onwritestart(evt);
|
||||
}
|
||||
|
||||
// Write file
|
||||
navigator.fileMgr.writeAsText(file, text, bAppend,
|
||||
|
||||
// Success callback
|
||||
function(r) {
|
||||
var evt;
|
||||
|
||||
// If DONE (cancelled), then don't do anything
|
||||
if (me.readyState === FileWriter.DONE) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Save result
|
||||
me.result = r;
|
||||
|
||||
// If onwrite callback
|
||||
if (typeof me.onwrite === "function") {
|
||||
evt = File._createEvent("write", me);
|
||||
me.onwrite(evt);
|
||||
}
|
||||
|
||||
// DONE state
|
||||
me.readyState = FileWriter.DONE;
|
||||
|
||||
// If onwriteend callback
|
||||
if (typeof me.onwriteend === "function") {
|
||||
evt = File._createEvent("writeend", me);
|
||||
me.onwriteend(evt);
|
||||
}
|
||||
},
|
||||
|
||||
// Error callback
|
||||
function(e) {
|
||||
var evt;
|
||||
|
||||
// If DONE (cancelled), then don't do anything
|
||||
if (me.readyState === FileWriter.DONE) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Save error
|
||||
me.error = e;
|
||||
|
||||
// If onerror callback
|
||||
if (typeof me.onerror === "function") {
|
||||
evt = File._createEvent("error", me);
|
||||
me.onerror(evt);
|
||||
}
|
||||
|
||||
// DONE state
|
||||
me.readyState = FileWriter.DONE;
|
||||
|
||||
// If onwriteend callback
|
||||
if (typeof me.onwriteend === "function") {
|
||||
evt = File._createEvent("writeend", me);
|
||||
me.onwriteend(evt);
|
||||
}
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
/**
|
||||
* Writes data to the file
|
||||
*
|
||||
@ -583,8 +459,7 @@ FileWriter.prototype.write = function(text) {
|
||||
|
||||
// If onwritestart callback
|
||||
if (typeof me.onwritestart === "function") {
|
||||
var evt = File._createEvent("writestart", me);
|
||||
me.onwritestart(evt);
|
||||
me.onwritestart({"type":"writestart", "target":me});
|
||||
}
|
||||
|
||||
// Write file
|
||||
@ -605,8 +480,7 @@ FileWriter.prototype.write = function(text) {
|
||||
|
||||
// If onwrite callback
|
||||
if (typeof me.onwrite === "function") {
|
||||
evt = File._createEvent("write", me);
|
||||
me.onwrite(evt);
|
||||
me.onwrite({"type":"write", "target":me});
|
||||
}
|
||||
|
||||
// DONE state
|
||||
@ -614,8 +488,7 @@ FileWriter.prototype.write = function(text) {
|
||||
|
||||
// If onwriteend callback
|
||||
if (typeof me.onwriteend === "function") {
|
||||
evt = File._createEvent("writeend", me);
|
||||
me.onwriteend(evt);
|
||||
me.onwriteend({"type":"writeend", "target":me});
|
||||
}
|
||||
},
|
||||
|
||||
@ -633,8 +506,7 @@ FileWriter.prototype.write = function(text) {
|
||||
|
||||
// If onerror callback
|
||||
if (typeof me.onerror === "function") {
|
||||
evt = File._createEvent("error", me);
|
||||
me.onerror(evt);
|
||||
me.onerror({"type":"error", "target":me});
|
||||
}
|
||||
|
||||
// DONE state
|
||||
@ -642,8 +514,7 @@ FileWriter.prototype.write = function(text) {
|
||||
|
||||
// If onwriteend callback
|
||||
if (typeof me.onwriteend === "function") {
|
||||
evt = File._createEvent("writeend", me);
|
||||
me.onwriteend(evt);
|
||||
me.onwriteend({"type":"writeend", "target":me});
|
||||
}
|
||||
}
|
||||
);
|
||||
@ -703,8 +574,7 @@ FileWriter.prototype.truncate = function(size) {
|
||||
|
||||
// If onwritestart callback
|
||||
if (typeof me.onwritestart === "function") {
|
||||
var evt = File._createEvent("writestart", me);
|
||||
me.onwritestart(evt);
|
||||
me.onwritestart({"type":"writestart", "target":this});
|
||||
}
|
||||
|
||||
// Write file
|
||||
@ -724,8 +594,7 @@ FileWriter.prototype.truncate = function(size) {
|
||||
|
||||
// If onwrite callback
|
||||
if (typeof me.onwrite === "function") {
|
||||
evt = File._createEvent("write", me);
|
||||
me.onwrite(evt);
|
||||
me.onwrite({"type":"write", "target":me});
|
||||
}
|
||||
|
||||
// DONE state
|
||||
@ -733,8 +602,7 @@ FileWriter.prototype.truncate = function(size) {
|
||||
|
||||
// If onwriteend callback
|
||||
if (typeof me.onwriteend === "function") {
|
||||
evt = File._createEvent("writeend", me);
|
||||
me.onwriteend(evt);
|
||||
me.onwriteend({"type":"writeend", "target":me});
|
||||
}
|
||||
},
|
||||
|
||||
@ -751,8 +619,7 @@ FileWriter.prototype.truncate = function(size) {
|
||||
|
||||
// If onerror callback
|
||||
if (typeof me.onerror === "function") {
|
||||
evt = File._createEvent("error", me);
|
||||
me.onerror(evt);
|
||||
me.onerror({"type":"error", "target":me});
|
||||
}
|
||||
|
||||
// DONE state
|
||||
@ -760,8 +627,7 @@ FileWriter.prototype.truncate = function(size) {
|
||||
|
||||
// If onwriteend callback
|
||||
if (typeof me.onwriteend === "function") {
|
||||
evt = File._createEvent("writeend", me);
|
||||
me.onwriteend(evt);
|
||||
me.onwriteend({"type":"writeend", "target":me});
|
||||
}
|
||||
}
|
||||
);
|
||||
|
@ -16,12 +16,12 @@ import android.content.Intent;
|
||||
import android.content.res.Configuration;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.Picture;
|
||||
import android.media.AudioManager;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.Window;
|
||||
import android.view.WindowManager;
|
||||
@ -31,7 +31,6 @@ import android.webkit.JsPromptResult;
|
||||
import android.webkit.WebSettings;
|
||||
import android.webkit.WebStorage;
|
||||
import android.webkit.WebView;
|
||||
import android.webkit.WebView.PictureListener;
|
||||
import android.webkit.WebViewClient;
|
||||
import android.webkit.GeolocationPermissions.Callback;
|
||||
import android.webkit.WebSettings.LayoutAlgorithm;
|
||||
@ -111,8 +110,8 @@ public class DroidGap extends PhonegapActivity {
|
||||
protected WebView appView;
|
||||
protected WebViewClient webViewClient;
|
||||
|
||||
private LinearLayout root;
|
||||
boolean bound = false;
|
||||
protected LinearLayout root;
|
||||
public boolean bound = false;
|
||||
public CallbackServer callbackServer;
|
||||
protected PluginManager pluginManager;
|
||||
protected boolean cancelLoadUrl = false;
|
||||
@ -235,7 +234,8 @@ public class DroidGap extends PhonegapActivity {
|
||||
// Bind PhoneGap objects to JavaScript
|
||||
this.bindBrowser(this.appView);
|
||||
|
||||
// Add web view
|
||||
// Add web view but make it invisible while loading URL
|
||||
this.appView.setVisibility(View.INVISIBLE);
|
||||
root.addView(this.appView);
|
||||
setContentView(root);
|
||||
|
||||
@ -302,8 +302,7 @@ public class DroidGap extends PhonegapActivity {
|
||||
// If spashscreen
|
||||
this.splashscreen = this.getIntegerProperty("splashscreen", 0);
|
||||
if (this.splashscreen != 0) {
|
||||
this.appView.setBackgroundColor(0);
|
||||
this.appView.setBackgroundResource(splashscreen);
|
||||
root.setBackgroundResource(this.splashscreen);
|
||||
}
|
||||
|
||||
// If hideLoadingDialogOnPageLoad
|
||||
@ -947,19 +946,38 @@ public class DroidGap extends PhonegapActivity {
|
||||
return true;
|
||||
}
|
||||
|
||||
// If sms:5551212
|
||||
else if (url.startsWith("sms:")) {
|
||||
try {
|
||||
Intent intent = new Intent(Intent.ACTION_VIEW);
|
||||
intent.setData(Uri.parse(url));
|
||||
intent.putExtra("address", url.substring(4));
|
||||
intent.setType("vnd.android-dir/mms-sms");
|
||||
startActivity(intent);
|
||||
} catch (android.content.ActivityNotFoundException e) {
|
||||
System.out.println("Error sending sms "+url+":"+ e.toString());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
// If sms:5551212?body=This is the message
|
||||
else if (url.startsWith("sms:")) {
|
||||
try {
|
||||
Intent intent = new Intent(Intent.ACTION_VIEW);
|
||||
|
||||
// Get address
|
||||
String address = null;
|
||||
int parmIndex = url.indexOf('?');
|
||||
if (parmIndex == -1) {
|
||||
address = url.substring(4);
|
||||
}
|
||||
else {
|
||||
address = url.substring(4, parmIndex);
|
||||
|
||||
// If body, then set sms body
|
||||
Uri uri = Uri.parse(url);
|
||||
String query = uri.getQuery();
|
||||
if (query != null) {
|
||||
if (query.startsWith("body=")) {
|
||||
intent.putExtra("sms_body", query.substring(5));
|
||||
}
|
||||
}
|
||||
}
|
||||
intent.setData(Uri.parse("sms:"+address));
|
||||
intent.putExtra("address", address);
|
||||
intent.setType("vnd.android-dir/mms-sms");
|
||||
startActivity(intent);
|
||||
} catch (android.content.ActivityNotFoundException e) {
|
||||
System.out.println("Error sending sms "+url+":"+ e.toString());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// All else
|
||||
else {
|
||||
@ -1009,16 +1027,8 @@ public class DroidGap extends PhonegapActivity {
|
||||
// from the JS side when the JS gets to that code.
|
||||
appView.loadUrl("javascript:try{ PhoneGap.onNativeReady.fire();}catch(e){_nativeReady = true;}");
|
||||
|
||||
// If splash screen is showing, clear it
|
||||
if (this.ctx.splashscreen != 0) {
|
||||
this.ctx.splashscreen = 0;
|
||||
appView.setPictureListener(new PictureListener(){
|
||||
public void onNewPicture(WebView viewtwo, Picture picture) {
|
||||
appView.setBackgroundResource(0);
|
||||
appView.setPictureListener(null);
|
||||
}
|
||||
});
|
||||
}
|
||||
// Make app view visible
|
||||
appView.setVisibility(View.VISIBLE);
|
||||
|
||||
// Stop "app loading" spinner if showing
|
||||
if (this.ctx.hideLoadingDialogOnPageLoad) {
|
||||
|
Loading…
Reference in New Issue
Block a user