diff options
author | Dmitri Plotnikov <dplotnikov@google.com> | 2011-01-06 13:48:50 -0800 |
---|---|---|
committer | Dmitri Plotnikov <dplotnikov@google.com> | 2011-01-06 13:49:18 -0800 |
commit | 46bdb5c49f8374539ec89e85cbb1a9ee7b3a2b10 (patch) | |
tree | 9967bac9881d54cf6d5690dd1a7be2b002c7e225 /android/sqlite3_android.cpp | |
parent | 95c34edce550d0869113085e0cd1b6b09e8fe38b (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.cpp | 34 |
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; } |