{"ㅎ", "하", "힣"}, /* D558, D7A3 */
};
+/* When one more information is matched in snippet API,
+ * only one result is returned as below priority.
+ * Priority order is set for UI concept.
+ * To get name, with_range_for_snippet() API should be used with name range.
+ */
+typedef enum {
+ CTSVC_SNIPPET_PRIO_NICKNAME = 1,
+ CTSVC_SNIPPET_PRIO_COMPANY,
+ CTSVC_SNIPPET_PRIO_POSTAL,
+ CTSVC_SNIPPET_PRIO_EMAIL,
+ CTSVC_SNIPPET_PRIO_NOTE,
+ CTSVC_SNIPPET_PRIO_NUMBER,
+ CTSVC_SNIPPET_PRIO_NAME,
+} ctsvc_snippet_prio_e;
+
+
typedef enum {
QUERY_SORTKEY,
QUERY_FILTER,
char cond_data[CTS_SQL_MAX_LEN] = {0};
char clean_number[SAFE_STRLEN(keyword) + 1];
ctsvc_clean_number(keyword, clean_number, sizeof(clean_number), false);
- temp_len = SAFE_SNPRINTF(&query, &query_size, len, ", (SELECT contact_id temp_contact_id, "
+ temp_len = SAFE_SNPRINTF(&query, &query_size, len,
+ ", (SELECT contact_id temp_contact_id, "
"datatype, _priority, _data FROM (");
if (0 <= temp_len)
len += temp_len;
if (range & CONTACTS_SEARCH_RANGE_NAME) {
- temp_len = SAFE_SNPRINTF(&query, &query_size, len, "SELECT contact_id, "
- "datatype, 1 as _priority, 'a' as _data FROM "CTS_TABLE_DATA" "
- "WHERE contact_id IN (");
+ snprintf(cond_data, sizeof(cond_data), "SELECT contact_id, "
+ "datatype, %d as _priority, 'a' as _data FROM "CTS_TABLE_DATA" "
+ "WHERE contact_id IN (", CTSVC_SNIPPET_PRIO_NAME);
+ temp_len = SAFE_SNPRINTF(&query, &query_size, len, cond_data);
if (0 <= temp_len)
len += temp_len;
if (0 <= temp_len)
len += temp_len;
}
- temp_len = SAFE_SNPRINTF(&query, &query_size, len, "SELECT contact_id, "
- "datatype, 2 as _priority, data3 as _data FROM "CTS_TABLE_DATA" "
- "WHERE contact_id IN (");
+ snprintf(cond_data, sizeof(cond_data), "SELECT contact_id, "
+ "datatype, %d as _priority, data3 as _data FROM "CTS_TABLE_DATA" "
+ "WHERE contact_id IN (", CTSVC_SNIPPET_PRIO_NUMBER);
+ temp_len = SAFE_SNPRINTF(&query, &query_size, len, cond_data);
if (0 <= temp_len)
len += temp_len;
}
snprintf(cond_data, sizeof(cond_data), "SELECT contact_id, datatype, "
"(CASE "
- "WHEN datatype=%d THEN 5 " /* POSTAL */
- "WHEN datatype=%d THEN 8 " /* MESSENGER */
- "WHEN datatype=%d THEN 4 " /* COMPANY */
- "WHEN datatype=%d THEN 3 " /* NICKNAME */
- "WHEN datatype=%d THEN 6 " /* EMAIL */
- "WHEN datatype=%d THEN 9 " /* RELATIONSHIP */
- "WHEN datatype=%d THEN 7 " /* NOTE */
+ "WHEN datatype=%d THEN %d " /* POSTAL */
+ "WHEN datatype=%d THEN %d " /* COMPANY */
+ "WHEN datatype=%d THEN %d " /* NICKNAME */
+ "WHEN datatype=%d THEN %d " /* EMAIL */
+ "WHEN datatype=%d THEN %d " /* NOTE */
"END) as _priority, "
"(CASE "
"WHEN datatype=%d THEN (COALESCE(data5||' ','')||"
"COALESCE(data6||' ','')||COALESCE(data7||' ','')||"
"COALESCE(data8||' ','')||COALESCE(data9,'')) " /* POSTAL */
- "WHEN datatype=%d THEN data3 " /* MESSENGER */
"WHEN datatype=%d THEN (COALESCE(data3||' ','')||"
"COALESCE(data4||' ','')||COALESCE(data5||' ','')||"
"COALESCE(data6||' ','')||COALESCE(data7||' ','')||"
"COALESCE(data10||' ','')||COALESCE(data11||' ','')) " /* COMPANY */
"WHEN datatype=%d THEN data3 " /* NICKNAME */
"WHEN datatype=%d THEN data3 " /* EMAIL */
- "WHEN datatype=%d THEN data3 " /* RELATIONSHIP */
"WHEN datatype=%d THEN data3 " /* NOTE */
"END) as _data FROM "CTS_TABLE_DATA" WHERE is_my_profile=0 AND contact_id IN (",
- CONTACTS_DATA_TYPE_POSTAL, CONTACTS_DATA_TYPE_MESSENGER, CONTACTS_DATA_TYPE_COMPANY,
- CONTACTS_DATA_TYPE_NICKNAME, CONTACTS_DATA_TYPE_EMAIL, CONTACTS_DATA_TYPE_RELATIONSHIP,
- CONTACTS_DATA_TYPE_NOTE, CONTACTS_DATA_TYPE_POSTAL, CONTACTS_DATA_TYPE_MESSENGER,
- CONTACTS_DATA_TYPE_COMPANY, CONTACTS_DATA_TYPE_NICKNAME, CONTACTS_DATA_TYPE_EMAIL,
- CONTACTS_DATA_TYPE_RELATIONSHIP, CONTACTS_DATA_TYPE_NOTE);
+ CONTACTS_DATA_TYPE_POSTAL, CTSVC_SNIPPET_PRIO_POSTAL,
+ CONTACTS_DATA_TYPE_COMPANY, CTSVC_SNIPPET_PRIO_COMPANY,
+ CONTACTS_DATA_TYPE_NICKNAME, CTSVC_SNIPPET_PRIO_NICKNAME,
+ CONTACTS_DATA_TYPE_EMAIL, CTSVC_SNIPPET_PRIO_EMAIL,
+ CONTACTS_DATA_TYPE_NOTE, CTSVC_SNIPPET_PRIO_NOTE,
+ CONTACTS_DATA_TYPE_POSTAL,
+ CONTACTS_DATA_TYPE_COMPANY,
+ CONTACTS_DATA_TYPE_NICKNAME,
+ CONTACTS_DATA_TYPE_EMAIL,
+ CONTACTS_DATA_TYPE_NOTE);
temp_len = SAFE_SNPRINTF(&query, &query_size, len, cond_data);
if (0 <= temp_len)
len += temp_len;
len += temp_len;
if (range & CONTACTS_SEARCH_RANGE_NAME) {
- temp_len = SAFE_SNPRINTF(&query, &query_size, len, "SELECT contact_id, "
- "datatype, 1 as _priority, 'a' as _data FROM "CTS_TABLE_DATA" "
- "WHERE contact_id IN (");
+ snprintf(cond_data, sizeof(cond_data), "SELECT contact_id, "
+ "datatype, %d as _priority, 'a' as _data FROM "CTS_TABLE_DATA" "
+ "WHERE contact_id IN (", CTSVC_SNIPPET_PRIO_NAME);
+ temp_len = SAFE_SNPRINTF(&query, &query_size, len, cond_data);
if (0 <= temp_len)
len += temp_len;
if (0 <= temp_len)
len += temp_len;
}
- temp_len = SAFE_SNPRINTF(&query, &query_size, len, "SELECT contact_id, "
- "datatype, 2 as _priority, data3 as _data FROM "CTS_TABLE_DATA" "
- "WHERE contact_id IN (");
+ snprintf(cond_data, sizeof(cond_data), "SELECT contact_id, "
+ "datatype, %d as _priority, data3 as _data FROM "CTS_TABLE_DATA" "
+ "WHERE contact_id IN (", CTSVC_SNIPPET_PRIO_NUMBER);
+ temp_len = SAFE_SNPRINTF(&query, &query_size, len, cond_data);
if (0 <= temp_len)
len += temp_len;
}
snprintf(cond_data, sizeof(cond_data), "SELECT contact_id, datatype, "
"(CASE "
- "WHEN datatype=%d THEN 5 " /* POSTAL */
- "WHEN datatype=%d THEN 8 " /* MESSENGER */
- "WHEN datatype=%d THEN 4 " /* COMPANY */
- "WHEN datatype=%d THEN 3 " /* NICKNAME */
- "WHEN datatype=%d THEN 6 " /* EMAIL */
- "WHEN datatype=%d THEN 9 " /* RELATIONSHIP */
- "WHEN datatype=%d THEN 7 " /* NOTE */
+ "WHEN datatype=%d THEN %d " /* POSTAL */
+ "WHEN datatype=%d THEN %d " /* COMPANY */
+ "WHEN datatype=%d THEN %d " /* NICKNAME */
+ "WHEN datatype=%d THEN %d " /* EMAIL */
+ "WHEN datatype=%d THEN %d " /* NOTE */
"END) as _priority, "
"(CASE "
"WHEN datatype=%d THEN (COALESCE(data5||' ','')||"
"COALESCE(data6||' ','')||COALESCE(data7||' ','')||"
"COALESCE(data8||' ','')||COALESCE(data9,'')) " /* POSTAL */
- "WHEN datatype=%d THEN data3 " /* MESSENGER */
"WHEN datatype=%d THEN (COALESCE(data3||' ','')||"
"COALESCE(data4||' ','')||COALESCE(data5||' ','')||"
"COALESCE(data6||' ','')||COALESCE(data7||' ','')||"
"COALESCE(data10||' ','')||COALESCE(data11||' ','')) " /* COMPANY */
"WHEN datatype=%d THEN data3 " /* NICKNAME */
"WHEN datatype=%d THEN data3 " /* EMAIL */
- "WHEN datatype=%d THEN data3 " /* RELATIONSHIP */
"WHEN datatype=%d THEN data3 " /* NOTE */
"END) as _data FROM "CTS_TABLE_DATA" WHERE contact_id IN (",
- CONTACTS_DATA_TYPE_POSTAL, CONTACTS_DATA_TYPE_MESSENGER, CONTACTS_DATA_TYPE_COMPANY,
- CONTACTS_DATA_TYPE_NICKNAME, CONTACTS_DATA_TYPE_EMAIL, CONTACTS_DATA_TYPE_RELATIONSHIP,
- CONTACTS_DATA_TYPE_NOTE, CONTACTS_DATA_TYPE_POSTAL, CONTACTS_DATA_TYPE_MESSENGER,
- CONTACTS_DATA_TYPE_COMPANY, CONTACTS_DATA_TYPE_NICKNAME, CONTACTS_DATA_TYPE_EMAIL,
- CONTACTS_DATA_TYPE_RELATIONSHIP, CONTACTS_DATA_TYPE_NOTE);
+ CONTACTS_DATA_TYPE_POSTAL, CTSVC_SNIPPET_PRIO_POSTAL,
+ CONTACTS_DATA_TYPE_COMPANY, CTSVC_SNIPPET_PRIO_COMPANY,
+ CONTACTS_DATA_TYPE_NICKNAME, CTSVC_SNIPPET_PRIO_NICKNAME,
+ CONTACTS_DATA_TYPE_EMAIL, CTSVC_SNIPPET_PRIO_EMAIL,
+ CONTACTS_DATA_TYPE_NOTE, CTSVC_SNIPPET_PRIO_NOTE,
+ CONTACTS_DATA_TYPE_POSTAL,
+ CONTACTS_DATA_TYPE_COMPANY,
+ CONTACTS_DATA_TYPE_NICKNAME,
+ CONTACTS_DATA_TYPE_EMAIL,
+ CONTACTS_DATA_TYPE_NOTE);
temp_len = SAFE_SNPRINTF(&query, &query_size, len, cond_data);
if (0 <= temp_len)
len += temp_len;