diff --git a/framework/src/org/apache/cordova/DroidGap.java b/framework/src/org/apache/cordova/DroidGap.java index 2af6c9cc..d00d5b50 100755 --- a/framework/src/org/apache/cordova/DroidGap.java +++ b/framework/src/org/apache/cordova/DroidGap.java @@ -330,10 +330,8 @@ public class DroidGap extends Activity implements CordovaInterface { this.init(); } - // TODO @bc - background color doesn't work - // If backgroundColor + // Set backgroundColor this.backgroundColor = this.getIntegerProperty("backgroundColor", Color.BLACK); - LOG.e(TAG, "Setting background color=" + this.backgroundColor); this.root.setBackgroundColor(this.backgroundColor); // If keepRunning @@ -457,7 +455,18 @@ public class DroidGap extends Activity implements CordovaInterface { if (bundle == null) { return defaultValue; } - Boolean p = (Boolean) bundle.get(name); + Boolean p; + try { + p = (Boolean) bundle.get(name); + } catch (ClassCastException e) { + String s = bundle.get(name).toString(); + if ("true".equals(s)) { + p = true; + } + else { + p = false; + } + } if (p == null) { return defaultValue; } @@ -476,7 +485,12 @@ public class DroidGap extends Activity implements CordovaInterface { if (bundle == null) { return defaultValue; } - Integer p = (Integer) bundle.get(name); + Integer p; + try { + p = (Integer) bundle.get(name); + } catch (ClassCastException e) { + p = Integer.parseInt(bundle.get(name).toString()); + } if (p == null) { return defaultValue; } @@ -514,7 +528,12 @@ public class DroidGap extends Activity implements CordovaInterface { if (bundle == null) { return defaultValue; } - Double p = (Double) bundle.get(name); + Double p; + try { + p = (Double) bundle.get(name); + } catch (ClassCastException e) { + p = Double.parseDouble(bundle.get(name).toString()); + } if (p == null) { return defaultValue; } diff --git a/test/AndroidManifest.xml b/test/AndroidManifest.xml index 0d280ba6..06216ece 100755 --- a/test/AndroidManifest.xml +++ b/test/AndroidManifest.xml @@ -150,5 +150,8 @@ + + diff --git a/test/assets/www/backgroundcolor/index.html b/test/assets/www/backgroundcolor/index.html new file mode 100755 index 00000000..0746dcf6 --- /dev/null +++ b/test/assets/www/backgroundcolor/index.html @@ -0,0 +1,41 @@ + + + + + + + Cordova Tests + + + + + +

Background Color Test

+
+

Platform:  , Version:  

+

UUID:  , Name:  

+

Width:  , Height:   + , Color Depth:

+
+
+ Before this page was show, you should have seen the background flash green.
+
+ + diff --git a/test/src/org/apache/cordova/test/backgroundcolor.java b/test/src/org/apache/cordova/test/backgroundcolor.java new file mode 100755 index 00000000..f40a6732 --- /dev/null +++ b/test/src/org/apache/cordova/test/backgroundcolor.java @@ -0,0 +1,40 @@ +/* + 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. +*/ +package org.apache.cordova.test; + +import android.graphics.Color; +import android.os.Bundle; +import org.apache.cordova.*; + +public class backgroundcolor extends DroidGap { + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + // Properties must be set before init() is called, since some are processed during init(). + + // backgroundColor can also be set in cordova.xml, but you must use the number equivalent of the color. For example, Color.RED is + // + super.setIntegerProperty("backgroundColor", Color.GREEN); + + super.init(); + super.loadUrl("file:///android_asset/www/backgroundcolor/index.html"); + } + +}