Add stateAlwaysHidden to keep soft keyboard away
[zxing.git] / csharp / client / result / EmailAddressResultParser.cs
1 /*\r
2 * Copyright 2007 ZXing authors\r
3 *\r
4 * Licensed under the Apache License, Version 2.0 (the "License");\r
5 * you may not use this file except in compliance with the License.\r
6 * You may obtain a copy of the License at\r
7 *\r
8 *      http://www.apache.org/licenses/LICENSE-2.0\r
9 *\r
10 * Unless required by applicable law or agreed to in writing, software\r
11 * distributed under the License is distributed on an "AS IS" BASIS,\r
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
13 * See the License for the specific language governing permissions and\r
14 * limitations under the License.\r
15 */\r
16 using System;\r
17 using Result = com.google.zxing.Result;\r
18 namespace com.google.zxing.client.result\r
19 {\r
20         \r
21         /// <summary> Represents a result that encodes an e-mail address, either as a plain address\r
22         /// like "joe@example.org" or a mailto: URL like "mailto:joe@example.org".\r
23         /// \r
24         /// </summary>\r
25         /// <author>  Sean Owen\r
26         /// </author>\r
27         /// <author>www.Redivivus.in (suraj.supekar@redivivus.in) - Ported from ZXING Java Source \r
28         /// </author>\r
29         sealed class EmailAddressResultParser:ResultParser\r
30         {\r
31                 \r
32                 public static EmailAddressParsedResult parse(Result result)\r
33                 {\r
34                         System.String rawText = result.Text;\r
35                         if (rawText == null)\r
36                         {\r
37                                 return null;\r
38                         }\r
39                         System.String emailAddress;\r
40                         if (rawText.StartsWith("mailto:") || rawText.StartsWith("MAILTO:"))\r
41                         {\r
42                                 // If it starts with mailto:, assume it is definitely trying to be an email address\r
43                                 emailAddress = rawText.Substring(7);\r
44                                 int queryStart = emailAddress.IndexOf('?');\r
45                                 if (queryStart >= 0)\r
46                                 {\r
47                                         emailAddress = emailAddress.Substring(0, (queryStart) - (0));\r
48                                 }\r
49                                 System.Collections.Hashtable nameValues = parseNameValuePairs(rawText);\r
50                                 System.String subject = null;\r
51                                 System.String body = null;\r
52                                 if (nameValues != null)\r
53                                 {\r
54                                         if (emailAddress.Length == 0)\r
55                                         {\r
56                                                 emailAddress = ((System.String) nameValues["to"]);\r
57                                         }\r
58                                         subject = ((System.String) nameValues["subject"]);\r
59                                         body = ((System.String) nameValues["body"]);\r
60                                 }\r
61                                 return new EmailAddressParsedResult(emailAddress, subject, body, rawText);\r
62                         }\r
63                         else\r
64                         {\r
65                                 if (!EmailDoCoMoResultParser.isBasicallyValidEmailAddress(rawText))\r
66                                 {\r
67                                         return null;\r
68                                 }\r
69                                 emailAddress = rawText;\r
70                                 return new EmailAddressParsedResult(emailAddress, null, null, "mailto:" + emailAddress);\r
71                         }\r
72                 }\r
73         }\r
74 }