using System.Text; /* * Copyright 2008 ZXing authors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ namespace com.google.zxing.client.result { /// /// @author Sean Owen /// public sealed class SMSParsedResult : ParsedResult { private readonly string[] numbers; private readonly string[] vias; private readonly string subject; private readonly string body; public SMSParsedResult(string number, string via, string subject, string body) : base(ParsedResultType.SMS) { this.numbers = new string[] {number}; this.vias = new string[] {via}; this.subject = subject; this.body = body; } public SMSParsedResult(string[] numbers, string[] vias, string subject, string body) : base(ParsedResultType.SMS) { this.numbers = numbers; this.vias = vias; this.subject = subject; this.body = body; } public string SMSURI { get { StringBuilder result = new StringBuilder(); result.Append("sms:"); bool first = true; for (int i = 0; i < numbers.Length; i++) { if (first) { first = false; } else { result.Append(','); } result.Append(numbers[i]); if (vias != null && vias[i] != null) { result.Append(";via="); result.Append(vias[i]); } } bool hasBody = body != null; bool hasSubject = subject != null; if (hasBody || hasSubject) { result.Append('?'); if (hasBody) { result.Append("body="); result.Append(body); } if (hasSubject) { if (hasBody) { result.Append('&'); } result.Append("subject="); result.Append(subject); } } return result.ToString(); } } public string[] Numbers { get { return numbers; } } public string[] Vias { get { return vias; } } public string Subject { get { return subject; } } public string Body { get { return body; } } public override string DisplayResult { get { StringBuilder result = new StringBuilder(100); maybeAppend(numbers, result); maybeAppend(subject, result); maybeAppend(body, result); return result.ToString(); } } } }