From ffa76246e3171240db916fa7fadc6ad92bbb6ee7 Mon Sep 17 00:00:00 2001 From: alunny Date: Mon, 2 Jan 2012 22:40:08 -0800 Subject: [PATCH] making preference reading code more robust --- framework/src/com/phonegap/DroidGap.java | 5 +++-- framework/src/com/phonegap/PreferenceSet.java | 10 ++++++++++ framework/test/com/phonegap/PreferenceSetTest.java | 14 ++++++++++++++ 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/framework/src/com/phonegap/DroidGap.java b/framework/src/com/phonegap/DroidGap.java index 893471f8..149b49b8 100755 --- a/framework/src/com/phonegap/DroidGap.java +++ b/framework/src/com/phonegap/DroidGap.java @@ -329,7 +329,7 @@ public class DroidGap extends PhonegapActivity { getWindow().requestFeature(Window.FEATURE_NO_TITLE); - if (preferences.pref("fullscreen").equals("true")) { + if (preferences.prefMatches("fullscreen","true")) { getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); } else { @@ -1901,7 +1901,8 @@ public class DroidGap extends PhonegapActivity { String value = xml.getAttributeValue(null, "value"); String readonlyString = xml.getAttributeValue(null, "readonly"); - boolean readonly = (readonlyString.equals("true")); + boolean readonly = (readonlyString != null && + readonlyString.equals("true")); LOG.i("PhoneGapLog", "Found preference for %s", name); diff --git a/framework/src/com/phonegap/PreferenceSet.java b/framework/src/com/phonegap/PreferenceSet.java index 4e6f79eb..86034608 100644 --- a/framework/src/com/phonegap/PreferenceSet.java +++ b/framework/src/com/phonegap/PreferenceSet.java @@ -30,4 +30,14 @@ public class PreferenceSet { return null; } + + public boolean prefMatches(String prefName, String prefValue) { + String value = pref(prefName); + + if (value == null) { + return false; + } else { + return value.equals(prefValue); + } + } } diff --git a/framework/test/com/phonegap/PreferenceSetTest.java b/framework/test/com/phonegap/PreferenceSetTest.java index fa565601..2eba2451 100644 --- a/framework/test/com/phonegap/PreferenceSetTest.java +++ b/framework/test/com/phonegap/PreferenceSetTest.java @@ -38,4 +38,18 @@ public class PreferenceSetTest { // return null if the preference is not defined assertEquals(null, preferences.pref("antigravity")); } + + @Test + public void testUnsetPreferenceChecking() { + PreferenceSet emptySet = new PreferenceSet(); + boolean value = emptySet.prefMatches("fullscreen", "true"); + assertEquals(false, value); + } + + @Test + public void testSetPreferenceChecking() { + preferences.add(screen); + boolean value = preferences.prefMatches("fullscreen", "true"); + assertEquals(true, value); + } }