CN103442135B - 对联系人表项的合并及去重操作的处理方法和触控终端 - Google Patents

对联系人表项的合并及去重操作的处理方法和触控终端 Download PDF

Info

Publication number
CN103442135B
CN103442135B CN201310361512.6A CN201310361512A CN103442135B CN 103442135 B CN103442135 B CN 103442135B CN 201310361512 A CN201310361512 A CN 201310361512A CN 103442135 B CN103442135 B CN 103442135B
Authority
CN
China
Prior art keywords
list item
contact person
merging
list
contact
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201310361512.6A
Other languages
English (en)
Other versions
CN103442135A (zh
Inventor
雷明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huizhou TCL Mobile Communication Co Ltd
Original Assignee
Huizhou TCL Mobile Communication Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huizhou TCL Mobile Communication Co Ltd filed Critical Huizhou TCL Mobile Communication Co Ltd
Priority to CN201310361512.6A priority Critical patent/CN103442135B/zh
Publication of CN103442135A publication Critical patent/CN103442135A/zh
Priority to EP14837999.3A priority patent/EP3038332B1/en
Priority to US14/439,174 priority patent/US9996544B2/en
Priority to PCT/CN2014/075516 priority patent/WO2015024387A1/zh
Application granted granted Critical
Publication of CN103442135B publication Critical patent/CN103442135B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1748De-duplication implemented within the file system, e.g. based on file segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/122File system administration, e.g. details of archiving or snapshots using management policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/26Devices for calling a subscriber
    • H04M1/27Devices whereby a plurality of signals may be stored simultaneously
    • H04M1/274Devices whereby a plurality of signals may be stored simultaneously with provision for storing more than one subscriber number at a time, e.g. using toothed disc
    • H04M1/2745Devices whereby a plurality of signals may be stored simultaneously with provision for storing more than one subscriber number at a time, e.g. using toothed disc using static electronic memories, e.g. chips
    • H04M1/27453Directories allowing storage of additional subscriber data, e.g. metadata
    • H04M1/27457Management thereof, e.g. manual editing of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04808Several contacts: gestures triggering a specific function, e.g. scrolling, zooming, right-click, when the user establishes several contacts with the surface simultaneously; e.g. using several fingers or a combination of fingers and pen
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2250/00Details of telephonic subscriber devices
    • H04M2250/22Details of telephonic subscriber devices including a touch pad, a touch sensor or a touch detector

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Business, Economics & Management (AREA)
  • Signal Processing (AREA)
  • Library & Information Science (AREA)
  • General Business, Economics & Management (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本发明公开了对联系人表项的合并及去重操作的处理方法和触控终端,其处理方法包括:A、开启通讯录,显示所有联系人表项;B、根据联系人表项的选取动作记录所选联系人表项,接收合并联系人表项的拖动动作,并根据所述拖动动作合并所选联系人表项;C、合并时去除所选联系人表项中的重复信息,并检测所选联系人表项中的冲突信息。本发明只需拖动想要合并的联系人表项就能删除通讯录中的冗余记录,而且在合并的同时还去除了重复信息,并检测冲突信息,提高了触控终端的智能化效果,提升了用户体验。

Description

对联系人表项的合并及去重操作的处理方法和触控终端
技术领域
本发明涉及智能终端技术领域,特别涉及一种对联系人表项的合并及去重操作的处理方法和触控终端。
背景技术
智能手机等智能终端的联系人信息可以通过手工输入、SIM卡导入、SD卡导入、以及从网络数据备份中导入等方式录入到联系人列表中,在导入过程中,有时会出现一些的重复或冗余的信息,譬如:多条记录对应同一个联系人名字,且联系人电话号码相同,其它信息(如地址等)也相同;或者,多条记录对应同一个联系人名字,但联系人电话号码不同或不完全相同(即存在多个号码),甚至其它信息(如地址信息)也不同。
目前,用户面临上述情况时,往往会多花较多时间从联系人列表中找到想要的号码,同时会对这些冗余或重复信息进行合并处理,由于智能手机自身不知道哪些是需要合并处理,哪些不需要合并处理(因为现实中可能存在两个不同的联系人但名字一样的情况),因此用户只能手工处理来删除一些冗余信息及对重复信息合并。
在处理上述冗余信息和重复信息时,一般是由用户打开联系人表项信息,之后选择其中一个不想要的记录(即联系人表项)后删除该记录;或者需要用户在其中一个联系人表项中添加其它联系人表项中的信息(如添加一个电话号码),然后再删除其它联系人表项。所有这些过程都需要用户做很多繁琐的操作,需要打开很多的窗口,在不同的窗口间切来切去,非常麻烦,无法体现智能终端的智能化特点。
发明内容
鉴于上述现有技术的不足之处,本发明的目的在于提供一种对联系人表项的合并及去重操作的处理方法和触控终端,能通过拖动联系人表项的方式合并联系人记录,且能在合并的同时去除重复信息,并检测冲突信息。
为了达到上述目的,本发明采取了以下技术方案:
一种对联系人表项的合并及去重操作的处理方法,其包括:
A、开启通讯录,显示所有联系人表项;
B、根据联系人表项的选取动作记录所选联系人表项,接收合并联系人表项的拖动动作,并根据所述拖动动作合并所选联系人表项;
C、合并时去除所选联系人表项中的重复信息,并检测所选联系人表项中的冲突信息。
所述的对联系人表项的合并及去重操作的处理方法中,所述步骤A还包括:将联系人表项按联系人的姓名排序。
所述的对联系人表项的合并及去重操作的处理方法中,所述步骤B具体包括:
B11、当检测触摸屏上有两个触摸点时,记录两触摸点坐标之间的所有联系人表项;
B12、接收合并联系人表项的拖动动作,当一个触摸点所在的联系人表项拖动至与另一触摸点所在联系人表项部分重叠时,合并所述所有联系人表项。
所述的对联系人表项的合并及去重操作的处理方法中,所述步骤B具体包括:
B21、当检测触摸屏上有两个触摸点时,记录两触摸点坐标所在通讯录的联系人表项;
B22、接收合并联系人表项的拖动动作,当一个触摸点所在的联系人表项拖动至与另一触摸点所在联系人表项部分重叠时,合并这两个联系人表项。
所述的对联系人表项的合并及去重操作的处理方法中,在步骤B21中,两触摸点坐标所在通讯录的联系人表项为通讯录中两个相邻的联系人表项或者两个间隔的联系人表项。
所述的对联系人表项的合并及去重操作的处理方法中,在拖动联系人表项时,通过offsetTopAndBottom(d)函数对视图设置偏移量。
所述的对联系人表项的合并及去重操作的处理方法中,所述步骤C具体包括:
C1、在合并联系人表项时,去除所选联系人表项中的重复信息;
C2、检测所选联系人表项中的各项信息是否有冲突;
C3、若有,输出提示信息提示用户是否忽略所述冲突的信息;
C4、若是,则保存所述冲突的信息。
所述的对联系人表项的合并及去重操作的处理方法中,所述合并所选联系人表项时通过madapter.mergeContacts(choosedobjs)函数合并。
一种用于实现上述对联系人表项的合并及去重操作的处理方法的触控终端,其包括:
应用开启模块,用于开启通讯录,显示所有联系人表项;
拖动合并模块,用于根据联系人表项的选取动作记录所选联系人表项,接收合并联系人表项的拖动动作,并根据所述拖动动作合并所选联系人表项;
信息处理模块,用于合并时去除所选联系人表项中的重复信息,并检测所选联系人表项中的冲突信息。
所述的触控终端,其还包括:排序模块,用于将联系人表项按联系人的姓名排序。
相较于现有技术,本发明提供的对联系人表项的合并及去重操作的处理方法和触控终端,通讯录开启后根据联系人表项的选取动作记录所选联系人表项,接收合并联系人表项的拖动动作,并根据所述拖动动作合并所选联系人表项;合并时去除所选联系人表项中的重复信息,并检测所选联系人表项中的冲突信息。本发明只需拖动想要合并的联系人表项就能删除通讯录中的冗余记录,而且在合并的同时还去除了重复信息,并检测冲突信息,提高了触控终端的智能化效果,提升了用户体验。
附图说明
图1为本发明对联系人表项的合并及去重操作的处理方法流程图。
图2为本发明对联系人表项的合并及去重操作的处理方法中联系人列表的示意图。
图3为本发明对联系人表项的合并及去重操作的处理方法中合并两条联系人表项的示意图。
图4为本发明对联系人表项的合并及去重操作的处理方法中合并两条以上的联系人表项的示意图。
图5为本发明触控终端的结构框图。
具体实施方式
本发明提供一种对联系人表项的合并及去重操作的处理方法和触控终端,在合并去重操作时,用户只需在通讯录列表中,用一只手指按住其中一条记录(联系人表项)不放;另一只手指按住另一个记录,并向第一次按住的记录位置拖动;当两个记录出现重叠时,以第一次按住的记录作为要保留的记录来进行合并操作,把第一次按住和第二次按住之间的所有记录合并在一起,或者仅合并被按住的两条记录。本发明通过直接在屏幕上进行划动手指操作,符合人的操作习惯,可以对两个记录和多个记录进行处理,非常灵活。并且这种操作方式用户只需要在一个屏上就可以完成,操作非常简便。
为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
请参阅图1,其为本发明对联系人表项的合并及去重操作的处理方法较佳实施例的流程图。所述的方法包括:
S100、开启通讯录,显示所有联系人表项。
本实施例中,在开启通讯录时,将联系人表项按联系人的姓名排序。如图2所示,以智能手机为例,在智能手机中,联系人大多以列表形式显示给用户,通常是以联系人姓名的汉语拼音顺序进行排列,因此冗余的联系人信息通常是排列一起的,这就为合并去重操作创造了条件。
S200、根据联系人表项的选取动作记录所选联系人表项,接收合并联系人表项的拖动动作,并根据所述拖动动作合并所选联系人表项。
具体实施时,通过用户手指触控触摸屏选取联系人表项,在选取时可以通过菜单设置选取方式,实现两个触摸点选取两条联系人表项或两条以上的联系人表项。譬如,在选取时可设置选取范围为两个触摸点之间所有联系人表项,也可以设置选取范围仅是两个触摸点所在位置的联系人表项,下文将对这些操作过程和实现方式进行详细描述。
S300、合并时去除所选联系人表项中的重复信息,并检测所选联系人表项中的冲突信息。
其中,所述S300具体包括:第一步、在合并联系人表项时,去除所选联系人表项中的重复信息;第二步、检测所选联系人表项中的各项信息是否有冲突;若有,输出提示信息提示用户是否忽略所述冲突的信息;若用户选择是,则保存所述冲突的信息,若用户选择否,则根据用户的选择保留或删除冲突信息。
具体实施时,合并联系人表项首先需要对拟合并项进行冲突检测,对每一个联系人表项中的每个属性(如联系人名字,地址等信息)都要进行对比,如果一个属性只有一个联系人表项中有,则表示没有冲突的;如果多个联系人表项都有一个相同的属性(如地址),但这些属性的值都是相同的,表示这些是重复信息,也是没有冲突的,合并时保留其中的一条信息即可;只有当多个联系人表项都有一个相同的属性,且有两个以上的值不同时才会检测出冲突(如有两个不一样的地址),这时需要记录下冲突的信息,具体包括:冲突项的名称及冲突内容,并提示用户是否忽略,如果用户选择忽略则保留这些冲突信息,如果用户不忽略,则根据用户的选择删除冗余的信息。
本发明提供的联系人表项的合并及去重操作的处理方法可以对两条或两条以上的联系人表项进行合并操作。
当合并两条联系人表项时,所述步骤S200具体包括:第一步、当检测触摸屏上有两个触摸点时,记录两触摸点坐标所在通讯录的联系人表项;第二步、接收合并联系人表项的拖动动作,当一个触摸点所在的联系人表项拖动至与另一触摸点所在联系人表项部分重叠时,合并这两个联系人表项。
其中,两触摸点坐标所在通讯录的联系人表项为通讯录中两个相邻的联系人表项或者两个间隔的联系人表项。在对两条相邻的联系人表项合并时,图3所示,如果用户认为图3 a中的两个B1表示同一联系人,则可以通讯录中,用一只手指按住其中的第一条记录(即第一条联系人表项)不放;另一只手指按住第二条记录(即第二条联系人表项),选取这两条记录后,第二只手指控制第二次选取的记录向第一次选到的记录移动;当两个记录出现重叠时(如图3b所示),放开第二个手指或两个手指都放开,此时以第一次按住的记录作为要保留的记录来进行合并操作,把两条记录合并在一起,合并后的联系人表项如图3c所示。在检测是否需要进行合并操作时,通过触摸屏上的触摸点数量来判断,如果触摸点只有一个,或者触摸点消失,则表示用户发出了合并操作。此时,如果两个联系人表项没有重叠部分,则控制被拖动的联系人表项移动至原来的位置。在合并时,本发明采用以按住不动的表项为合并基础,将移动的表项合并至该表项中。本实施例虽然是以第一条记录为基础,将被拖动的第二条记录合并至第一条记录中,但在其它实施例中,还可以按住第二条记录不动,拖动第一条记录,将第一条记录合并到第二次记录中,本发明对此不作限制。
如果用户希望一次合并两条以上的联系人表项,通过设置功能设置联系人表项的选择方式。在合并时,所述步骤S200具体包括:第一步、当检测触摸屏上有两个触摸点时,记录两触摸点坐标之间的所有联系人表项;第二步、接收合并联系人表项的拖动动作,当一个触摸点所在的联系人表项拖动至与另一触摸点所在联系人表项部分重叠时,合并所述所有联系人表项。
在选取联系人表项时,可以选取两条或两条以上的相邻记录。如图2和图4所示,在图2的通讯录列表中,如果用户确定两个名字为B1和两个名字为B2的联系人表项表示的都是同一个联系人,只是名字不一样的话,可以进行图4所示的操作。如图4a所示,用户将一只手指按住第一个记录(排列在最前面的一条联系人表项,如第一个B1),将另一个手指按住第四个记录(排列在最后面的一条联系人表项,如第一个B2),并使第二个手指按住第四个记录向第一个记录移动;当第四个记录与第一个记录出现重叠时(如图4b所示),放开第二个手指或两个手指都放开,此时以第一次按住的记录作为要保留的记录来进行合并操作,将第一次按住和第二次按住之间的所有记录合并在一起,放开手指后,四个联系人表项被合成一个B1,如图4c所示。在这四条记录有重复时,同样以第一条记录为前提,去除其它记录中重复的信息,并在检测是否有冲突的信息。
由于联系人表项合并后,所有被合并的联系人表项在通讯录中就只有一个联系人表项了,就只会有一个名字,在合并两个以上的联系人表项时,如果用户想保留中间的名字,可以进行两次操作来实现。并且在合并时,以固定不动的联系人表项的名字作为合并后的名字,将拖动的联系人表项合并到固定不动的联系人表项中。
本发明的对联系人表项的合并及去重操作的处理方法中,其操作方法简单快捷,通过直接在屏幕上进行划动手指操作,符合人的生理习惯,因此很形象直观,用户易于接受。此操作可以对两个记录和多个记录进行处理,非常灵活。并且这种方式用户只需要在一个屏上就可以完成,非常方便,使用户进行合并联系人表项操作所需要的时间大大减少。另外由于本发明有冲突检测功能,可以防止用户不希望的合并操作的发生,确保了安全性能。
本发明的合并操作是在通讯录列表中进行的,但现有的智能手机系
统(如android系统)中,通讯录列表没有提供这种拖动操作的方式及相关函数接口,因此本发明需要对通讯录列表进行重载后增加相应的函数来实现联系人表项的拖动操作,以此来识别用户的合并操作意图,并提供相应的显示效果给用户。
当识别出合并操作意图后,智能终端需要实现把联系人数据库中的
联系人表项进行合并操作的函数方法,以此实现真正的联系人表项合并工作。并且,在合并操作执行前,应当向用户进行确认,以防止用户进行了误操作。
以下以智能手机为例对本发明的实现方式进行详细说明1、在通讯录界面实现联系人表项的拖动操作:
以android系统为例,用户界面的通讯录列表文件为:packages/apps/Contacts/src/com/android/contacts/list/DefaultContactBrowseListFragment.java。
如果要实现联系人表项的纵向拖动,本发明需要改动通讯录的触摸事件处理函数(onTouchEvent函数),需要增加对多点触摸的支持,具体如下:
首先,当检测到有两个触摸点时,在第二个触摸点按下时,记录下两个坐标点之间的所有联系人表项,如下述伪代码中的ACTION_POINTER_DOWN部分。然后当第二个触摸点移动时,所有被记下的联系人表项向第一个手指选中的联系人表项移动,移动的距离会根据被移动的联系人表项与第一个手指选中的联系人表项之间的距离作调整,从而能做到所有被记下的联系人表项同时向第一个手指选中的联系人表项靠拢的效果,如下述伪代码中的ACTION_MOVE部分。最后,当第二个手指离开屏幕的时候,判断第一个手指选中的联系人表项是否与第二个手指选中联系人表项有重叠部分,如果有,则触发执行合并操作,否则把所有被移动的视图移回原处,如下述伪代码中的ACTION_POINTER_UP部分。
其中,改动触摸事件的处理函数(onTouchEvent函数),可以通过继承父函数的方法进行,更为具体的描述见下的伪代码:
private float yo = -1.0f;    //上一次按的第二个点的纵向坐标位置
private float firstY1;      //第二个手指可以划动的界限坐标位置
private float firstY2;     //第二个手指可以划动的界限坐标位置
int position1;        //第一个手指选中的联系人表项在列表中的位置
int position2;       //第二个手指选中的联系人表项在列表中的位置
private chooseObj[] choosedobjs;    //用于记录两个手指间的联系人表项及移动量记录
private boolean choosedSameView = false; //是否两个手指选中同一个联系人表项
Override
public boolean onTouchEvent(MotionEvent ev) {  //重载触摸屏事件
int action = ev.getAction();              //获取事件
int pointcount = ev.getPointerCount();   //获取触点个数
if (pointcount < 2) {                      //如果为单点触摸
return super.onTouchEvent(ev);    //执行单点触摸的操作
}
switch (action & MotionEvent.ACTION_MASK) {
  ....
case MotionEvent.ACTION_POINTER_DOWN: {    //如果是第二个点的按下事件
int x1 = (int) ev.getX(0);                 //记录触摸点的坐标位置
int y1 = (int) ev.getY(0);
int x2 = (int) ev.getX(1);
int y2 = (int) ev.getY(1);
yo = y2;      //记录上一次按的第二个点的纵向坐标位置
firstY1 = y1;     //记录第二个手指可以划动的界限坐标位置
firstY2 = y2;     //记录第二个手指可以划动的界限坐标位置
int position1 = pointToPosition(x1, y1);      //获取第一个手指按的联系人表项在列表中的位置
int position2 = pointToPosition(x2, y2);     //获取第二个手指按的联系人表项在列表中的位置
choosedSameView = false;
if (position1 == position2) {     //如果是同一个联系人表项则退出
    choosedSameView = true;
    break;
}
//记录下第一个手指与第二手指之间所有的联系人表项的视图
saveAllchoosedItems(choosedobjs, position1, position2);
break;
}
case MotionEvent.ACTION_MOVE: {   //如果是点移动操作事件
float y2 = ev.getY(1);     //获取当前的第二个触摸点的纵坐标
    //如果越界或是同一个联系人表项则退出
if (choosedSameView || !isIn(firstY1, y2, firstY2)) break;
float offd = y2 - yo;     //计算第二个触摸点本次移动距离
yo = y2;           //更新上一次按的第二个点的纵向坐标位置
//计算两个手指之间的联系人表项的个数
int count = choosedobjs != null ? choosedobjs.length : 0;
for (int i = 0; i < count; i++) {
  float offdd = offd * i / (count - 1);  //计算每个联系人表项的视图需要移动的距离
 choosedobjs[i].move(offdd);     //移动联系人表项的视图
}
break;
}
case MotionEvent.ACTION_POINTER_UP: {      //如果是第二个手指距离屏幕事件
    float y2 = ev.getY(1);  //获取当前的第二个触摸点的纵坐标
    //如果第一个选中的联系人表项和第二个选中的联系人表项足够近,则触发合并操作
    if (|y2 - y1| < minDistance) {
      madapter.mergeContacts(choosedobjs);           //合并操作
      madapter.notifyDataSetChanged();      //刷新
      break;
}
    //如果不能合并,则放弃并把列表还原
    int count = choosedobjs != null ? choosedobjs.length : 0;
    for (int i = 0; i < count; i++) {
       choosedobjs[i].moveBack();  //所有表项视图移动回最初的位置
    }
    choosedobjs = null;         //清空选中的联系人表项
    madapter.notifyDataSetChanged();      //刷新
    break;
}
default:;
}
  return true;
}
以上伪代码中的choosedobjs记录了第一个手指与第二个手指选中的所有联系人表项,每个联系人表项记录chooseObj对象中,这个对象中记录了联系人表项的视图(View)、联系人信息以及位移记录,对视图的移动也是通过这个对象中的move方法来实现,其中,move方法是通过对视图设置偏移量(offsetTopAndBottom(d)函数)来实现的,即:在拖动联系人表项时,通过offsetTopAndBottom(d)函数对视图设置偏移量,具体伪代码如下:
private void move(int d) {    //move方法
view.offsetTopAndBottom(d); //设置偏移量
offset += d;          //记录偏移量
}
当第二个手指离开屏幕时,如果识别出可以进行合并操作则触发合并操作,合并所选联系人表项通过madapter.mergeContacts(choosedobjs)函数合并,如上述madapter.mergeContacts(choosedobjs)函数所示。
2、联系人表项合并与用户确认操作
合并联系人记录首先需要对拟合并项进行冲突检测,对每一个联系人表项中的每个属性(如联系人名字,地址等信息)都要进行对比,如果一个属性只有一个联系人表项有,则表示没有冲突;如果多个联系人表项都有一个相同的属性(如地址),但这些属性的值都是相同的,也是没有冲突的,只有两个以上的值不同时才会检测出冲突(如有两个不一样的地址),这时需要记录下冲突的信息,包括:冲突项的名称及冲突内容。
其中,冲突检测的函数为:private boolean checkConflict(String item1, String item2, String tag),具体实现方式如下:
// 检测冲突的函数
private boolean checkConflict(String item1, String item2, String tag) {
  if(item1 == null) { //如果是第一个记录,则不可能是冲突的,直接记录
    item1 = item2;
    return false;
  } else if (item2 == item1){   //如果两个记录是一样的,也无冲突
    return false;
  } else {
    conflictString.append(tag + item1 + " " + item2); //发生冲突,记录下冲突内容
    return true;
  }
}
在检测冲突的函数中,如果检测出冲突,函数返回值为真,否则为假。如果没有检测出冲突,则参数item1的值将记录下将要保存的值。上述代码中的conflictString是记录冲突内容的字符串,在下面的代码中将再提及。本实施例中,对于电话号码不用作冲突检测,因为一个联系人可以使用多个号码,但要将重复的去掉。
本发明实施例中,检测冲突的过程同时也是作联系人表项属性的合并的过程,只是没有最终写到数据库中,这个过程中,本发明会为每个联系人表项属性保留一个值,如果没有冲突,保留的是唯一的值,如果有冲突,保留的是离第一个手指选中项最近的联系人表项的属性值。
在有了每个联系人表项的属性值后,就可以将其写入到数据库中了,但如果有冲突的话,必须要与用户进行确认,告知其冲突的内容,如果用户确认冲突是可以忽略的之后,本发明才能进行实际的数据库写入操作。
整个合并操作的详细过程,见如下的伪代码所示:
private StringBuilder conflictString;  //冲突记录字符串
// 以下用于最终要保存的联系人表项属性信息
private String name, company, email, im, address, notes, nickname, website;
private HashMap<String, String> phoneNumber = new HashMap<String, String>();
public void mergeContacts(final chooseObj[] contacts) {
  boolean haveConflict = false;                //设置冲突标记
  conflictString = new StringBuilder();          //设置冲突记录字符串
  int count = contacts.length;                   //要合并的个数
  for (int i = 0; i<count; i++) {   //对每个项进行冲突检测
    //检查名字是否冲突
haveConflict|=checkConflict(name,getNameFromUri(contacts[i].uri),"Name");
    //检查公司名是否冲突
haveConflict|=checkConflict(company,getCompanyFromUri(contacts[i].uri), "Company");
    //检查邮件地址是否冲突
    haveConflict|= checkConflict(email, getEmailFromUri(contacts[i].uri), "Email");
    //检查及时通信地址是否冲突
    haveConflict|=checkConflict(im,getIMFromUri(contacts[i].uri),"IM");
    //检查地址是否冲突
haveConflict|=checkConflict(address,getAddressFromUri(contacts[i].uri), "Address");
    //检查记录是否冲突
    haveConflict |= checkConflict(notes, getNotesFromUri(contacts[i].uri), "Notes");
    //检查别名是否冲突
haveConflict|=checkConflict(nickname,getNickNameFromUri(contacts[i].uri), "NickName");
    //检查网址是否冲突
haveConflict|=checkConflict(website,getWebsiteFromUri(contacts[i].uri), "Website");
    //记录下所有的电话号(去掉重复的)
    String number, kind;
   getPhoneNumberFromUri(contacts[i].uri, number, kind);
    if (!phoneNumber.containsKey(number)) {
    phoneNumber.put(number, kind);
    }
}
if (haveConflict) {    //如果发生冲突,则弹出对话框,请求用户确认
    new AlertDialog.Builder(mContext)
        .setTitle("有冲突,是否合并,冲突为:");     //设置标题
       .setMessage(conflictString.toString()); //设置冲突内容
        .setPositiveButton("忽略冲突", new DialogInterface.OnClickListener() {
         //如果用户选则忽略冲突,则进行合并操作
         public void onClick(DialogInterface dialog, int which) {
            mergeContacts(phoneNumber, name, company, email,  //合并操作
               im, address, notes, nickname, website, contacts);
          }
       })
      .setNegativeButton("取消", null)//如果用户取消则什么也不执行
      .create().show();
    } else {  //如果没有冲突,则直接执行合并操作,不进行提示
     mergeContacts(phoneNumber, name, company, email,
        im, address, notes, nickname, website, contacts);
   }
}
从以上代码中可见,整个过程第一部分是检测冲突,之后如果发生冲突则弹出对话框,告诉用户哪些内容是有冲突的,若用户选择忽略,则继续进行合并操作,如果没有检测出冲突则不用提示用户而直接进行合并。
其中,合并联系人表项的过程是:首先将冲突检测过程中所得到的联系人表项属性信息写到第一个手指选择的联系人表项的数据库记录中,然后再把其它的联系人表项删除。
合并操作的函数如下所示:
// 执行合并操作的函数
private void mergeContacts(HashMap<String, String> phoneNumber, String name, String company, String email,
    String im, String address, String notes, String nickname, String website, chooseObj[] contacts) {
  int count = contacts.length;              //要合并的个数
  //第一个记录是第一个手指选中的记录,把所有要合并的信息记录到URI所指向的联系人表项中
  EditAndSaveContact(contacts[0].uri, phoneNumber, name, company,
      email, im, address, notes, nickname, website);
  //删除其它的联系人表项
   for (int i = 1; i<count; i++) {
     deleteTheContact(contacts[i].uri);
  }
}
本发明还相应提供一种用于实现上述对联系人表项的合并及去重操作的处理方法的触控终端,该触控终端优选为智能手机,如图5所示,其包括:应用开启模块10、拖动合并模块20和信息处理模块30。所述应用开启模块10用于开启通讯录,显示所有联系人表项;拖动合并模块20用于根据联系人表项的选取动作记录所选联系人表项,接收合并联系人表项的拖动动作,并根据所述拖动动作合并所选联系人表项;信息处理模块30用于合并时去除所选联系人表项中的重复信息,并检测所选联系人表项中的冲突信息。其具体工作原理和实现方式,请参阅上述实施例。
进一步地,本发明的触控终端还包括:排序模块,用于将联系人表项按联系人的姓名排序。其具体工作原理和实现方式,请参阅上述实施例。
综上所述,本发明只需拖动想要合并的联系人表项就能删除通讯录中的冗余记录,而且在合并的同时还去除了重复信息,并检测冲突信息,提高了触控终端的智能化效果,提升了用户体验。
另外,本发明通过直接在屏幕上进行划动手指操作,符合人的操作习惯,可以对两个记录或两个以上的记录进行处理,非常灵活。并且这种操作方式用户只需要在一个屏上就可以完成,操作非常简便。
可以理解的是,对本领域普通技术人员来说,可以根据本发明的技术方案及其发明构思加以等同替换或改变,而所有这些改变或替换都应属于本发明所附的权利要求的保护范围。

Claims (8)

1.一种对联系人表项的合并及去重操作的处理方法,其特征在于,包括:
A、开启通讯录,显示所有联系人表项;
B、根据联系人表项的选取动作记录所选联系人表项,接收合并联系人表项的拖动动作,并根据所述拖动动作合并所选联系人表项;
C、合并时去除所选联系人表项中的重复信息,并检测所选联系人表项中的冲突信息;
其中,所述步骤B具体包括:
B11、当检测触摸屏上有两个触摸点时,记录两触摸点坐标之间的所有联系人表项;
B12、接收合并联系人表项的拖动动作,当一个触摸点所在的联系人表项拖动至与另一触摸点所在联系人表项部分重叠时,合并所述所有联系人表项;
或者:
所述步骤B具体包括:
B21、当检测触摸屏上有两个触摸点时,记录两触摸点坐标所在通讯录的联系人表项;
B22、接收合并联系人表项的拖动动作,当一个触摸点所在的联系人表项拖动至与另一触摸点所在联系人表项部分重叠时,合并这两个联系人表项。
2.根据权利要求1所述的对联系人表项的合并及去重操作的处理方法,其特征在于,所述步骤A还包括:将联系人表项按联系人的姓名排序。
3.根据权利要求1所述的对联系人表项的合并及去重操作的处理方法,其特征在于,在步骤B21中,两触摸点坐标所在通讯录的联系人表项为通讯录中两个相邻的联系人表项或者两个间隔的联系人表项。
4.根据权利要求1所述的对联系人表项的合并及去重操作的处理方法,其特征在于,在拖动联系人表项时,通过offsetTopAndBottom(d)函数对视图设置偏移量。
5.根据权利要求1所述的对联系人表项的合并及去重操作的处理方法,其特征在于,所述步骤C具体包括:
C1、在合并联系人表项时,去除所选联系人表项中的重复信息;
C2、检测所选联系人表项中的各项信息是否有冲突;
C3、若有,输出提示信息提示用户是否忽略所述冲突的信息;
C4、若是,则保存所述冲突的信息。
6.根据权利要求1所述的对联系人表项的合并及去重操作的处理方法,其特征在于,所述合并所选联系人表项时通过madapter.mergeContacts(choosedobjs)函数合并。
7.一种用于实现权利要求1所述对联系人表项的合并及去重操作的处理方法的触控终端,其特征在于,包括:
应用开启模块,用于开启通讯录,显示所有联系人表项;
拖动合并模块,用于根据联系人表项的选取动作记录所选联系人表项,接收合并联系人表项的拖动动作,并根据所述拖动动作合并所选联系人表项;
信息处理模块,用于合并时去除所选联系人表项中的重复信息,并检测所选联系人表项中的冲突信息。
8.根据权利要求7所述的触控终端,其特征在于,还包括:排序模块,用于将联系人表项按联系人的姓名排序。
CN201310361512.6A 2013-08-19 2013-08-19 对联系人表项的合并及去重操作的处理方法和触控终端 Active CN103442135B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201310361512.6A CN103442135B (zh) 2013-08-19 2013-08-19 对联系人表项的合并及去重操作的处理方法和触控终端
EP14837999.3A EP3038332B1 (en) 2013-08-19 2014-04-16 Processing method and touch terminal for combining operation and duplicate removal operation on contact entries
US14/439,174 US9996544B2 (en) 2013-08-19 2014-04-16 Processing method and touch terminal for merge and deduplication operations on contact entries
PCT/CN2014/075516 WO2015024387A1 (zh) 2013-08-19 2014-04-16 对联系人表项的合并及去重操作的处理方法和触控终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310361512.6A CN103442135B (zh) 2013-08-19 2013-08-19 对联系人表项的合并及去重操作的处理方法和触控终端

Publications (2)

Publication Number Publication Date
CN103442135A CN103442135A (zh) 2013-12-11
CN103442135B true CN103442135B (zh) 2015-06-17

Family

ID=49695797

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310361512.6A Active CN103442135B (zh) 2013-08-19 2013-08-19 对联系人表项的合并及去重操作的处理方法和触控终端

Country Status (4)

Country Link
US (1) US9996544B2 (zh)
EP (1) EP3038332B1 (zh)
CN (1) CN103442135B (zh)
WO (1) WO2015024387A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103442135B (zh) 2013-08-19 2015-06-17 惠州Tcl移动通信有限公司 对联系人表项的合并及去重操作的处理方法和触控终端
CN104796312B (zh) * 2014-01-17 2017-12-26 腾讯科技(深圳)有限公司 联系人信息处理方法、装置及系统
CN103795644B (zh) * 2014-01-27 2017-04-05 福建星网锐捷网络有限公司 策略表表项配置方法、装置及系统
WO2015127604A1 (zh) * 2014-02-26 2015-09-03 华为技术有限公司 合并联系人信息的方法、装置及终端
WO2016165135A1 (zh) * 2015-04-17 2016-10-20 华为技术有限公司 联系人信息添加方法及用户设备
CN105376383B (zh) * 2015-10-28 2019-06-07 宁波萨瑞通讯有限公司 一种快速发送联系人信息的方法及系统
US10608972B1 (en) 2016-08-23 2020-03-31 Microsoft Technology Licensing, Llc Messaging service integration with deduplicator
CN109782983B (zh) * 2017-11-13 2021-05-25 腾讯科技(深圳)有限公司 应用程序界面的视图布局调整方法和装置
CN109040404B (zh) * 2018-07-17 2020-11-06 维沃移动通信有限公司 一种联系人去重方法及装置
CN109101152A (zh) * 2018-07-26 2018-12-28 维沃移动通信有限公司 一种信息输入方法及终端
CN109348034A (zh) * 2018-09-03 2019-02-15 珠海格力电器股份有限公司 一种联系人合并时的信息处理系统及其方法与移动终端
CN109889544B (zh) * 2019-03-27 2021-04-06 苏州工业园区服务外包职业学院 一种号码表项及所属号码表的冲突检测方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102946462A (zh) * 2012-11-01 2013-02-27 惠州Tcl移动通信有限公司 一种基于手机的联系人信息分组处理方法及手机
CN103049158A (zh) * 2012-12-31 2013-04-17 深圳市汇顶科技股份有限公司 一种电容式触摸屏的触摸检测方法及系统

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7739246B2 (en) * 2004-10-14 2010-06-15 Microsoft Corporation System and method of merging contacts
US20110216095A1 (en) * 2010-03-04 2011-09-08 Tobias Rydenhag Methods, Devices, and Computer Program Products Providing Multi-Touch Drag and Drop Operations for Touch-Sensitive User Interfaces
US8417696B2 (en) * 2010-06-10 2013-04-09 Microsoft Corporation Contact information merger and duplicate resolution
US20120030566A1 (en) * 2010-07-28 2012-02-02 Victor B Michael System with touch-based selection of data items
EP2475156A1 (en) * 2011-01-07 2012-07-11 Alcatel Lucent Contacts management in a telephone
CN103095900A (zh) 2011-11-07 2013-05-08 希姆通信息技术(上海)有限公司 手机中的信息整合方法及手机
KR101890674B1 (ko) * 2011-12-07 2018-08-22 엘지전자 주식회사 이동 단말기 및 그 동작 제어 방법
CN103179244A (zh) * 2011-12-23 2013-06-26 比亚迪股份有限公司 联系人合并方法及装置、移动终端
EP2812784A4 (en) * 2012-02-07 2015-11-11 Blackberry Ltd METHODS AND DEVICES FOR MERGING CONTACT RECORDINGS
CN103037061B (zh) * 2012-12-10 2016-02-10 东莞宇龙通信科技有限公司 一种联系人信息处理的方法及终端
CN103442135B (zh) * 2013-08-19 2015-06-17 惠州Tcl移动通信有限公司 对联系人表项的合并及去重操作的处理方法和触控终端

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102946462A (zh) * 2012-11-01 2013-02-27 惠州Tcl移动通信有限公司 一种基于手机的联系人信息分组处理方法及手机
CN103049158A (zh) * 2012-12-31 2013-04-17 深圳市汇顶科技股份有限公司 一种电容式触摸屏的触摸检测方法及系统

Also Published As

Publication number Publication date
US20150310029A1 (en) 2015-10-29
US9996544B2 (en) 2018-06-12
EP3038332B1 (en) 2019-11-13
EP3038332A1 (en) 2016-06-29
WO2015024387A1 (zh) 2015-02-26
EP3038332A4 (en) 2017-04-26
CN103442135A (zh) 2013-12-11

Similar Documents

Publication Publication Date Title
CN103442135B (zh) 对联系人表项的合并及去重操作的处理方法和触控终端
KR101794373B1 (ko) 선택된 데이터의 일시적인 포맷팅 및 도표화 기법
US7559033B2 (en) Method and system for improving selection capability for user interface
CN104885048B (zh) 用于管理数字内容项的系统和方法
CN104102441B (zh) 一种菜单项执行方法及装置
US9436385B2 (en) Invocation control over keyboard user interface
US20150106748A1 (en) Document exploration, analysis, and collaboration techniques
EP3696652A1 (en) User interface modification and usage tracking
CN103543903A (zh) 快捷操作方法、装置及移动终端
CN104216600B (zh) 一种提供应用程序的功能的方法及触屏智能终端设备
US20160210268A1 (en) Methods and systems for managing visual text objects using an outline-like layout
CN102946462A (zh) 一种基于手机的联系人信息分组处理方法及手机
JP2017139006A (ja) 関連する文書のための拡張機能アクティブ化
CN105812552B (zh) 一种应用图标的提示信息的消除方法及终端
CN103593108A (zh) 提供具有多任务功能的用户界面的方法和移动通信装置
CN101833392A (zh) 信息处理装置、信息处理方法和程序
US10331761B2 (en) Method, computer readable storage medium and computer system for efficient agenda drafting, synchronization and display
US10528246B2 (en) Method and device for managing information
CN103329068A (zh) 信息处理装置
CN103677603A (zh) 触控式区域性操作的方法及设备
CN111506244A (zh) 控件拖拽显示方法、系统、智能终端及存储介质
CN115344341A (zh) 基于捆绑会话组的交互方法、装置和计算机设备
CN104572223A (zh) 一种桌面图标的整理方法及装置
CN108769160B (zh) 基于服务的业务线推荐方法、装置及存储介质
US11112938B2 (en) Method and apparatus for filtering object by using pressure

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant