50 |
50 |
51 QTM_USE_NAMESPACE |
51 QTM_USE_NAMESPACE |
52 |
52 |
53 class CntFilterDetail : public CntAbstractContactFilter |
53 class CntFilterDetail : public CntAbstractContactFilter |
54 { |
54 { |
|
55 private: |
|
56 class TMatch { |
|
57 public: |
|
58 TMatch(); |
|
59 |
|
60 static TInt32 createHash(const TDesC& phoneNumberString, |
|
61 TInt matchLength, |
|
62 TInt& numPhoneDigits); |
|
63 static void stripOutNonDigitChars(TDes& text); |
|
64 static TInt32 padOutPhoneMatchNumber(TInt32& phoneNumber, |
|
65 TInt padOutLength); |
|
66 public: |
|
67 TInt32 iLowerSevenDigits; |
|
68 TInt32 iUpperDigits; |
|
69 TInt iNumLowerDigits; |
|
70 TInt iNumUpperDigits; |
|
71 }; |
55 public: |
72 public: |
56 CntFilterDetail(CContactDatabase& contactDatabase, CntSymbianSrvConnection &cntServer,CntDbInfo& dbInfo); |
73 CntFilterDetail(CContactDatabase& contactDatabase, CntSymbianSrvConnection &cntServer,CntDbInfo& dbInfo); |
57 ~CntFilterDetail(); |
74 ~CntFilterDetail(); |
58 QList<QContactLocalId> contacts( |
75 QList<QContactLocalId> contacts( |
59 const QContactFilter &filter, |
76 const QContactFilter &filter, |
60 const QList<QContactSortOrder> &sortOrders, |
77 const QList<QContactSortOrder> &sortOrders, |
61 bool &filterSupported, |
78 bool &filterSupported, |
62 QContactManager::Error* error); |
79 QContactManager::Error* error); |
63 bool filterSupported(const QContactFilter& filter) ; |
80 bool filterSupported(const QContactFilter& filter) ; |
64 |
81 |
65 //bool isFilterSupported(const QContactFilter& filter) const; |
|
66 |
|
67 void getTableNameWhereClause( const QContactDetailFilter& filter, |
82 void getTableNameWhereClause( const QContactDetailFilter& filter, |
68 QString& tableName, |
83 QString& tableName, |
69 QString& sqlWhereClause , |
84 QString& sqlWhereClause , |
70 QContactManager::Error* error) const; |
85 QContactManager::Error* error) const; |
71 void createSelectQuery(const QContactFilter& filter, |
86 void createSelectQuery(const QContactFilter& filter, |
72 QString& sqlQuery, |
87 QString& sqlQuery, |
73 QContactManager::Error* error); |
88 QContactManager::Error* error); |
|
89 void createMatchPhoneNumberQuery(const QContactFilter& filter, |
|
90 QString& sqlQuery, |
|
91 QContactManager::Error* error); |
74 private: |
92 private: |
75 |
|
76 |
|
77 void updateForMatchFlag( const QContactDetailFilter& filter, |
93 void updateForMatchFlag( const QContactDetailFilter& filter, |
78 QString& fieldToUpdate , |
94 QString& fieldToUpdate , |
79 QContactManager::Error* error) const; |
95 QContactManager::Error* error) const; |
80 QList<QContactLocalId> HandlePhonenumberDetailFilter(const QContactFilter& filter); |
|
81 QList<QContactLocalId> HandlePredictiveSearchFilter(const QContactFilter& filter, |
96 QList<QContactLocalId> HandlePredictiveSearchFilter(const QContactFilter& filter, |
82 QContactManager::Error* error); |
97 QContactManager::Error* error); |
83 |
98 |
84 TInt CntFilterDetail::searchPhoneNumbers( |
99 CntFilterDetail::TMatch createPaddedPhoneDigits(const TDesC& number, |
85 CContactIdArray*& idArray, |
100 const TInt numLowerDigits, |
86 const TDesC& phoneNumber, |
101 const TInt numUpperDigits, |
87 const TInt matchLength); |
102 QContactManager::Error* error); |
88 void getMatchLengthL(TInt& matchLength); |
103 CntFilterDetail::TMatch createPhoneMatchNumber(const TDesC& text, |
|
104 TInt lowerMatchLength, |
|
105 TInt upperMatchLength, |
|
106 QContactManager::Error* error); |
|
107 bool getMatchLengthL(TInt& matchLength); |
|
108 |
89 protected: |
109 protected: |
90 CContactDatabase& m_contactdatabase; |
110 CContactDatabase& m_contactdatabase; |
91 CntSymbianSrvConnection &m_srvConnection; |
111 CntSymbianSrvConnection &m_srvConnection; |
92 CntDbInfo& m_dbInfo; |
112 CntDbInfo& m_dbInfo; |
93 }; |
113 }; |