android 如何将电话簿SDN数字和其他普通的数字混合在一起?
最初的设计将默认SDN单独分出来,副标题"SDN"。
下面的变化可以通过例如实现SDN并安排普通相同数量在一起,按字母顺序排列。
DefaultContactListAdapter.java 的 configureSelection() 方法中
对 selection 为 IS_SDN_CONTACT + " < 1" 的例如以下语句注解掉(总共同拥有五处):
/**
* M: New Feature SDN <br>
* Origin code: <br>
* private void configureSelection(<br>
* @{
*/
protected void configureSelection(
CursorLoader loader, long directoryId, ContactListFilter filter) {
if (filter == null) {
return;
}
if (directoryId != Directory.DEFAULT) {
return;
}
StringBuilder selection = new StringBuilder();
List<String> selectionArgs = new ArrayList<String>();
switch (filter.filterType) {
case ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS: {
// We have already added directory=0 to the URI, which takes care of this
// filter
/** M: New Feature SDN @{ */
// 1 selection.append(RawContacts.IS_SDN_CONTACT + " < 1");
selection.append(RawContacts.IS_SDN_CONTACT + " < 2");
/** @} */
break;
}
case ContactListFilter.FILTER_TYPE_SINGLE_CONTACT: {
// We have already added the lookup key to the URI, which takes care of this
// filter
break;
}
case ContactListFilter.FILTER_TYPE_STARRED: {
selection.append(Contacts.STARRED + "!=0");
break;
}
case ContactListFilter.FILTER_TYPE_WITH_PHONE_NUMBERS_ONLY: {
selection.append(Contacts.HAS_PHONE_NUMBER + "=1");
/** M: New Feature SDN @{ */
// 2 selection.append(" AND " + RawContacts.IS_SDN_CONTACT + " < 1");
/** @} */
break;
}
case ContactListFilter.FILTER_TYPE_CUSTOM: {
selection.append(Contacts.IN_VISIBLE_GROUP + "=1");
if (isCustomFilterForPhoneNumbersOnly()) {
selection.append(" AND " + Contacts.HAS_PHONE_NUMBER + "=1");
}
/** M: New Feature SDN @{ */
// 3 selection.append(" AND " + RawContacts.IS_SDN_CONTACT + " < 1");
/** @} */
break;
}
case ContactListFilter.FILTER_TYPE_ACCOUNT: {
// We use query parameters for account filter, so no selection to add here.
/** M: Change Feature: As Local Phone account contains null account and Phone
* Account, the Account Query Parameter could not meet this requirement. So,
* We should keep to query contacts with selection. @{ */
if (AccountType.ACCOUNT_TYPE_LOCAL_PHONE.equals(filter.accountType)) {
selection.append("EXISTS ("
+ "SELECT DISTINCT " + RawContacts.CONTACT_ID
+ " FROM view_raw_contacts"
+ " WHERE ( ");
// 4 selection.append(RawContacts.IS_SDN_CONTACT + " < 1 AND ");
selection.append(RawContacts.CONTACT_ID + " = " + "view_contacts."
+ Contacts._ID
+ " AND (" + RawContacts.ACCOUNT_TYPE + " IS NULL "
+ " AND " + RawContacts.ACCOUNT_NAME + " IS NULL "
+ " AND " + RawContacts.DATA_SET + " IS NULL "
+ " OR " + RawContacts.ACCOUNT_TYPE + "=? "
+ " AND " + RawContacts.ACCOUNT_NAME + "=?
");
} else {
selection.append("EXISTS ("
+ "SELECT DISTINCT " + RawContacts.CONTACT_ID
+ " FROM view_raw_contacts"
+ " WHERE ( ");
// 5 selection.append(RawContacts.IS_SDN_CONTACT + " < 1 AND ");
selection.append(RawContacts.CONTACT_ID + " = " + "view_contacts."
+ Contacts._ID
+ " AND (" + RawContacts.ACCOUNT_TYPE + "=?"
+ " AND " + RawContacts.ACCOUNT_NAME + "=?");
}
selectionArgs.add(filter.accountType);
selectionArgs.add(filter.accountName);
if (filter.dataSet != null) {
selection.append(" AND " + RawContacts.DATA_SET + "=? )");
selectionArgs.add(filter.dataSet);
} else {
selection.append(" AND " + RawContacts.DATA_SET + " IS NULL )");
}
selection.append("))");
/** @} */
break;
}
}
/// M: Log the selection string.
Log.d(TAG, "[configureSelection] selection: " + selection.toString());
loader.setSelection(selection.toString());
loader.setSelectionArgs(selectionArgs.toArray(new String[0]));
}
版权声明:本文博客原创文章。博客,未经同意,不得转载。
android 如何将电话簿SDN数字和其他普通的数字混合在一起?的更多相关文章
- 如何使用alt键+数字键盘上的数字键打出特殊符号
如何使用alt键+数字键盘上的数字键打出特殊符号 有时当我需要画示意图说明一个问题,但是苦于没有合适的符号,因此,这篇博文将简单介绍一些特殊的符号方便自己以及大家使用. 实现原理很简单:所有的字符(包 ...
- 写一个方法完成如下功能,判断从文本框textbox1输入的一个字符,如果是数字则求该数字的阶乘,如果是小写字条,则转换为大写,大写字符不变,结果在文本框textbox2中显示
窗体设计: 代码: using System; using System.Collections.Generic; using System.ComponentModel; using System. ...
- Swift语言指南(五)--数字字面量和数字类型转换
原文:Swift语言指南(五)--数字字面量和数字类型转换 数字字面量 整数字面量写法如下: · 十进制数,无前缀 · 二进制数,以 0b 为前缀 · 八进制数,以 0o 为前缀 · 十六进制数,以 ...
- iOS TextField输入限制(限制长度、只能输入数字,只能输入数字字母……)
项目中各个地方都会用到TextField,textField的输入也会有各种需求,各种限制,每次用到的时候要重写一遍这些限制,导致各种垃圾代码,各种重复,有一天,我终于看不下去了,于是把textFie ...
- php生成随机字符串可指定纯数字、纯字母或者混合的
php 生成随机字符串 可以指定是纯数字 还是纯字母 或者混合的. 可以指定长度的. function rand_zifu($what,$number){ $string=''; for($i = 1 ...
- PHP金额工具类之将阿利伯数字转换为大写中文数字
1.将阿拉伯数字转换为中文大写数字 <?php namespace core\components; class PriceHelper extends \yii\base\Component{ ...
- 随机总数字里面选取随机数字进行随机排序案例(JAVA实现)
随机总数字里面选取随机数字进行随机排序案例,案例如下: 代码code: package com.sec; import java.util.Arrays; import java.util.Scann ...
- js玩转数字----取整,四舍五入,数字字符串转换
取整: 向下取整Math.floor(),向上取整Math.ceil(),四舍五入Math.round()),保留有效数位n.toFixed(),产生大于等于0小于1的随机数Math.random() ...
- js 判断是不是数字||判断字符串是不是数字(正则表达式)
js使用正则表达式判断对象是不是数字,或者字符串是不是数字,或者是不是数字类型 //判断是不是一个数字 或者 一个字符串里全是数字 isNumber (value) { if (value === u ...
随机推荐
- 怎样使用jlink一键烧录整个flash Hi3518 a c e Hi3515 Hi3512
以jlink烧录3515为例: 1\在jlink安装文件夹"C:\Program Files\SEGGER\JLinkARM_V426b"建立批处理文件"HI3515烧写 ...
- Windows phone 8 学习笔记(5) 图块与通知
原文:Windows phone 8 学习笔记(5) 图块与通知 基于metro风格的Windows phone 8 应用提到了图块的概念,它就是指启动菜单中的快速启动图标.一般一个应用必须有一个默认 ...
- cocos2d-x3.0 实现HTTP请求GET、POST
HTTP请求实现 把以下代码拷贝到新创建的project中就能看到效果 HelloWorldScene.h #include "cocos2d.h" /*记得要引头文件*/ #in ...
- ubuntu软件中心崩溃
网上找了下别人的解决方法(本人測试成功解决此问题): 提示说是lists出错 我的正是这样的情况 使用例如以下命令能够修复: 1.删除lists sudo rm /var/lib/apt/lists/ ...
- 什么是IT
这个是同事总结的,我补充了若干项,算不上原创,但这个没有在其他地方看到,在这儿权且当原创了.后面再配个软件架构图吧.看到缺的同学能够补充 什么是IT:Information-信息Technology- ...
- LAMBDA表达式常用 (全)
这里主要是将数据库中的常用操作用LAMBDA表达式重新表示了下,用法不多,但相对较常用,等有时间了还会扩展,并将查询语句及LINQ到时也一并重新整理下: 1.select语句:books.Select ...
- STL algorithm算法minmax,minmax_element(36)
minmax原型: std::minmax C++11 C++14 default (1) template <class T> pair <const T&,const T ...
- REDGATE SQLPROMPT 6.0新功能
原文:REDGATE SQLPROMPT 6.0新功能 REDGATE SQLPROMPT 6.0新功能 下载地址:http://files.cnblogs.com/lyhabc/SQLPrompt6 ...
- 谈论高并发(二十二)解决java.util.concurrent各种组件(四) 深入了解AQS(二)
上一页介绍AQS其基本设计思路以及两个内部类Node和ConditionObject实现 聊聊高并发(二十一)解析java.util.concurrent各个组件(三) 深入理解AQS(一) 这篇说一 ...
- Case when 的使用方法
SQL Case when 的使用方法 Case具有两种格式.简单Case函数和Case搜索函数. --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THE ...