3
0
mirror of https://github.com/apache/cordova-android.git synced 2025-03-02 15:21:52 +08:00

Merge branch 'master' into 4.0.x (gradle java 6 & PluginManager race fix)

This commit is contained in:
Andrew Grieve 2014-11-26 11:47:24 -05:00
commit e597f98c62
4 changed files with 35 additions and 17 deletions
bin/templates
framework
build.gradle
src/org/apache/cordova

View File

@ -40,8 +40,8 @@ android {
publishNonDefault true publishNonDefault true
compileOptions { compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7 sourceCompatibility JavaVersion.VERSION_1_6
targetCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_6
} }
sourceSets { sourceSets {

View File

@ -87,8 +87,8 @@ android {
} }
compileOptions { compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7 sourceCompatibility JavaVersion.VERSION_1_6
targetCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_6
} }
if (System.env.RELEASE_SIGNING_PROPERTIES_FILE) { if (System.env.RELEASE_SIGNING_PROPERTIES_FILE) {

View File

@ -45,8 +45,8 @@ android {
publishNonDefault true publishNonDefault true
compileOptions { compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7 sourceCompatibility JavaVersion.VERSION_1_6
targetCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_6
} }
sourceSets { sourceSets {

View File

@ -87,8 +87,12 @@ public class PluginManager {
*/ */
private void startupPlugins() { private void startupPlugins() {
for (PluginEntry entry : entryMap.values()) { for (PluginEntry entry : entryMap.values()) {
// Add a null entry to for each non-startup plugin to avoid ConcurrentModificationException
// When iterating plugins.
if (entry.onload) { if (entry.onload) {
getPlugin(entry.service); getPlugin(entry.service);
} else {
pluginMap.put(entry.service, null);
} }
} }
} }
@ -199,9 +203,11 @@ public class PluginManager {
*/ */
public void onPause(boolean multitasking) { public void onPause(boolean multitasking) {
for (CordovaPlugin plugin : this.pluginMap.values()) { for (CordovaPlugin plugin : this.pluginMap.values()) {
if (plugin != null) {
plugin.onPause(multitasking); plugin.onPause(multitasking);
} }
} }
}
/** /**
* Called when the activity will start interacting with the user. * Called when the activity will start interacting with the user.
@ -210,18 +216,22 @@ public class PluginManager {
*/ */
public void onResume(boolean multitasking) { public void onResume(boolean multitasking) {
for (CordovaPlugin plugin : this.pluginMap.values()) { for (CordovaPlugin plugin : this.pluginMap.values()) {
if (plugin != null) {
plugin.onResume(multitasking); plugin.onResume(multitasking);
} }
} }
}
/** /**
* The final call you receive before your activity is destroyed. * The final call you receive before your activity is destroyed.
*/ */
public void onDestroy() { public void onDestroy() {
for (CordovaPlugin plugin : this.pluginMap.values()) { for (CordovaPlugin plugin : this.pluginMap.values()) {
if (plugin != null) {
plugin.onDestroy(); plugin.onDestroy();
} }
} }
}
/** /**
* Send a message to all plugins. * Send a message to all plugins.
@ -236,11 +246,13 @@ public class PluginManager {
return obj; return obj;
} }
for (CordovaPlugin plugin : this.pluginMap.values()) { for (CordovaPlugin plugin : this.pluginMap.values()) {
if (plugin != null) {
obj = plugin.onMessage(id, data); obj = plugin.onMessage(id, data);
if (obj != null) { if (obj != null) {
return obj; return obj;
} }
} }
}
return null; return null;
} }
@ -249,9 +261,11 @@ public class PluginManager {
*/ */
public void onNewIntent(Intent intent) { public void onNewIntent(Intent intent) {
for (CordovaPlugin plugin : this.pluginMap.values()) { for (CordovaPlugin plugin : this.pluginMap.values()) {
if (plugin != null) {
plugin.onNewIntent(intent); plugin.onNewIntent(intent);
} }
} }
}
/** /**
* Called when the URL of the webview changes. * Called when the URL of the webview changes.
@ -278,17 +292,21 @@ public class PluginManager {
*/ */
public void onReset() { public void onReset() {
for (CordovaPlugin plugin : this.pluginMap.values()) { for (CordovaPlugin plugin : this.pluginMap.values()) {
if (plugin != null) {
plugin.onReset(); plugin.onReset();
} }
} }
}
Uri remapUri(Uri uri) { Uri remapUri(Uri uri) {
for (CordovaPlugin plugin : this.pluginMap.values()) { for (CordovaPlugin plugin : this.pluginMap.values()) {
if (plugin != null) {
Uri ret = plugin.remapUri(uri); Uri ret = plugin.remapUri(uri);
if (ret != null) { if (ret != null) {
return ret; return ret;
} }
} }
}
return null; return null;
} }