TypedProperties: add getStringInfo() to help deal with null strings

Signed-off-by: Dave Bort <dbort@android.com>
diff --git a/core/java/com/android/internal/util/TypedProperties.java b/core/java/com/android/internal/util/TypedProperties.java
index 299108f..c2ce210 100644
--- a/core/java/com/android/internal/util/TypedProperties.java
+++ b/core/java/com/android/internal/util/TypedProperties.java
@@ -683,4 +683,32 @@
     public String getString(String property) {
         return getString(property, "");
     }
+
+    // Values returned by getStringInfo()
+    public static final int STRING_TYPE_MISMATCH = -2;
+    public static final int STRING_NOT_SET = -1;
+    public static final int STRING_NULL = 0;
+    public static final int STRING_SET = 1;
+
+    /**
+     * Provides string type information about a property.
+     *
+     * @param property the property to check
+     * @return STRING_SET if the property is a string and is non-null.
+     *         STRING_NULL if the property is a string and is null.
+     *         STRING_NOT_SET if the property is not set (no type or value).
+     *         STRING_TYPE_MISMATCH if the property is set but is not a string.
+     */
+    public int getStringInfo(String property) {
+        Object value = super.get(property);
+        if (value == null) {
+            return STRING_NOT_SET;
+        }
+        if (value == NULL_STRING) {
+            return STRING_NULL;
+        } else if (value instanceof String) {
+            return STRING_SET;
+        }
+        return STRING_TYPE_MISMATCH;
+    }
 }