summaryrefslogtreecommitdiff
path: root/android/sqlite3_android.cpp
diff options
context:
space:
mode:
authorDmitri Plotnikov <dplotnikov@google.com>2011-01-06 13:48:50 -0800
committerDmitri Plotnikov <dplotnikov@google.com>2011-01-06 13:49:18 -0800
commit46bdb5c49f8374539ec89e85cbb1a9ee7b3a2b10 (patch)
tree9967bac9881d54cf6d5690dd1a7be2b002c7e225 /android/sqlite3_android.cpp
parent95c34edce550d0869113085e0cd1b6b09e8fe38b (diff)
DO NOT MERGE. Adding a custom function to support legacy API compatibility
Bug: 3210604 Change-Id: Ie65c053ec5178d6cd991f69a5a2b6d5d51938ade
Diffstat (limited to 'android/sqlite3_android.cpp')
-rw-r--r--android/sqlite3_android.cpp34
1 files changed, 34 insertions, 0 deletions
diff --git a/android/sqlite3_android.cpp b/android/sqlite3_android.cpp
index ab52c5c..5cc39d8 100644
--- a/android/sqlite3_android.cpp
+++ b/android/sqlite3_android.cpp
@@ -34,6 +34,7 @@
#define ENABLE_ANDROID_LOG 0
#define SMALL_BUFFER_SIZE 10
+#define PHONE_NUMBER_BUFFER_SIZE 40
static int collate16(void *p, int n1, const void *v1, int n2, const void *v2)
{
@@ -153,6 +154,27 @@ static void phone_numbers_equal(sqlite3_context * context, int argc, sqlite3_val
}
}
+static void phone_number_stripped_reversed(sqlite3_context * context, int argc,
+ sqlite3_value ** argv)
+{
+ if (argc != 1) {
+ sqlite3_result_int(context, 0);
+ return;
+ }
+
+ char const * number = (char const *)sqlite3_value_text(argv[0]);
+ if (number == NULL) {
+ sqlite3_result_null(context);
+ return;
+ }
+
+ char out[PHONE_NUMBER_BUFFER_SIZE];
+ int outlen = 0;
+ android::phone_number_stripped_reversed_inter(number, out, PHONE_NUMBER_BUFFER_SIZE, &outlen);
+ sqlite3_result_text(context, (const char*)out, outlen, SQLITE_TRANSIENT);
+}
+
+
#if ENABLE_ANDROID_LOG
static void android_log(sqlite3_context * context, int argc, sqlite3_value ** argv)
{
@@ -582,5 +604,17 @@ extern "C" int register_android_functions(sqlite3 * handle, int utf16Storage)
return err;
}
+ // Register the _PHONE_NUMBER_STRIPPED_REVERSED function, which imitates
+ // PhoneNumberUtils.getStrippedReversed. This function is not public API,
+ // it is only used for compatibility with Android 1.6 and earlier.
+ err = sqlite3_create_function(handle,
+ "_PHONE_NUMBER_STRIPPED_REVERSED",
+ 1, SQLITE_UTF8, NULL,
+ phone_number_stripped_reversed,
+ NULL, NULL);
+ if (err != SQLITE_OK) {
+ return err;
+ }
+
return SQLITE_OK;
}