| /* |
| * Copyright (C) 2014 The Android Open Source Project |
| * |
| * 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. |
| */ |
| |
| package android.bluetooth.client.pbap; |
| |
| import com.android.vcard.VCardEntry; |
| import com.android.vcard.VCardEntry.EmailData; |
| import com.android.vcard.VCardEntry.NameData; |
| import com.android.vcard.VCardEntry.PhoneData; |
| |
| import org.json.JSONArray; |
| import org.json.JSONException; |
| import org.json.JSONObject; |
| |
| import java.util.List; |
| |
| /** |
| * Entry representation of folder listing |
| */ |
| public class BluetoothPbapCard { |
| |
| public final String handle; |
| |
| public final String N; |
| public final String lastName; |
| public final String firstName; |
| public final String middleName; |
| public final String prefix; |
| public final String suffix; |
| |
| public BluetoothPbapCard(String handle, String name) { |
| this.handle = handle; |
| |
| N = name; |
| |
| /* |
| * format is as for vCard N field, so we have up to 5 tokens: LastName; |
| * FirstName; MiddleName; Prefix; Suffix |
| */ |
| String[] parsedName = new String[0]; |
| |
| if ((name != null) && (!(name.isEmpty()))) |
| parsedName = name.split(";", 5); |
| |
| lastName = parsedName.length < 1 ? null : parsedName[0]; |
| firstName = parsedName.length < 2 ? null : parsedName[1]; |
| middleName = parsedName.length < 3 ? null : parsedName[2]; |
| prefix = parsedName.length < 4 ? null : parsedName[3]; |
| suffix = parsedName.length < 5 ? null : parsedName[4]; |
| } |
| |
| @Override |
| public String toString() { |
| JSONObject json = new JSONObject(); |
| |
| try { |
| json.put("handle", handle); |
| json.put("N", N); |
| json.put("lastName", lastName); |
| json.put("firstName", firstName); |
| json.put("middleName", middleName); |
| json.put("prefix", prefix); |
| json.put("suffix", suffix); |
| } catch (JSONException e) { |
| // do nothing |
| } |
| |
| return json.toString(); |
| } |
| |
| static public String jsonifyVcardEntry(VCardEntry vcard) { |
| JSONObject json = new JSONObject(); |
| |
| try { |
| NameData name = vcard.getNameData(); |
| json.put("formatted", name.getFormatted()); |
| json.put("family", name.getFamily()); |
| json.put("given", name.getGiven()); |
| json.put("middle", name.getMiddle()); |
| json.put("prefix", name.getPrefix()); |
| json.put("suffix", name.getSuffix()); |
| } catch (JSONException e) { |
| // do nothing |
| } |
| |
| try { |
| JSONArray jsonPhones = new JSONArray(); |
| |
| List<PhoneData> phones = vcard.getPhoneList(); |
| |
| if (phones != null) { |
| for (PhoneData phone : phones) { |
| JSONObject jsonPhone = new JSONObject(); |
| jsonPhone.put("type", phone.getType()); |
| jsonPhone.put("number", phone.getNumber()); |
| jsonPhone.put("label", phone.getLabel()); |
| jsonPhone.put("is_primary", phone.isPrimary()); |
| |
| jsonPhones.put(jsonPhone); |
| } |
| |
| json.put("phones", jsonPhones); |
| } |
| } catch (JSONException e) { |
| // do nothing |
| } |
| |
| try { |
| JSONArray jsonEmails = new JSONArray(); |
| |
| List<EmailData> emails = vcard.getEmailList(); |
| |
| if (emails != null) { |
| for (EmailData email : emails) { |
| JSONObject jsonEmail = new JSONObject(); |
| jsonEmail.put("type", email.getType()); |
| jsonEmail.put("address", email.getAddress()); |
| jsonEmail.put("label", email.getLabel()); |
| jsonEmail.put("is_primary", email.isPrimary()); |
| |
| jsonEmails.put(jsonEmail); |
| } |
| |
| json.put("emails", jsonEmails); |
| } |
| } catch (JSONException e) { |
| // do nothing |
| } |
| |
| return json.toString(); |
| } |
| } |