williamr@2
|
1 |
/*
|
williamr@2
|
2 |
* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
|
williamr@2
|
3 |
* All rights reserved.
|
williamr@2
|
4 |
* This component and the accompanying materials are made available
|
williamr@4
|
5 |
* under the terms of "Eclipse Public License v1.0"
|
williamr@2
|
6 |
* which accompanies this distribution, and is available
|
williamr@4
|
7 |
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
|
williamr@2
|
8 |
*
|
williamr@2
|
9 |
* Initial Contributors:
|
williamr@2
|
10 |
* Nokia Corporation - initial contribution.
|
williamr@2
|
11 |
*
|
williamr@2
|
12 |
* Contributors:
|
williamr@2
|
13 |
*
|
williamr@2
|
14 |
* Description:
|
williamr@2
|
15 |
*
|
williamr@2
|
16 |
*/
|
williamr@2
|
17 |
|
williamr@2
|
18 |
|
williamr@2
|
19 |
|
williamr@2
|
20 |
#ifndef __TULPHONENUMBERUTILS_H__
|
williamr@2
|
21 |
#define __TULPHONENUMBERUTILS_H__
|
williamr@2
|
22 |
|
williamr@2
|
23 |
#include <coemain.h>
|
williamr@2
|
24 |
|
williamr@2
|
25 |
|
williamr@2
|
26 |
/**
|
williamr@2
|
27 |
Class offers static methods for parsing and validating phone numbers.
|
williamr@2
|
28 |
Phone Parser API provides methods which are used to parse and validate
|
williamr@2
|
29 |
phone numbers. The API consists of the TulPhoneNumberUtils class.
|
williamr@2
|
30 |
|
williamr@2
|
31 |
Examples of valid phone numbers:
|
williamr@2
|
32 |
1. +358501234567
|
williamr@2
|
33 |
2. +358 (50) 123 4567
|
williamr@2
|
34 |
|
williamr@2
|
35 |
Even though both of the above examples are valid phone numbers, only 1) is
|
williamr@2
|
36 |
accepted as a phone number by many systems. To convert 2) to 1), use the
|
williamr@2
|
37 |
parsing method of the API.
|
williamr@2
|
38 |
|
williamr@2
|
39 |
Usage:
|
williamr@2
|
40 |
|
williamr@2
|
41 |
@code
|
williamr@2
|
42 |
#include <tulphonenumberutils.h>
|
williamr@2
|
43 |
|
williamr@2
|
44 |
// Example shows how to use the parsing method of the API.
|
williamr@2
|
45 |
|
williamr@2
|
46 |
// A number to be parsed.
|
williamr@2
|
47 |
TBuf<50> number1 = _L("+358 (40) 123 132");
|
williamr@2
|
48 |
|
williamr@2
|
49 |
// Type of the phone number to be parsed is a regular phone number.
|
williamr@2
|
50 |
TBool validNumber1 =
|
williamr@2
|
51 |
TulPhoneNumberUtils::NormalizePhoneNumber( number1,
|
williamr@2
|
52 |
TulPhoneNumberUtils::EPlainPhoneNumber );
|
williamr@2
|
53 |
|
williamr@2
|
54 |
// The phone number number1 is a valid regular phone number.
|
williamr@2
|
55 |
// After parsing validNumber1 is ETrue and
|
williamr@2
|
56 |
// number1 is "+35840123132".
|
williamr@2
|
57 |
// Do something like SendSMS( number1 ) etc.
|
williamr@2
|
58 |
|
williamr@2
|
59 |
// A number to be parsed.
|
williamr@2
|
60 |
TBuf<50> number2 = _L("+358 (40) 123p132"); // note 'p'
|
williamr@2
|
61 |
|
williamr@2
|
62 |
// Type of the phone number to be parsed is a regular phone number.
|
williamr@2
|
63 |
TBool validNumber2 =
|
williamr@2
|
64 |
TulPhoneNumberUtils::NormalizePhoneNumber( number2,
|
williamr@2
|
65 |
TulPhoneNumberUtils::EPlainPhoneNumber );
|
williamr@2
|
66 |
|
williamr@2
|
67 |
// The phone number number2 is not a valid regular phone number.
|
williamr@2
|
68 |
// After parsing validNumber2 is EFalse and
|
williamr@2
|
69 |
// number2 is "+358 (40) 123p132" (unchanged).
|
williamr@2
|
70 |
@endcode
|
williamr@2
|
71 |
|
williamr@2
|
72 |
@publishedAll
|
williamr@2
|
73 |
@released
|
williamr@2
|
74 |
*/
|
williamr@2
|
75 |
NONSHARABLE_CLASS(TulPhoneNumberUtils)
|
williamr@2
|
76 |
{
|
williamr@2
|
77 |
public:
|
williamr@2
|
78 |
/**
|
williamr@2
|
79 |
* Enumeration for phone number types.
|
williamr@2
|
80 |
* Used to specify the type of phone numbers in methods of
|
williamr@2
|
81 |
* TulPhoneNumberUtils class.
|
williamr@2
|
82 |
*/
|
williamr@2
|
83 |
enum TPhoneNumberType
|
williamr@2
|
84 |
{
|
williamr@2
|
85 |
/** The supplied phone number is a regular phone number. */
|
williamr@2
|
86 |
EPlainPhoneNumber,
|
williamr@2
|
87 |
/** The supplied phone number is a contact card number. */
|
williamr@2
|
88 |
EContactCardNumber,
|
williamr@2
|
89 |
/** The supplied phone number is is a phone client number. */
|
williamr@2
|
90 |
EPhoneClientNumber,
|
williamr@2
|
91 |
/** The supplied phone number is an SMS number. */
|
williamr@2
|
92 |
ESMSNumber
|
williamr@2
|
93 |
};
|
williamr@2
|
94 |
|
williamr@2
|
95 |
IMPORT_C static TBool Normalize( TDes& aNumber, TPhoneNumberType aType = EPlainPhoneNumber);
|
williamr@2
|
96 |
IMPORT_C static TBool IsValid( const TDesC& aNumber, TPhoneNumberType aType = EPlainPhoneNumber );
|
williamr@2
|
97 |
public: // deprecated
|
williamr@2
|
98 |
inline static TBool ParsePhoneNumber( TDes& aNumber, TInt aType );
|
williamr@2
|
99 |
inline static TBool IsValidPhoneNumber( const TDesC& aNumber, TInt aType );
|
williamr@2
|
100 |
private:
|
williamr@2
|
101 |
static TBool IsValidPhoneNumber( const TDesC& aNumber, const TDesC& aValidChars);
|
williamr@2
|
102 |
static void ParseInvalidChars( TDes& aNumber, const TDesC& aInvalidChars);
|
williamr@2
|
103 |
};
|
williamr@2
|
104 |
|
williamr@2
|
105 |
// For source compatibility with S60
|
williamr@2
|
106 |
|
williamr@2
|
107 |
/** @deprecated */
|
williamr@2
|
108 |
inline TBool TulPhoneNumberUtils::ParsePhoneNumber( TDes& aNumber, TInt aType )
|
williamr@2
|
109 |
{ return TulPhoneNumberUtils::Normalize(aNumber, static_cast<TPhoneNumberType>(aType)); }
|
williamr@2
|
110 |
/** @deprecated */
|
williamr@2
|
111 |
inline TBool TulPhoneNumberUtils::IsValidPhoneNumber( const TDesC& aNumber, TInt aType )
|
williamr@2
|
112 |
{ return TulPhoneNumberUtils::IsValid(aNumber, static_cast<TPhoneNumberType>(aType)); }
|
williamr@2
|
113 |
|
williamr@2
|
114 |
#endif // __TULPHONENUMBERUTILS_H__
|
williamr@2
|
115 |
|