android:launchMode="singleTask"
android:clearTaskOnLaunch="true"
android:icon="@drawable/ic_launcher_phone"
+ android:screenOrientation="nosensor"
>
<intent-filter>
<action android:name="android.intent.action.DIAL" />
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2008 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.
--->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:state_focused="true" android:state_pressed="false" android:drawable="@drawable/border_selected" />
- <item android:state_pressed="true" android:drawable="@drawable/border_pressed" />
- <item android:drawable="@drawable/border_default" />
-</selector>
-
<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 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.
+<!--
+/*
+ * Copyright 2009, 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.
+ */
-->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:minHeight="?android:attr/listPreferredItemHeight"
- android:paddingLeft="5dip"
- android:orientation="vertical"
+ android:layout_height="?android:attr/listPreferredItemHeight"
+ android:paddingLeft="14dip"
+ android:paddingRight="5dip"
>
- <TextView android:id="@+id/name"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginTop="6dip"
- android:singleLine="true"
- android:textAppearance="?android:attr/textAppearanceLarge"
- android:layout_alignParentTop="true"
+
+ <ImageView android:id="@+id/presence"
+ android:layout_width="32dip"
+ android:layout_height="32dip"
+ android:layout_alignParentRight="true"
+ android:layout_marginLeft="5dip"
+ android:layout_centerVertical="true"
+
+ android:gravity="center"
+ android:scaleType="centerInside"
/>
<TextView android:id="@+id/label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginTop="2dip"
+ android:layout_alignParentLeft="true"
+ android:layout_alignParentBottom="true"
+ android:layout_marginBottom="8dip"
+ android:layout_marginTop="-8dip"
+
android:singleLine="true"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textStyle="bold"
- android:layout_below="@id/name"
/>
<TextView android:id="@+id/number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dip"
- android:singleLine="true"
- android:textAppearance="?android:attr/textAppearanceSmall"
android:layout_toRightOf="@id/label"
android:layout_alignBaseline="@id/label"
+ android:layout_toLeftOf="@id/presence"
+ android:layout_alignWithParentIfMissing="true"
+
+ android:singleLine="true"
+ android:textAppearance="?android:attr/textAppearanceSmall"
/>
+
+ <TextView android:id="@+id/name"
+ android:layout_width="0dip"
+ android:layout_height="0dip"
+ android:layout_above="@id/label"
+ android:layout_alignWithParentIfMissing="true"
+ android:layout_alignParentTop="true"
+ android:layout_alignParentLeft="true"
+ android:layout_toLeftOf="@id/presence"
+ android:layout_marginBottom="1dip"
+
+ android:gravity="center_vertical|left"
+ android:textAppearance="?android:attr/textAppearanceLarge"
+ />
+
</RelativeLayout>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+ * Copyright 2009, 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.
+ */
+-->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:minHeight="?android:attr/listPreferredItemHeight"
+ android:orientation="horizontal"
+ android:paddingLeft="9dip"
+ android:paddingRight="5dip"
+ android:gravity="center_vertical"
+>
+
+ <ImageView android:id="@+id/icon1"
+ android:layout_width="32dip"
+ android:layout_height="32dip"
+ android:layout_marginRight="5dip"
+ android:gravity="center"
+ android:scaleType="centerInside"
+ />
+
+ <LinearLayout
+ android:layout_width="0dip"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:layout_marginLeft="5dip"
+ android:paddingTop="5dip"
+ android:paddingBottom="7dip"
+ android:orientation="vertical"
+ android:gravity="center_vertical"
+ >
+
+ <TextView android:id="@android:id/text1"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textAppearance="?android:attr/textAppearanceLarge"
+ />
+
+ <TextView android:id="@android:id/text2"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textAppearance="?android:attr/textAppearanceSmall"
+ />
+
+ </LinearLayout>
+
+ <ImageView android:id="@+id/icon2"
+ android:layout_width="32dip"
+ android:layout_height="32dip"
+ android:layout_marginLeft="5dip"
+ android:gravity="center"
+ android:scaleType="centerInside"
+ />
+
+</LinearLayout>
android:layout_height="wrap_content"
android:orientation="horizontal"
android:background="@android:drawable/title_bar_tall"
- android:padding="0dip"
+ android:paddingRight="5dip"
android:gravity="center_vertical"
>
<ImageView android:id="@+id/photo"
style="?android:attr/imageWellStyle"
- android:layout_width="84dip"
- android:layout_height="84dip"
- android:layout_marginRight="10dip"
+ android:layout_width="78dip"
+ android:layout_height="78dip"
+ android:layout_marginRight="7dip"
+ android:layout_marginLeft="2dip"
android:scaleType="fitCenter"
- android:background="@drawable/border"
+ android:background="@drawable/btn_contact_picture"
/>
<!-- "Name" field is locale-specific. -->
</LinearLayout>
- <ListView android:id="@android:id/list"
+ <FrameLayout
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="1"
- android:layout_marginTop="1dip"
- android:scrollbarStyle="outsideOverlay"
- />
+ >
+
+ <View
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:background="@drawable/title_bar_shadow"
+ />
+
+ <ListView android:id="@android:id/list"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ android:scrollbarStyle="outsideOverlay"
+ />
+ </FrameLayout>
</LinearLayout>
<string name="deleteConfirmation_title">"Smazat"</string>
<string name="deleteConfirmation">"Tento kontakt bude smazán."</string>
<string name="menu_done">"Hotovo"</string>
- <string name="menu_doNotSave">"Zrušit změny"</string>
+ <!-- no translation found for menu_doNotSave (2174577548513895144) -->
+ <skip />
<string name="editContact_title_edit">"Upravit kontakt"</string>
<string name="editContact_title_insert">"Nový kontakt"</string>
<string name="menu_addItem">"Další informace"</string>
<string name="listSeparatorSendEmail">"Odeslat e-mail"</string>
<string name="listSeparatorSendEmail_edit">"E-mailové adresy"</string>
<string name="listSeparatorSendIm">"Odeslat zprávu chatu"</string>
- <!-- no translation found for listSeparatorSendIm_edit (3793290685553377986) -->
- <skip />
+ <string name="listSeparatorSendIm_edit">"Adresa chatu"</string>
<string name="listSeparatorMapAddress">"Adresa na mapě"</string>
- <!-- no translation found for listSeparatorMapAddress_edit (298711187672067985) -->
- <skip />
+ <string name="listSeparatorMapAddress_edit">"Poštovní adresa"</string>
<string name="listSeparatorOrganizations">"Organizace"</string>
<string name="listSeparatorOtherInformation">"Ostatní informace"</string>
<string name="listSeparatorOtherInformation_edit">"Další možnosti"</string>
<string name="simContacts_emptyLoading">"Načítání z karty SIM..."</string>
<string name="simContacts_title">"Kontakty na kartě SIM"</string>
<string name="contactsSyncPlug"><font fgcolor="#ffffffff">"Synchronizujte své kontakty Google!"</font>" "\n"Po synchronizaci telefonu budete mít kontaktní informace vždy u sebe."</string>
- <string name="noContactsHelpText">"Nemáte žádné kontakty."\n\n"Pokud chcete přidat kontakty, stiskněte tlačítko "<font fgcolor="#ffffffff"><b>"Nabídka"</b></font>" a vyberte:"\n\n" "\n<li><font fgcolor="#ffffffff"><b>"Upravit skupiny synchronizace"</b></font>", pokud chcete přidat kontakty z nového nebo stávajícího účtu Google"\n</li>\n" "\n<li><font fgcolor="#ffffffff"><b>"Nový kontakt"</b></font>", pokud chcete vytvořit nový kontakt"\n</li>\n" "\n<li><font fgcolor="#ffffffff"><b>"Importovat kontakty"</b></font>", pokud chcete přidat kontakty z karty SIM"\n</li></string>
+ <string name="noContactsHelpText">"Nemáte žádné kontakty."\n\n"Chcete-li přidat kontakty, stiskněte tlačítko "<font fgcolor="#ffffffff"><b>"Nabídka"</b></font>" a vyberte možnost:"\n\n" "\n<li><font fgcolor="#ffffffff"><b>"Upravit synchronizované skupiny"</b></font>", pokud chcete přidat kontakty z nového nebo existujícího účtu Google"\n</li>\n" "\n<li><font fgcolor="#ffffffff"><b>"Nový kontakt"</b></font>", pokud chcete vytvořit nový kontakt"\n</li>\n" "\n<li><font fgcolor="#ffffffff"><b>"Importovat kontakty"</b></font>", pokud chcete přidat kontakty ze své SIM karty"\n</li></string>
<string name="seclectSyncGroups_title">"Vyberte skupiny, které chcete synchronizovat"</string>
<string name="liveFolder_all_label">"Všechny kontakty"</string>
<string name="liveFolder_favorites_label">"S hvězdičkou"</string>
<string name="header_actions">"Akce"</string>
<string name="ringtone_spinner">"Vyzváněcí tón: <xliff:g id="RINGTONE">%1$s</xliff:g>"</string>
<string name="add_more_items">"Přidat další položky"</string>
- <!-- no translation found for actionCall (695145166039381504) -->
- <skip />
- <!-- no translation found for actionEmail (3870371552333656807) -->
- <skip />
- <!-- no translation found for actionText (6399049224844880108) -->
- <skip />
- <!-- no translation found for actionChat (31079429748650300) -->
- <skip />
- <!-- no translation found for actionMap (1977955782051732775) -->
- <skip />
- <!-- no translation found for actionIncomingCall (6028930669817038600) -->
- <skip />
- <!-- no translation found for detailIncomingCallsGoToVoicemail (9163373178772231307) -->
- <skip />
- <!-- no translation found for detailsRingtone (4052108748982701775) -->
- <skip />
- <!-- no translation found for callBack (5498224409038809224) -->
- <skip />
+ <string name="actionCall">"Volat: <xliff:g id="TYPE">%s</xliff:g>"</string>
+ <string name="actionEmail">"E-mail: <xliff:g id="TYPE">%s</xliff:g>"</string>
+ <string name="actionText">"Text: <xliff:g id="TYPE">%s</xliff:g>"</string>
+ <string name="actionChat">"Chatovat pomocí služby <xliff:g id="TYPE">%s</xliff:g>"</string>
+ <string name="actionMap">"Zobrazit adresu: <xliff:g id="TYPE">%s</xliff:g>"</string>
+ <string name="actionIncomingCall">"Příchozí volání"</string>
+ <string name="detailIncomingCallsGoToVoicemail">"Budou odeslány přímo do hlasové pošty."</string>
+ <string name="detailsRingtone">"Nastavit vyzvánění <xliff:g id="RINGTONE_NAME">%s</xliff:g>"</string>
+ <string name="callBack">"Zavolat zpět"</string>
</resources>
<string name="deleteConfirmation_title">"Löschen"</string>
<string name="deleteConfirmation">"Dieser Kontakt wird gelöscht."</string>
<string name="menu_done">"Fertig"</string>
- <string name="menu_doNotSave">"Änderungen löschen"</string>
+ <!-- no translation found for menu_doNotSave (2174577548513895144) -->
+ <skip />
<string name="editContact_title_edit">"Kontakt bearbeiten"</string>
<string name="editContact_title_insert">"Neuer Kontakt"</string>
<string name="menu_addItem">"Weitere Informationen"</string>
<string name="attachToContact">"Kontaktsymbol"</string>
<string name="customLabelPickerTitle">"Name des benutzerdefinierten Labels"</string>
<string name="menu_displayGroup">"Gruppe anzeigen"</string>
- <string name="syncGroupPreference">"Synchron. bearbeiten"</string>
+ <string name="syncGroupPreference">"Synchronisierte Gruppen bearbeiten"</string>
<string name="importFromSim">"Kontakte importieren"</string>
<string name="send_to_voicemail_checkbox">"Anrufe direkt an Voicemail senden"</string>
<string name="send_to_voicemail_view">"Anrufe werden direkt an Mailbox gesendet"</string>
<string name="listSeparatorSendEmail">"E-Mail senden"</string>
<string name="listSeparatorSendEmail_edit">"E-Mail-Adressen"</string>
<string name="listSeparatorSendIm">"Per Chat kontaktieren"</string>
- <!-- no translation found for listSeparatorSendIm_edit (3793290685553377986) -->
- <skip />
+ <string name="listSeparatorSendIm_edit">"Chat-Adressen"</string>
<string name="listSeparatorMapAddress">"Adresse in Maps"</string>
- <!-- no translation found for listSeparatorMapAddress_edit (298711187672067985) -->
- <skip />
+ <string name="listSeparatorMapAddress_edit">"Postanschrift"</string>
<string name="listSeparatorOrganizations">"Organisationen"</string>
<string name="listSeparatorOtherInformation">"Mehr Informationen"</string>
<string name="listSeparatorOtherInformation_edit">"Sonstige Optionen"</string>
<string name="simContacts_emptyLoading">"Ladevorgang von SIM-Karte läuft..."</string>
<string name="simContacts_title">"Kontakte auf SIM-Karte"</string>
<string name="contactsSyncPlug"><font fgcolor="#ffffffff">"Synchronisieren Sie Ihre Google-Kontakte!"</font>" "\n"Nach der Synchronisierung stehen Ihnen Ihre Kontakte überall zur Verfügung."</string>
- <string name="noContactsHelpText">"Sie haben keine Kontakte."\n\n"Drücken Sie zum Hinzufügen die "<font fgcolor="#ffffffff"><b>"Menütaste"</b></font>" und wählen Sie"\n\n" "\n<li><font fgcolor="#ffffffff"><b>"Synchronisierungsgruppen bearbeiten"</b></font>", um Kontakte mit einem neuen oder bestehenden Google-Konto zu synchronisieren,"\n</li>\n" "\n<li><font fgcolor="#ffffffff"><b>"Neuer Kontakt"</b></font>", um einen Kontakt neu zu erstellen, "\n</li>\n" "\n<li><font fgcolor="#ffffffff"><b>"Kontakte importieren"</b></font>", um Kontakte von Ihrer SIM-Karte hinzuzufügen."\n</li></string>
+ <string name="noContactsHelpText">"Sie haben keine Kontakte."\n\n"Um Kontakte hinzuzufügen, klicken Sie auf "<font fgcolor="#ffffffff"><b>"Menü"</b></font>" und wählen Sie "\n\n" "\n<li><font fgcolor="#ffffffff"><b>"Synchronisierte Gruppen bearbeiten"</b></font>", um Kontakte aus einem neuen oder bestehenden Google-Konto hinzuzufügen,"\n</li>\n" "\n<li><font fgcolor="#ffffffff"><b>"Neuer Kontakt"</b></font>", um einen ganz neuen Kontakt hinzuzufügen"\n</li>\n" "\n<li><font fgcolor="#ffffffff"><b>"Kontakte importieren"</b></font>", um Kontakte von Ihrer SIM-Karte hinzuzufügen"\n</li></string>
<string name="seclectSyncGroups_title">"Zu synchronisierende Gruppen auswählen"</string>
<string name="liveFolder_all_label">"Alle Kontakte"</string>
<string name="liveFolder_favorites_label">"Markiert"</string>
<string name="header_actions">"Aktionen"</string>
<string name="ringtone_spinner">"Klingelton: <xliff:g id="RINGTONE">%1$s</xliff:g>"</string>
<string name="add_more_items">"Weitere Elemente hinzufügen"</string>
- <!-- no translation found for actionCall (695145166039381504) -->
- <skip />
- <!-- no translation found for actionEmail (3870371552333656807) -->
- <skip />
- <!-- no translation found for actionText (6399049224844880108) -->
- <skip />
- <!-- no translation found for actionChat (31079429748650300) -->
- <skip />
- <!-- no translation found for actionMap (1977955782051732775) -->
- <skip />
- <!-- no translation found for actionIncomingCall (6028930669817038600) -->
- <skip />
- <!-- no translation found for detailIncomingCallsGoToVoicemail (9163373178772231307) -->
- <skip />
- <!-- no translation found for detailsRingtone (4052108748982701775) -->
- <skip />
- <!-- no translation found for callBack (5498224409038809224) -->
- <skip />
+ <string name="actionCall">"<xliff:g id="TYPE">%s</xliff:g> anrufen"</string>
+ <string name="actionEmail">"E-Mail an <xliff:g id="TYPE">%s</xliff:g>"</string>
+ <string name="actionText">"Text <xliff:g id="TYPE">%s</xliff:g>"</string>
+ <string name="actionChat">"Chat mit <xliff:g id="TYPE">%s</xliff:g>"</string>
+ <string name="actionMap">"<xliff:g id="TYPE">%s</xliff:g>-Adresse anzeigen"</string>
+ <string name="actionIncomingCall">"Eingehende Anrufe"</string>
+ <string name="detailIncomingCallsGoToVoicemail">"Wird direkt an Voicemail weitergeleitet"</string>
+ <string name="detailsRingtone">"Eingestellt auf <xliff:g id="RINGTONE_NAME">%s</xliff:g>"</string>
+ <string name="callBack">"Rückruf"</string>
</resources>
<string name="deleteConfirmation_title">"Suprimir"</string>
<string name="deleteConfirmation">"El contacto se eliminará."</string>
<string name="menu_done">"Finalizado"</string>
- <string name="menu_doNotSave">"Descartar cambios"</string>
+ <!-- no translation found for menu_doNotSave (2174577548513895144) -->
+ <skip />
<string name="editContact_title_edit">"Editar contacto"</string>
<string name="editContact_title_insert">"Contacto nuevo"</string>
<string name="menu_addItem">"Más información"</string>
<string name="listSeparatorSendEmail">"Enviar mensaje de correo electrónico"</string>
<string name="listSeparatorSendEmail_edit">"Direcciones de correo electrónico"</string>
<string name="listSeparatorSendIm">"Enviar mensaje instantáneo"</string>
- <!-- no translation found for listSeparatorSendIm_edit (3793290685553377986) -->
- <skip />
+ <string name="listSeparatorSendIm_edit">"Direcciones de chat"</string>
<string name="listSeparatorMapAddress">"Dirección en mapa"</string>
- <!-- no translation found for listSeparatorMapAddress_edit (298711187672067985) -->
- <skip />
+ <string name="listSeparatorMapAddress_edit">"Direcciones postales"</string>
<string name="listSeparatorOrganizations">"Organizaciones"</string>
<string name="listSeparatorOtherInformation">"Otra información"</string>
<string name="listSeparatorOtherInformation_edit">"Otras opciones"</string>
<string name="simContacts_emptyLoading">"Cargando desde tarjeta SIM…"</string>
<string name="simContacts_title">"Contactos de tarjeta SIM"</string>
<string name="contactsSyncPlug"><font fgcolor="#ffffffff">"Sincroniza tus contactos de Google"</font>" "\n"Después de sincronizarlos con tu teléfono, podrás acceder a tus contactos desde cualquier lugar."</string>
- <string name="noContactsHelpText">"No tienes ningún contacto."\n\n"Para añadir contactos, pulsa "<font fgcolor="#ffffffff"><b>"Menú"</b></font>" y selecciona:"\n\n" "\n<li><font fgcolor="#ffffffff"><b>"Editar grupos sincronizados"</b></font>" para añadirlos desde una cuenta de Google nueva o ya existente"\n</li>\n" "\n<li><font fgcolor="#ffffffff"><b>"Nuevo contacto"</b></font>" para crear un contacto nuevo partiendo de cero"\n</li>\n" "\n<li><font fgcolor="#ffffffff"><b>"Importar contactos"</b></font>" para añadir nombres y números desde tu tarjeta SIM"\n</li></string>
+ <string name="noContactsHelpText">"No tienes ningún contacto."\n\n"Para añadir contactos, pulsa "<font fgcolor="#ffffffff"><b>"MENU"</b></font>" y selecciona:"\n\n" "\n<li><font fgcolor="#ffffffff"><b>"Editar grupos sincronizados"</b></font>" para añadirlos desde una cuenta de Google nueva o ya existente"\n</li>\n" "\n<li><font fgcolor="#ffffffff"><b>"Nuevo contacto"</b></font>" para crear un contacto nuevo partiendo de cero"\n</li>\n" "\n<li><font fgcolor="#ffffffff"><b>"Importar contactos"</b></font>" para añadir nombres y números desde tu tarjeta SIM"\n</li></string>
<string name="seclectSyncGroups_title">"Seleccionar grupos para la sincronización"</string>
<string name="liveFolder_all_label">"Todos los contactos"</string>
<string name="liveFolder_favorites_label">"Destacados"</string>
<string name="header_actions">"Acciones"</string>
<string name="ringtone_spinner">"Tono de llamada: <xliff:g id="RINGTONE">%1$s</xliff:g>"</string>
<string name="add_more_items">"Añadir más elementos"</string>
- <!-- no translation found for actionCall (695145166039381504) -->
- <skip />
- <!-- no translation found for actionEmail (3870371552333656807) -->
- <skip />
- <!-- no translation found for actionText (6399049224844880108) -->
- <skip />
- <!-- no translation found for actionChat (31079429748650300) -->
- <skip />
- <!-- no translation found for actionMap (1977955782051732775) -->
- <skip />
- <!-- no translation found for actionIncomingCall (6028930669817038600) -->
- <skip />
- <!-- no translation found for detailIncomingCallsGoToVoicemail (9163373178772231307) -->
- <skip />
- <!-- no translation found for detailsRingtone (4052108748982701775) -->
- <skip />
- <!-- no translation found for callBack (5498224409038809224) -->
- <skip />
+ <string name="actionCall">"Llamar a <xliff:g id="TYPE">%s</xliff:g>"</string>
+ <string name="actionEmail">"Correo electrónico para <xliff:g id="TYPE">%s</xliff:g>"</string>
+ <string name="actionText">"Enviar un mensaje de texto a <xliff:g id="TYPE">%s</xliff:g>"</string>
+ <string name="actionChat">"Chatear mediante <xliff:g id="TYPE">%s</xliff:g>"</string>
+ <string name="actionMap">"Ver la dirección de <xliff:g id="TYPE">%s</xliff:g>"</string>
+ <string name="actionIncomingCall">"Llamadas entrantes"</string>
+ <string name="detailIncomingCallsGoToVoicemail">"Pasarán directamente al correo de voz"</string>
+ <string name="detailsRingtone">"Establecido como <xliff:g id="RINGTONE_NAME">%s</xliff:g>"</string>
+ <string name="callBack">"Volver a llamar"</string>
</resources>
<string name="menu_makeDefaultNumber">"Numéro téléphone par défaut"</string>
<string name="deleteConfirmation_title">"Supprimer"</string>
<string name="deleteConfirmation">"Ce contact sera supprimé."</string>
- <string name="menu_done">"Terminé"</string>
- <string name="menu_doNotSave">"Annuler les modifications"</string>
+ <string name="menu_done">"OK"</string>
+ <!-- no translation found for menu_doNotSave (2174577548513895144) -->
+ <skip />
<string name="editContact_title_edit">"Modifier le contact"</string>
<string name="editContact_title_insert">"Nouveau contact"</string>
<string name="menu_addItem">"Plus d\'infos"</string>
<string name="label_phonetic_name">"Prononciation phonétique"</string>
<string name="label_notes">"Remarques"</string>
<string name="label_ringtone">"Sonnerie"</string>
- <string name="ghostData_name">"Premier et dernier"</string>
+ <string name="ghostData_name">"Nom et prénom"</string>
<string name="ghostData_phonetic_name">"Nom phonétique"</string>
<string name="ghostData_company">"Société"</string>
<string name="ghostData_title">"Position"</string>
<string name="attachToContact">"Icône de contact"</string>
<string name="customLabelPickerTitle">"Libellé personnalisé"</string>
<string name="menu_displayGroup">"Afficher les groupes"</string>
- <string name="syncGroupPreference">"Modifier les groupes à synchroniser"</string>
+ <string name="syncGroupPreference">"Paramètres de sync. des groupes"</string>
<string name="importFromSim">"Importer des contacts"</string>
<string name="send_to_voicemail_checkbox">"Envoyer les appels directement en tant que message vocal"</string>
<string name="send_to_voicemail_view">"Les appels sont renvoyés directement vers la boîte vocale."</string>
<string name="showAllGroups">"Tous les contacts"</string>
<string name="syncAllGroups">"Synchroniser tous les contacts"</string>
<string name="groupNameMyContacts">"Mes contacts"</string>
- <string name="groupNameWithPhones">"Contacts avec des numéros téléphone"</string>
+ <string name="groupNameWithPhones">"Contacts avec des n° de téléphone"</string>
<string name="contactCreatedToast">"Contact créé."</string>
<string name="contactSavedToast">"Contact enregistré."</string>
<string name="listSeparatorCallNumber">"Composer le numéro"</string>
<string name="listSeparatorSendEmail">"Envoyer un e-mail"</string>
<string name="listSeparatorSendEmail_edit">"Adresses e-mail"</string>
<string name="listSeparatorSendIm">"Envoyer un message instantané"</string>
- <!-- no translation found for listSeparatorSendIm_edit (3793290685553377986) -->
- <skip />
+ <string name="listSeparatorSendIm_edit">"Adresses de chat"</string>
<string name="listSeparatorMapAddress">"Adresse sur un plan"</string>
- <!-- no translation found for listSeparatorMapAddress_edit (298711187672067985) -->
- <skip />
+ <string name="listSeparatorMapAddress_edit">"Adresses postales"</string>
<string name="listSeparatorOrganizations">"Organisations"</string>
<string name="listSeparatorOtherInformation">"Autres informations"</string>
<string name="listSeparatorOtherInformation_edit">"Autres options"</string>
<string name="listSeparatorMore_edit">"Plus"</string>
<string name="contactsIconLabel">"Contacts"</string>
<string name="contactsFavoritesLabel">"Favoris"</string>
- <string name="dialerIconLabel">"Numéroteur"</string>
- <string name="recentCallsIconLabel">"Journal des appels"</string>
+ <string name="dialerIconLabel">"Composer"</string>
+ <string name="recentCallsIconLabel">"Appels"</string>
<string name="liveFolderAll">"Tous les contacts"</string>
<string name="liveFolderFavorites">"Contacts suivis"</string>
<string name="liveFolderPhone">"Contacts avec numéro de téléphone"</string>
<string name="recentCalls_callNumber">"Appeler <xliff:g id="NAME">%s</xliff:g>"</string>
<string name="recentCalls_editNumberBeforeCall">"Modifier le numéro avant d\'effectuer l\'appel"</string>
<string name="recentCalls_addToContact">"Ajouter aux contacts"</string>
- <string name="recentCalls_removeFromRecentList">"Supprimer du journal des appels"</string>
- <string name="recentCalls_deleteAll">"Effacer le journal des appels"</string>
- <string name="recentCalls_empty">"Le journal des appels est vide."</string>
+ <string name="recentCalls_removeFromRecentList">"Supprimer de la liste des appels"</string>
+ <string name="recentCalls_deleteAll">"Effacer tous les appels"</string>
+ <string name="recentCalls_empty">"Aucun appel enregistré."</string>
<string name="imei">"IMEI"</string>
<string name="voicemail">"Boîte vocale"</string>
<string name="unknown">"Inconnu"</string>
<string name="private_num">"Numéro privée"</string>
- <string name="dialerKeyboardHintText">"Utilisez le clavier pour effectuer la numérotation"</string>
+ <string name="dialerKeyboardHintText">"Utilisez le clavier pour composer le numéro"</string>
<string name="dialerDialpadHintText">"Composer le numéro pour ajouter un appel"</string>
<string name="simContacts_emptyLoading">"Chargement depuis la carte SIM..."</string>
<string name="simContacts_title">"Contacts de carte SIM"</string>
- <string name="contactsSyncPlug"><font fgcolor="#ffffffff">"Synchronisez vos contacts Google !"</font>" "\n"Une fois que vous aurez synchronisé votre téléphone, vos contacts seront disponibles, où que vous soyez."</string>
- <string name="noContactsHelpText">"Vous n\'avez aucun contact."\n\n"Pour ajouter des contacts, appuyez sur "<font fgcolor="#ffffffff"><b>"Menu"</b></font>" et sélectionnez :"\n\n" "\n<li><font fgcolor="#ffffffff"><b>"Modifier les groupes synchronisés"</b></font>" pour ajouter un contact à partir d\'un nouveau compte Google ou d\'un compte existant"\n</li>\n" "\n<li><font fgcolor="#ffffffff"><b>"Nouveau contact"</b></font>" pour créer un contact de toutes pièces"\n</li>\n" "\n<li><font fgcolor="#ffffffff"><b>"Importer des contacts"</b></font>" pour ajouter des contacts à partir de votre carte SIM"\n</li></string>
+ <string name="contactsSyncPlug"><font fgcolor="#ffffffff">"Synchronisez vos contacts Google !"</font>" "\n"Vos contacts seront disponibles, où que vous soyez, dès que vous aurez synchronisé votre téléphone."</string>
+ <string name="noContactsHelpText">"Vous n\'avez aucun contact."\n\n"Pour ajouter des contacts, appuyez sur "<font fgcolor="#ffffffff"><b>"Menu"</b></font>" et sélectionnez :"\n\n" "\n<li><font fgcolor="#ffffffff"><b>"Paramètres de sync. des groupes"</b></font>" pour ajouter un contact à partir d\'un nouveau compte Google ou d\'un compte existant"\n</li>\n" "\n<li><font fgcolor="#ffffffff"><b>"Nouveau contact"</b></font>" pour créer un contact"\n</li>\n" "\n<li><font fgcolor="#ffffffff"><b>"Importer des contacts"</b></font>" pour ajouter des contacts à partir de votre carte SIM"\n</li></string>
<string name="seclectSyncGroups_title">"Sélectionner les groupes à synchroniser"</string>
<string name="liveFolder_all_label">"Tous les contacts"</string>
<string name="liveFolder_favorites_label">"Suivis"</string>
<string name="header_actions">"Actions"</string>
<string name="ringtone_spinner">"Sonnerie : <xliff:g id="RINGTONE">%1$s</xliff:g>"</string>
<string name="add_more_items">"Ajouter d\'autres éléments"</string>
- <!-- no translation found for actionCall (695145166039381504) -->
- <skip />
- <!-- no translation found for actionEmail (3870371552333656807) -->
- <skip />
- <!-- no translation found for actionText (6399049224844880108) -->
- <skip />
- <!-- no translation found for actionChat (31079429748650300) -->
- <skip />
- <!-- no translation found for actionMap (1977955782051732775) -->
- <skip />
- <!-- no translation found for actionIncomingCall (6028930669817038600) -->
- <skip />
- <!-- no translation found for detailIncomingCallsGoToVoicemail (9163373178772231307) -->
- <skip />
- <!-- no translation found for detailsRingtone (4052108748982701775) -->
- <skip />
- <!-- no translation found for callBack (5498224409038809224) -->
- <skip />
+ <string name="actionCall">"Appeler <xliff:g id="TYPE">%s</xliff:g>"</string>
+ <string name="actionEmail">"Envoyer un e-mail à <xliff:g id="TYPE">%s</xliff:g>"</string>
+ <string name="actionText">"Envoyer un message texte à <xliff:g id="TYPE">%s</xliff:g>"</string>
+ <string name="actionChat">"Chatter à l\'aide de <xliff:g id="TYPE">%s</xliff:g>"</string>
+ <string name="actionMap">"Afficher l\'adresse <xliff:g id="TYPE">%s</xliff:g>"</string>
+ <string name="actionIncomingCall">"Appels entrants"</string>
+ <string name="detailIncomingCallsGoToVoicemail">"Seront envoyés directement en tant que message vocal"</string>
+ <string name="detailsRingtone">"Associer à <xliff:g id="RINGTONE_NAME">%s</xliff:g>"</string>
+ <string name="callBack">"Rappeler"</string>
</resources>
<string name="deleteConfirmation_title">"Elimina"</string>
<string name="deleteConfirmation">"Il contatto verrà eliminato."</string>
<string name="menu_done">"Completato"</string>
- <string name="menu_doNotSave">"Ignora modifiche"</string>
+ <!-- no translation found for menu_doNotSave (2174577548513895144) -->
+ <skip />
<string name="editContact_title_edit">"Modifica contatto"</string>
<string name="editContact_title_insert">"Nuovo contatto"</string>
<string name="menu_addItem">"Altre info"</string>
<string name="listSeparatorSendEmail">"Invia email"</string>
<string name="listSeparatorSendEmail_edit">"Indirizzi email"</string>
<string name="listSeparatorSendIm">"Invia msg IM"</string>
- <!-- no translation found for listSeparatorSendIm_edit (3793290685553377986) -->
- <skip />
+ <string name="listSeparatorSendIm_edit">"Indirizzi chat"</string>
<string name="listSeparatorMapAddress">"Indirizzo su mappa"</string>
- <!-- no translation found for listSeparatorMapAddress_edit (298711187672067985) -->
- <skip />
+ <string name="listSeparatorMapAddress_edit">"Indirizzi postali"</string>
<string name="listSeparatorOrganizations">"Organizzazioni"</string>
<string name="listSeparatorOtherInformation">"Altre informazioni"</string>
<string name="listSeparatorOtherInformation_edit">"Altre opzioni"</string>
<string name="header_actions">"Azioni"</string>
<string name="ringtone_spinner">"Suoneria: <xliff:g id="RINGTONE">%1$s</xliff:g>"</string>
<string name="add_more_items">"Aggiungi ulteriori elementi"</string>
- <!-- no translation found for actionCall (695145166039381504) -->
- <skip />
- <!-- no translation found for actionEmail (3870371552333656807) -->
- <skip />
- <!-- no translation found for actionText (6399049224844880108) -->
- <skip />
- <!-- no translation found for actionChat (31079429748650300) -->
- <skip />
- <!-- no translation found for actionMap (1977955782051732775) -->
- <skip />
- <!-- no translation found for actionIncomingCall (6028930669817038600) -->
- <skip />
- <!-- no translation found for detailIncomingCallsGoToVoicemail (9163373178772231307) -->
- <skip />
- <!-- no translation found for detailsRingtone (4052108748982701775) -->
- <skip />
- <!-- no translation found for callBack (5498224409038809224) -->
- <skip />
+ <string name="actionCall">"Chiama <xliff:g id="TYPE">%s</xliff:g>"</string>
+ <string name="actionEmail">"Invia email a <xliff:g id="TYPE">%s</xliff:g>"</string>
+ <string name="actionText">"Invia testo a <xliff:g id="TYPE">%s</xliff:g>"</string>
+ <string name="actionChat">"Chat tramite <xliff:g id="TYPE">%s</xliff:g>"</string>
+ <string name="actionMap">"Visualizza indirizzo <xliff:g id="TYPE">%s</xliff:g>"</string>
+ <string name="actionIncomingCall">"Chiamate in arrivo"</string>
+ <string name="detailIncomingCallsGoToVoicemail">"Il messaggio verrà inviato direttamente alla posta vocale"</string>
+ <string name="detailsRingtone">"Impostato su <xliff:g id="RINGTONE_NAME">%s</xliff:g>"</string>
+ <string name="callBack">"Richiama"</string>
</resources>
<string name="deleteConfirmation_title">"削除"</string>
<string name="deleteConfirmation">"この連絡先を削除します。"</string>
<string name="menu_done">"完了"</string>
- <string name="menu_doNotSave">"変更取消"</string>
+ <!-- no translation found for menu_doNotSave (2174577548513895144) -->
+ <skip />
<string name="editContact_title_edit">"連絡先を編集"</string>
<string name="editContact_title_insert">"連絡先を新規登録"</string>
<string name="menu_addItem">"情報を追加"</string>
<string name="importFromSim">"連絡先をインポート"</string>
<string name="send_to_voicemail_checkbox">"ボイスメールに直接電話します。"</string>
<string name="send_to_voicemail_view">"この番号にかけるとボイスメールに送信されます。"</string>
- <string name="default_ringtone">"デフォルト"</string>
+ <string name="default_ringtone">"端末既定"</string>
<string name="addPicture">"アイコンを追加"</string>
<string name="removePicture">"アイコンを削除"</string>
<string name="noContacts">"連絡先がありません。"</string>
<string name="listSeparatorSendEmail">"メールを送信"</string>
<string name="listSeparatorSendEmail_edit">"メールアドレス"</string>
<string name="listSeparatorSendIm">"インスタントメッセージを送信"</string>
- <!-- no translation found for listSeparatorSendIm_edit (3793290685553377986) -->
- <skip />
+ <string name="listSeparatorSendIm_edit">"チャットアドレス"</string>
<string name="listSeparatorMapAddress">"地図でみる"</string>
- <!-- no translation found for listSeparatorMapAddress_edit (298711187672067985) -->
- <skip />
+ <string name="listSeparatorMapAddress_edit">"住所"</string>
<string name="listSeparatorOrganizations">"勤務先情報"</string>
<string name="listSeparatorOtherInformation">"その他の情報"</string>
<string name="listSeparatorOtherInformation_edit">"その他のオプション"</string>
<string name="recentCalls_removeFromRecentList">"通話履歴から消去"</string>
<string name="recentCalls_deleteAll">"通話履歴を全件消去"</string>
<string name="recentCalls_empty">"通話履歴なし"</string>
- <string name="imei">"IMEI"</string>
+ <string name="imei">"IMEI(端末識別番号)"</string>
<string name="voicemail">"ボイスメール"</string>
<string name="unknown">"不明"</string>
<string name="private_num">"非通知番号"</string>
<string name="header_actions">"操作"</string>
<string name="ringtone_spinner">"着信音: <xliff:g id="RINGTONE">%1$s</xliff:g>"</string>
<string name="add_more_items">"その他の項目を追加"</string>
- <!-- no translation found for actionCall (695145166039381504) -->
- <skip />
- <!-- no translation found for actionEmail (3870371552333656807) -->
- <skip />
- <!-- no translation found for actionText (6399049224844880108) -->
- <skip />
- <!-- no translation found for actionChat (31079429748650300) -->
- <skip />
- <!-- no translation found for actionMap (1977955782051732775) -->
- <skip />
- <!-- no translation found for actionIncomingCall (6028930669817038600) -->
- <skip />
- <!-- no translation found for detailIncomingCallsGoToVoicemail (9163373178772231307) -->
- <skip />
- <!-- no translation found for detailsRingtone (4052108748982701775) -->
- <skip />
- <!-- no translation found for callBack (5498224409038809224) -->
- <skip />
+ <string name="actionCall">"<xliff:g id="TYPE">%s</xliff:g>に発信"</string>
+ <string name="actionEmail">"<xliff:g id="TYPE">%s</xliff:g>にメールを送信"</string>
+ <string name="actionText">"<xliff:g id="TYPE">%s</xliff:g>にテキストを送信"</string>
+ <string name="actionChat">"<xliff:g id="TYPE">%s</xliff:g>を使用してチャット"</string>
+ <string name="actionMap">"<xliff:g id="TYPE">%s</xliff:g>の住所を表示"</string>
+ <string name="actionIncomingCall">"着信"</string>
+ <string name="detailIncomingCallsGoToVoicemail">"直接ボイスメールに送信します"</string>
+ <string name="detailsRingtone">"<xliff:g id="RINGTONE_NAME">%s</xliff:g>に設定"</string>
+ <string name="callBack">"コールバック"</string>
</resources>
<string name="deleteConfirmation_title">"삭제"</string>
<string name="deleteConfirmation">"연락처가 삭제됩니다."</string>
<string name="menu_done">"완료"</string>
- <string name="menu_doNotSave">"변경내용 취소"</string>
+ <!-- no translation found for menu_doNotSave (2174577548513895144) -->
+ <skip />
<string name="editContact_title_edit">"연락처 편집"</string>
<string name="editContact_title_insert">"새 연락처"</string>
<string name="menu_addItem">"추가정보"</string>
<string name="listSeparatorSendEmail">"이메일 보내기"</string>
<string name="listSeparatorSendEmail_edit">"이메일 주소"</string>
<string name="listSeparatorSendIm">"인스턴트 메시지 보내기"</string>
- <!-- no translation found for listSeparatorSendIm_edit (3793290685553377986) -->
- <skip />
+ <string name="listSeparatorSendIm_edit">"채팅 주소"</string>
<string name="listSeparatorMapAddress">"지도상의 주소"</string>
- <!-- no translation found for listSeparatorMapAddress_edit (298711187672067985) -->
- <skip />
+ <string name="listSeparatorMapAddress_edit">"우편 주소"</string>
<string name="listSeparatorOrganizations">"조직"</string>
<string name="listSeparatorOtherInformation">"기타 정보"</string>
<string name="listSeparatorOtherInformation_edit">"기타 옵션"</string>
<string name="header_actions">"작업"</string>
<string name="ringtone_spinner">"벨소리: <xliff:g id="RINGTONE">%1$s</xliff:g>"</string>
<string name="add_more_items">"항목 더 추가"</string>
- <!-- no translation found for actionCall (695145166039381504) -->
- <skip />
- <!-- no translation found for actionEmail (3870371552333656807) -->
- <skip />
- <!-- no translation found for actionText (6399049224844880108) -->
- <skip />
- <!-- no translation found for actionChat (31079429748650300) -->
- <skip />
- <!-- no translation found for actionMap (1977955782051732775) -->
- <skip />
- <!-- no translation found for actionIncomingCall (6028930669817038600) -->
- <skip />
- <!-- no translation found for detailIncomingCallsGoToVoicemail (9163373178772231307) -->
- <skip />
- <!-- no translation found for detailsRingtone (4052108748982701775) -->
- <skip />
- <!-- no translation found for callBack (5498224409038809224) -->
- <skip />
+ <string name="actionCall">"<xliff:g id="TYPE">%s</xliff:g>(으)로 전화걸기"</string>
+ <string name="actionEmail">"<xliff:g id="TYPE">%s</xliff:g>(으)로 이메일 보내기"</string>
+ <string name="actionText">"<xliff:g id="TYPE">%s</xliff:g>(으)로 문자 보내기"</string>
+ <string name="actionChat">"<xliff:g id="TYPE">%s</xliff:g> 채팅"</string>
+ <string name="actionMap">"<xliff:g id="TYPE">%s</xliff:g> 주소 보기"</string>
+ <string name="actionIncomingCall">"수신 전화"</string>
+ <string name="detailIncomingCallsGoToVoicemail">"음성메일로 바로 보냄"</string>
+ <string name="detailsRingtone">"<xliff:g id="RINGTONE_NAME">%s</xliff:g>(으)로 설정"</string>
+ <string name="callBack">"콜백"</string>
</resources>
<string name="deleteConfirmation_title">"Slett"</string>
<string name="deleteConfirmation">"Denne kontakten vil bli slettet."</string>
<string name="menu_done">"Lagre"</string>
- <string name="menu_doNotSave">"Forkast endringer"</string>
+ <!-- no translation found for menu_doNotSave (2174577548513895144) -->
+ <skip />
<string name="editContact_title_edit">"Rediger kontakt"</string>
<string name="editContact_title_insert">"Ny kontakt"</string>
<string name="menu_addItem">"Mer informasjon"</string>
<string name="deleteConfirmation_title">"Verwijderen"</string>
<string name="deleteConfirmation">"Deze contactpersoon wordt verwijderd."</string>
<string name="menu_done">"Gereed"</string>
- <string name="menu_doNotSave">"Wijzigingen ongedaan maken"</string>
+ <!-- no translation found for menu_doNotSave (2174577548513895144) -->
+ <skip />
<string name="editContact_title_edit">"Contactpersoon bewerken"</string>
<string name="editContact_title_insert">"Nieuwe contactpersoon"</string>
<string name="menu_addItem">"Meer informatie"</string>
<string name="attachToContact">"Pictogram voor contactpersoon"</string>
<string name="customLabelPickerTitle">"Aangepaste labelnaam"</string>
<string name="menu_displayGroup">"Groep weergeven"</string>
- <string name="syncGroupPreference">"Gesynchroniseerde groepen bewerken"</string>
+ <string name="syncGroupPreference">"Synchronisatiegroepen bewerken"</string>
<string name="importFromSim">"Contactpersonen importeren"</string>
<string name="send_to_voicemail_checkbox">"Oproepen rechtstreeks naar voicemail verzenden"</string>
<string name="send_to_voicemail_view">"Oproepen worden rechtstreeks naar voicemail verzonden."</string>
<string name="listSeparatorSendEmail">"E-mail verzenden"</string>
<string name="listSeparatorSendEmail_edit">"E-mailadressen"</string>
<string name="listSeparatorSendIm">"Chatbericht verzenden"</string>
- <!-- no translation found for listSeparatorSendIm_edit (3793290685553377986) -->
- <skip />
+ <string name="listSeparatorSendIm_edit">"Chatadressen"</string>
<string name="listSeparatorMapAddress">"Adres op kaart weergeven"</string>
- <!-- no translation found for listSeparatorMapAddress_edit (298711187672067985) -->
- <skip />
+ <string name="listSeparatorMapAddress_edit">"Postadressen"</string>
<string name="listSeparatorOrganizations">"Organisaties"</string>
<string name="listSeparatorOtherInformation">"Overige informatie"</string>
<string name="listSeparatorOtherInformation_edit">"Andere opties"</string>
<string name="simContacts_emptyLoading">"Laden vanaf SIM-kaart..."</string>
<string name="simContacts_title">"Contactpersonen op SIM-kaart"</string>
<string name="contactsSyncPlug"><font fgcolor="#ffffffff">"Synchroniseer uw Google-contactpersonen!"</font>" "\n"Zodra uw telefoon is gesynchroniseerd, heeft u uw contactpersonen altijd ter beschikking."</string>
- <string name="noContactsHelpText">"Je hebt geen contactpersonen."\n\n"Als je contactpersonen wilt toevoegen, druk je op "<font fgcolor="#ffffffff"><b>"Menu"</b></font>" en selecteer je:"\n\n" "\n<li><font fgcolor="#ffffffff"><b>"Synchronisatiegroepen bewerken"</b></font>" om deze toe te voegen van een nieuw of bestaand Google-account"\n</li>\n" "\n<li><font fgcolor="#ffffffff"><b>"Nieuwe contactpersoon"</b></font>" om een nieuwe contactpersoon te maken"\n</li>\n" "\n<li><font fgcolor="#ffffffff"><b>"Contactpersonen importeren"</b></font>" om contactpersonen vanaf je SIM-kaart toe te voegen"\n</li></string>
+ <string name="noContactsHelpText">"Je hebt geen contactpersonen."\n\n"Als je contactpersonen wilt toevoegen, klik je op "<font fgcolor="#ffffffff"><b>"Menu"</b></font>" en selecteer je:"\n\n" "\n<li><font fgcolor="#ffffffff"><b>"\'Synchronisatiegroepen bewerken\'"</b></font>" om contactpersonen toe te voegen uit een nieuwe of bestaande Google-account"\n</li>\n" "\n<li><font fgcolor="#ffffffff"><b>"\'Nieuwe contactpersoon\'"</b></font>" om een geheel nieuwe contactpersoon te maken"\n</li>\n" "\n<li><font fgcolor="#ffffffff"><b>"\'Contactpersonen importeren\'"</b></font>" om contactpersonen te importeren vanaf je SIM-kaart"\n</li></string>
<string name="seclectSyncGroups_title">"Groepen selecteren om te synchroniseren"</string>
<string name="liveFolder_all_label">"Alle contactpersonen"</string>
<string name="liveFolder_favorites_label">"Met ster"</string>
<string name="header_actions">"Acties"</string>
<string name="ringtone_spinner">"Beltoon: <xliff:g id="RINGTONE">%1$s</xliff:g>"</string>
<string name="add_more_items">"Meer items toevoegen"</string>
- <!-- no translation found for actionCall (695145166039381504) -->
- <skip />
- <!-- no translation found for actionEmail (3870371552333656807) -->
- <skip />
- <!-- no translation found for actionText (6399049224844880108) -->
- <skip />
- <!-- no translation found for actionChat (31079429748650300) -->
- <skip />
- <!-- no translation found for actionMap (1977955782051732775) -->
- <skip />
- <!-- no translation found for actionIncomingCall (6028930669817038600) -->
- <skip />
- <!-- no translation found for detailIncomingCallsGoToVoicemail (9163373178772231307) -->
- <skip />
- <!-- no translation found for detailsRingtone (4052108748982701775) -->
- <skip />
- <!-- no translation found for callBack (5498224409038809224) -->
- <skip />
+ <string name="actionCall">"<xliff:g id="TYPE">%s</xliff:g> bellen"</string>
+ <string name="actionEmail">"E-mail <xliff:g id="TYPE">%s</xliff:g>"</string>
+ <string name="actionText">"Tekst <xliff:g id="TYPE">%s</xliff:g>"</string>
+ <string name="actionChat">"Chatten via <xliff:g id="TYPE">%s</xliff:g>"</string>
+ <string name="actionMap">"<xliff:g id="TYPE">%s</xliff:g>-adres bekijken"</string>
+ <string name="actionIncomingCall">"Binnenkomende oproepen"</string>
+ <string name="detailIncomingCallsGoToVoicemail">"Wordt direct naar voicemail verzonden"</string>
+ <string name="detailsRingtone">"Ingesteld op <xliff:g id="RINGTONE_NAME">%s</xliff:g>"</string>
+ <string name="callBack">"Terugbellen"</string>
</resources>
<string name="deleteConfirmation_title">"Usuń"</string>
<string name="deleteConfirmation">"Ten kontakt zostanie usunięty."</string>
<string name="menu_done">"Gotowe"</string>
- <string name="menu_doNotSave">"Odrzuć zmiany"</string>
+ <!-- no translation found for menu_doNotSave (2174577548513895144) -->
+ <skip />
<string name="editContact_title_edit">"Edytuj kontakt"</string>
<string name="editContact_title_insert">"Nowy kontakt"</string>
<string name="menu_addItem">"Więcej informacji"</string>
<string name="listSeparatorSendEmail">"Wyślij wiadomość e-mail"</string>
<string name="listSeparatorSendEmail_edit">"Adresy e-mail"</string>
<string name="listSeparatorSendIm">"Wyślij wiadomość błyskawiczną"</string>
- <!-- no translation found for listSeparatorSendIm_edit (3793290685553377986) -->
- <skip />
+ <string name="listSeparatorSendIm_edit">"Adresy czatu"</string>
<string name="listSeparatorMapAddress">"Pokaż adres na mapie"</string>
- <!-- no translation found for listSeparatorMapAddress_edit (298711187672067985) -->
- <skip />
+ <string name="listSeparatorMapAddress_edit">"Adresy pocztowe"</string>
<string name="listSeparatorOrganizations">"Organizacje"</string>
<string name="listSeparatorOtherInformation">"Inne informacje"</string>
<string name="listSeparatorOtherInformation_edit">"Inne opcje"</string>
<string name="header_actions">"Czynności"</string>
<string name="ringtone_spinner">"Dźwięk dzwonka: <xliff:g id="RINGTONE">%1$s</xliff:g>"</string>
<string name="add_more_items">"Dodaj więcej elementów"</string>
- <!-- no translation found for actionCall (695145166039381504) -->
- <skip />
- <!-- no translation found for actionEmail (3870371552333656807) -->
- <skip />
- <!-- no translation found for actionText (6399049224844880108) -->
- <skip />
- <!-- no translation found for actionChat (31079429748650300) -->
- <skip />
- <!-- no translation found for actionMap (1977955782051732775) -->
- <skip />
- <!-- no translation found for actionIncomingCall (6028930669817038600) -->
- <skip />
- <!-- no translation found for detailIncomingCallsGoToVoicemail (9163373178772231307) -->
- <skip />
- <!-- no translation found for detailsRingtone (4052108748982701775) -->
- <skip />
- <!-- no translation found for callBack (5498224409038809224) -->
- <skip />
+ <string name="actionCall">"Zadzwoń na numer: <xliff:g id="TYPE">%s</xliff:g>"</string>
+ <string name="actionEmail">"Wyślij wiadomość e-mail na adres: <xliff:g id="TYPE">%s</xliff:g>"</string>
+ <string name="actionText">"Wyślij tekst do: <xliff:g id="TYPE">%s</xliff:g>"</string>
+ <string name="actionChat">"Porozmawiaj na czacie <xliff:g id="TYPE">%s</xliff:g>"</string>
+ <string name="actionMap">"Wyświetl adres: <xliff:g id="TYPE">%s</xliff:g>"</string>
+ <string name="actionIncomingCall">"Połączenia przychodzące"</string>
+ <string name="detailIncomingCallsGoToVoicemail">"Zostaną wysłane bezpośrednio na pocztę głosową"</string>
+ <string name="detailsRingtone">"Ustaw na <xliff:g id="RINGTONE_NAME">%s</xliff:g>"</string>
+ <string name="callBack">"Oddzwoń"</string>
</resources>
<string name="deleteConfirmation_title">"Удаление"</string>
<string name="deleteConfirmation">"Этот контакт будет удален."</string>
<string name="menu_done">"Готово"</string>
- <string name="menu_doNotSave">"Отменить изменения"</string>
+ <!-- no translation found for menu_doNotSave (2174577548513895144) -->
+ <skip />
<string name="editContact_title_edit">"Изменить контакт"</string>
<string name="editContact_title_insert">"Создание контакта"</string>
<string name="menu_addItem">"Подробнее"</string>
<string name="listSeparatorSendEmail">"Отправить сообщение электронной почты"</string>
<string name="listSeparatorSendEmail_edit">"Адреса электронной почты"</string>
<string name="listSeparatorSendIm">"Отправить мгновенное сообщение"</string>
- <!-- no translation found for listSeparatorSendIm_edit (3793290685553377986) -->
- <skip />
+ <string name="listSeparatorSendIm_edit">"Адреса чата"</string>
<string name="listSeparatorMapAddress">"Адрес на карте"</string>
- <!-- no translation found for listSeparatorMapAddress_edit (298711187672067985) -->
- <skip />
+ <string name="listSeparatorMapAddress_edit">"Почтовые адреса"</string>
<string name="listSeparatorOrganizations">"Организации"</string>
<string name="listSeparatorOtherInformation">"Другие сведения"</string>
<string name="listSeparatorOtherInformation_edit">"Другие параметры"</string>
<string name="header_actions">"Действия"</string>
<string name="ringtone_spinner">"Мелодия: <xliff:g id="RINGTONE">%1$s</xliff:g>"</string>
<string name="add_more_items">"Добавление контактов"</string>
- <!-- no translation found for actionCall (695145166039381504) -->
- <skip />
- <!-- no translation found for actionEmail (3870371552333656807) -->
- <skip />
- <!-- no translation found for actionText (6399049224844880108) -->
- <skip />
- <!-- no translation found for actionChat (31079429748650300) -->
- <skip />
- <!-- no translation found for actionMap (1977955782051732775) -->
- <skip />
- <!-- no translation found for actionIncomingCall (6028930669817038600) -->
- <skip />
- <!-- no translation found for detailIncomingCallsGoToVoicemail (9163373178772231307) -->
- <skip />
- <!-- no translation found for detailsRingtone (4052108748982701775) -->
- <skip />
- <!-- no translation found for callBack (5498224409038809224) -->
- <skip />
+ <string name="actionCall">"Позвонить по номеру: <xliff:g id="TYPE">%s</xliff:g>"</string>
+ <string name="actionEmail">"Отправить электронное сообщение на адрес: <xliff:g id="TYPE">%s</xliff:g>"</string>
+ <string name="actionText">"Отправить текстовое сообщение на номер: <xliff:g id="TYPE">%s</xliff:g>"</string>
+ <string name="actionChat">"Общаться в чате с помощью: <xliff:g id="TYPE">%s</xliff:g>"</string>
+ <string name="actionMap">"Просмотр адреса: <xliff:g id="TYPE">%s</xliff:g>"</string>
+ <string name="actionIncomingCall">"Входящие вызовы"</string>
+ <string name="detailIncomingCallsGoToVoicemail">"Переадресация в голосовую почту"</string>
+ <string name="detailsRingtone">"Выбрано: <xliff:g id="RINGTONE_NAME">%s</xliff:g>"</string>
+ <string name="callBack">"Перезвонить"</string>
</resources>
<string name="deleteConfirmation_title">"删除"</string>
<string name="deleteConfirmation">"会删除此联系人。"</string>
<string name="menu_done">"完成"</string>
- <string name="menu_doNotSave">"放弃更改"</string>
+ <!-- no translation found for menu_doNotSave (2174577548513895144) -->
+ <skip />
<string name="editContact_title_edit">"编辑联系人"</string>
<string name="editContact_title_insert">"添加联系人"</string>
<string name="menu_addItem">"详细信息"</string>
<string name="listSeparatorSendEmail">"发送电子邮件"</string>
<string name="listSeparatorSendEmail_edit">"电子邮件地址"</string>
<string name="listSeparatorSendIm">"发送即时消息"</string>
- <!-- no translation found for listSeparatorSendIm_edit (3793290685553377986) -->
- <skip />
+ <string name="listSeparatorSendIm_edit">"聊天地址"</string>
<string name="listSeparatorMapAddress">"地图地址"</string>
- <!-- no translation found for listSeparatorMapAddress_edit (298711187672067985) -->
- <skip />
+ <string name="listSeparatorMapAddress_edit">"邮政地址"</string>
<string name="listSeparatorOrganizations">"组织"</string>
<string name="listSeparatorOtherInformation">"其他信息"</string>
<string name="listSeparatorOtherInformation_edit">"其他选项"</string>
<string name="header_actions">"操作"</string>
<string name="ringtone_spinner">"铃声:<xliff:g id="RINGTONE">%1$s</xliff:g>"</string>
<string name="add_more_items">"添加更多项目"</string>
- <!-- no translation found for actionCall (695145166039381504) -->
- <skip />
- <!-- no translation found for actionEmail (3870371552333656807) -->
- <skip />
- <!-- no translation found for actionText (6399049224844880108) -->
- <skip />
- <!-- no translation found for actionChat (31079429748650300) -->
- <skip />
- <!-- no translation found for actionMap (1977955782051732775) -->
- <skip />
- <!-- no translation found for actionIncomingCall (6028930669817038600) -->
- <skip />
- <!-- no translation found for detailIncomingCallsGoToVoicemail (9163373178772231307) -->
- <skip />
- <!-- no translation found for detailsRingtone (4052108748982701775) -->
- <skip />
- <!-- no translation found for callBack (5498224409038809224) -->
- <skip />
+ <string name="actionCall">"呼叫<xliff:g id="TYPE">%s</xliff:g>"</string>
+ <string name="actionEmail">"向<xliff:g id="TYPE">%s</xliff:g>发送电子邮件"</string>
+ <string name="actionText">"向<xliff:g id="TYPE">%s</xliff:g>发送文本消息"</string>
+ <string name="actionChat">"使用 <xliff:g id="TYPE">%s</xliff:g> 进行聊天"</string>
+ <string name="actionMap">"查看<xliff:g id="TYPE">%s</xliff:g>地址"</string>
+ <string name="actionIncomingCall">"来电"</string>
+ <string name="detailIncomingCallsGoToVoicemail">"将直接发送至语音邮件"</string>
+ <string name="detailsRingtone">"设置为“<xliff:g id="RINGTONE_NAME">%s</xliff:g>”"</string>
+ <string name="callBack">"回拨"</string>
</resources>
<string name="deleteConfirmation_title">"刪除"</string>
<string name="deleteConfirmation">"此連絡人會被刪除。"</string>
<string name="menu_done">"完成"</string>
- <string name="menu_doNotSave">"放棄變更"</string>
+ <!-- no translation found for menu_doNotSave (2174577548513895144) -->
+ <skip />
<string name="editContact_title_edit">"編輯連絡人"</string>
<string name="editContact_title_insert">"新增連絡人"</string>
<string name="menu_addItem">"更多資訊"</string>
<string name="listSeparatorSendEmail">"傳送電子郵件"</string>
<string name="listSeparatorSendEmail_edit">"電子郵件地址"</string>
<string name="listSeparatorSendIm">"傳送即時訊息"</string>
- <!-- no translation found for listSeparatorSendIm_edit (3793290685553377986) -->
- <skip />
+ <string name="listSeparatorSendIm_edit">"即時通訊地址"</string>
<string name="listSeparatorMapAddress">"在地圖上顯示地址"</string>
- <!-- no translation found for listSeparatorMapAddress_edit (298711187672067985) -->
- <skip />
+ <string name="listSeparatorMapAddress_edit">"聯絡地址"</string>
<string name="listSeparatorOrganizations">"組織"</string>
<string name="listSeparatorOtherInformation">"其他資訊"</string>
<string name="listSeparatorOtherInformation_edit">"其他選項"</string>
<string name="header_actions">"動作"</string>
<string name="ringtone_spinner">"鈴聲:<xliff:g id="RINGTONE">%1$s</xliff:g>"</string>
<string name="add_more_items">"新增更多項目"</string>
- <!-- no translation found for actionCall (695145166039381504) -->
- <skip />
- <!-- no translation found for actionEmail (3870371552333656807) -->
- <skip />
- <!-- no translation found for actionText (6399049224844880108) -->
- <skip />
- <!-- no translation found for actionChat (31079429748650300) -->
- <skip />
- <!-- no translation found for actionMap (1977955782051732775) -->
- <skip />
- <!-- no translation found for actionIncomingCall (6028930669817038600) -->
- <skip />
- <!-- no translation found for detailIncomingCallsGoToVoicemail (9163373178772231307) -->
- <skip />
- <!-- no translation found for detailsRingtone (4052108748982701775) -->
- <skip />
- <!-- no translation found for callBack (5498224409038809224) -->
- <skip />
+ <string name="actionCall">"播打<xliff:g id="TYPE">%s</xliff:g>"</string>
+ <string name="actionEmail">"傳送電子郵件至<xliff:g id="TYPE">%s</xliff:g>"</string>
+ <string name="actionText">"傳送簡訊至<xliff:g id="TYPE">%s</xliff:g>"</string>
+ <string name="actionChat">"透過 <xliff:g id="TYPE">%s</xliff:g> 進行即時通訊"</string>
+ <string name="actionMap">"檢視<xliff:g id="TYPE">%s</xliff:g>地址"</string>
+ <string name="actionIncomingCall">"來電"</string>
+ <string name="detailIncomingCallsGoToVoicemail">"來電將直接轉到語音信箱"</string>
+ <string name="detailsRingtone">"設為<xliff:g id="RINGTONE_NAME">%s</xliff:g>"</string>
+ <string name="callBack">"回播電話"</string>
</resources>
<string name="contactsSyncPlug"><font fgcolor="#ffffffff">Sync your Google contacts!</font>
\nAfter syncing to your phone, your contacts will be available to you wherever you go.</string>
- <!-- Displayed full screen when the user has no contacts and they are displaying the My Contacts group -->
+ <!-- Displayed full screen when the user has no contacts and they are displaying the My Contacts group, and contact syncing is disabled -->
<string name="noContactsHelpText">"You don't have any contacts.\n\nTo add contacts, press <font fgcolor="#ffffffff"><b>Menu</b></font> and select:\n
+ \n<li><font fgcolor="#ffffffff"><b>New contact</b></font> to create a new contact from scratch\n</li>
+ \n<li><font fgcolor="#ffffffff"><b>Import contacts</b></font> to add contacts from your SIM card\n</li>"
+ </string>
+
+ <!-- Displayed full screen when the user has no contacts and they are displaying the My Contacts group, and contact syncing is enabled -->
+ <string name="noContactsHelpTextWithSync">"You don't have any contacts.\n\nTo add contacts, press <font fgcolor="#ffffffff"><b>Menu</b></font> and select:\n
\n<li><font fgcolor="#ffffffff"><b>Edit sync groups</b></font> to add from a new or existing Google account\n</li>
\n<li><font fgcolor="#ffffffff"><b>New contact</b></font> to create a new contact from scratch\n</li>
\n<li><font fgcolor="#ffffffff"><b>Import contacts</b></font> to add contacts from your SIM card\n</li>"
import android.content.ContentValues;
import android.content.Context;
import android.content.DialogInterface;
+import android.content.IContentProvider;
+import android.content.ISyncAdapter;
import android.content.Intent;
import android.content.SharedPreferences;
import android.database.CharArrayBuffer;
import android.net.Uri;
import android.os.Bundle;
import android.os.Parcelable;
+import android.os.RemoteException;
import android.preference.PreferenceManager;
import android.provider.Contacts;
import android.provider.Contacts.ContactMethods;
import android.view.ContextMenu.ContextMenuInfo;
import android.widget.AdapterView;
import android.widget.AlphabetIndexer;
+import android.widget.ImageView;
import android.widget.ListView;
import android.widget.ResourceCursorAdapter;
import android.widget.SectionIndexer;
import android.widget.TextView;
-import java.util.ArrayList;
import java.lang.ref.WeakReference;
+import java.util.ArrayList;
/**
* Displays a list of contacts. Usually is embedded into the ContactsActivity.
ContactItemListAdapter mAdapter;
- private int mMode = DEFAULT_MODE;
+ int mMode = DEFAULT_MODE;
// The current display group
private String mDisplayInfo;
private int mDisplayType;
private Uri mGroupFilterUri;
private Uri mGroupUri;
private boolean mJustCreated;
+ private boolean mSyncEnabled;
/**
* Used to keep track of the scroll state of the list.
// Set the proper empty string
setEmptyText();
- mAdapter = new ContactItemListAdapter(this, R.layout.contacts_list_item, null);
+ mAdapter = new ContactItemListAdapter(this);
setListAdapter(mAdapter);
// We manually save/restore the listview state
mQueryHandler = new QueryHandler(this);
mJustCreated = true;
+
+ // Check to see if sync is enabled
+ final ContentResolver resolver = getContentResolver();
+ IContentProvider provider = resolver.acquireProvider(Contacts.CONTENT_URI);
+ try {
+ ISyncAdapter sa = provider.getSyncAdapter();
+ mSyncEnabled = sa != null;
+ } catch (RemoteException e) {
+ mSyncEnabled = false;
+ }
+ resolver.releaseProvider(provider);
}
private void setEmptyText() {
switch (mMode) {
case MODE_GROUP:
if (Groups.GROUP_MY_CONTACTS.equals(mDisplayInfo)) {
- empty.setText(getText(R.string.noContactsHelpText));
+ if (mSyncEnabled) {
+ empty.setText(getText(R.string.noContactsHelpTextWithSync));
+ } else {
+ empty.setText(getText(R.string.noContactsHelpText));
+ }
gravity = Gravity.NO_GRAVITY;
} else {
empty.setText(getString(R.string.groupEmpty, mDisplayInfo));
}
// Sync settings
- Intent syncIntent = new Intent(Intent.ACTION_VIEW);
- syncIntent.setClass(this, ContactsGroupSyncSelector.class);
- menu.add(0, 0, 0, R.string.syncGroupPreference)
- .setIcon(com.android.internal.R.drawable.ic_menu_refresh)
- .setIntent(syncIntent);
+ if (mSyncEnabled) {
+ Intent syncIntent = new Intent(Intent.ACTION_VIEW);
+ syncIntent.setClass(this, ContactsGroupSyncSelector.class);
+ menu.add(0, 0, 0, R.string.syncGroupPreference)
+ .setIcon(com.android.internal.R.drawable.ic_menu_refresh)
+ .setIntent(syncIntent);
+ }
// SIM import
Intent importIntent = new Intent(Intent.ACTION_VIEW);
final ContactsListActivity activity = mActivity.get();
if (activity != null && !activity.isFinishing()) {
activity.mAdapter.setLoading(false);
+ activity.getListView().clearTextFilter();
activity.mAdapter.changeCursor(cursor);
// Now that the cursor is populated again, it's possible to restore the list state
public CharArrayBuffer labelBuffer = new CharArrayBuffer(128);
public TextView numberView;
public CharArrayBuffer numberBuffer = new CharArrayBuffer(128);
+ public ImageView presenceView;
}
private final class ContactItemListAdapter extends ResourceCursorAdapter
private CharSequence mUnknownNameText;
private CharSequence[] mLocalizedLabels;
- public ContactItemListAdapter(Context context, int resource, Cursor cursor) {
- super(context, resource, cursor);
+ public ContactItemListAdapter(Context context) {
+ super(context, R.layout.contacts_list_item, null);
mAlphabet = context.getString(com.android.internal.R.string.fast_scroll_alphabet);
- if (cursor != null) {
- mIndexer = new AlphabetIndexer(cursor, NAME_COLUMN_INDEX, mAlphabet);
- }
mUnknownNameText = context.getText(android.R.string.unknownName);
switch (mMode) {
final ContactListItemCache cache = new ContactListItemCache();
cache.nameView = (TextView) view.findViewById(R.id.name);
cache.labelView = (TextView) view.findViewById(R.id.label);
- cache.labelView.setCompoundDrawablePadding(3);
cache.numberView = (TextView) view.findViewById(R.id.number);
+ cache.presenceView = (ImageView) view.findViewById(R.id.presence);
view.setTag(cache);
return view;
// Set the phone number
TextView numberView = cache.numberView;
+ TextView labelView = cache.labelView;
cursor.copyStringToBuffer(NUMBER_COLUMN_INDEX, cache.numberBuffer);
size = cache.numberBuffer.sizeCopied;
if (size != 0) {
numberView.setText(cache.numberBuffer.data, 0, size);
numberView.setVisibility(View.VISIBLE);
+ labelView.setVisibility(View.VISIBLE);
} else {
numberView.setVisibility(View.GONE);
+ labelView.setVisibility(View.GONE);
}
// Set the label
- TextView labelView = cache.labelView;
if (!cursor.isNull(TYPE_COLUMN_INDEX)) {
int type = cursor.getInt(TYPE_COLUMN_INDEX);
labelView.setText(cache.labelBuffer.data, 0, cache.labelBuffer.sizeCopied);
}
} else {
- // Set the text to a length of 0
- labelView.setText(cache.labelBuffer.data, 0, 0);
+ // There is no label, hide the the view
+ labelView.setVisibility(View.GONE);
}
- // Set the proper icon in the label view
+
+ // Set the proper icon (star or presence or nothing)
+ ImageView presenceView = cache.presenceView;
if (mMode != MODE_STREQUENT) {
if ((mMode & MODE_MASK_NO_PRESENCE) == 0) {
int serverStatus;
if (!cursor.isNull(SERVER_STATUS_COLUMN_INDEX)) {
serverStatus = cursor.getInt(SERVER_STATUS_COLUMN_INDEX);
- labelView.setCompoundDrawablesWithIntrinsicBounds(
- getResources().getDrawable(
- Presence.getPresenceIconResourceId(serverStatus)),
- null, null, null);
+ presenceView.setImageResource(
+ Presence.getPresenceIconResourceId(serverStatus));
+ presenceView.setVisibility(View.VISIBLE);
} else {
- labelView.setCompoundDrawablesWithIntrinsicBounds(null, null, null, null);
+ presenceView.setVisibility(View.GONE);
}
} else {
- labelView.setCompoundDrawablesWithIntrinsicBounds(null, null, null, null);
+ presenceView.setVisibility(View.GONE);
}
} else {
if (cursor.getInt(STARRED_COLUMN_INDEX) != 0) {
- labelView.setCompoundDrawablesWithIntrinsicBounds(
- getResources().getDrawable(R.drawable.star_on),
- null, null, null);
+ presenceView.setImageResource(R.drawable.star_on);
+ presenceView.setVisibility(View.VISIBLE);
} else {
- labelView.setCompoundDrawablesWithIntrinsicBounds(null, null, null, null);
+ presenceView.setVisibility(View.GONE);
}
}
}
private static final String TAG = "ViewContact";
private static final String SHOW_BARCODE_INTENT = "com.google.zxing.client.android.ENCODE";
+ private static final boolean SHOW_SEPARATORS = false;
+
private static final String[] PHONE_KEYS = {
Contacts.Intents.Insert.PHONE,
Contacts.Intents.Insert.SECONDARY_PHONE,
mAdapter = new ViewAdapter(this, mSections);
setListAdapter(mAdapter);
} else {
- mAdapter.setSections(mSections, true);
+ mAdapter.setSections(mSections, SHOW_SEPARATORS);
}
} else {
Toast.makeText(this, R.string.invalidContactMessage, Toast.LENGTH_SHORT).show();
private boolean isBarcodeScannerInstalled() {
final Intent intent = new Intent(SHOW_BARCODE_INTENT);
- List<ResolveInfo> list = getPackageManager().queryIntentActivities(intent,
+ ResolveInfo ri = getPackageManager().resolveActivity(intent,
PackageManager.MATCH_DEFAULT_ONLY);
- return list.size() > 0;
+ return ri != null;
}
@Override
return;
}
- ViewEntry entry = ContactEntryAdapter.getEntry(mSections, info.position, true);
+ ViewEntry entry = ContactEntryAdapter.getEntry(mSections, info.position, SHOW_SEPARATORS);
switch (entry.kind) {
case Contacts.KIND_PHONE: {
menu.add(0, 0, 0, R.string.menu_call).setIntent(entry.intent);
break;
}
- ViewEntry entry = ContactEntryAdapter.getEntry(mSections, info.position, true);
+ ViewEntry entry = ContactEntryAdapter.getEntry(mSections, info.position,
+ SHOW_SEPARATORS);
ContentValues values = new ContentValues(1);
values.put(People.PRIMARY_PHONE_ID, entry.id);
getContentResolver().update(mUri, values, null, null);
int index = getListView().getSelectedItemPosition();
if (index != -1) {
- ViewEntry entry = ViewAdapter.getEntry(mSections, index, true);
+ ViewEntry entry = ViewAdapter.getEntry(mSections, index, SHOW_SEPARATORS);
if (entry.kind == Contacts.KIND_PHONE) {
Intent intent = new Intent(Intent.ACTION_CALL_PRIVILEGED, entry.uri);
startActivity(intent);
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
- ViewEntry entry = ViewAdapter.getEntry(mSections, position, true);
+ ViewEntry entry = ViewAdapter.getEntry(mSections, position, SHOW_SEPARATORS);
if (entry != null) {
Intent intent = entry.intent;
if (intent != null) {
for (int i = 0; i < numSections; i++) {
mSections.get(i).clear();
}
- buildSeparators();
+
+ if (SHOW_SEPARATORS) {
+ buildSeparators();
+ }
// Build up the phone entries
final Uri phonesUri = Uri.withAppendedPath(mUri, People.Phones.CONTENT_DIRECTORY);
// Add a phone number entry
final ViewEntry entry = new ViewEntry();
- entry.label = Phones.getDisplayLabel(this, type, label).toString();
+ final CharSequence displayLabel = Phones.getDisplayLabel(this, type, label);
+ entry.label = buildActionString(R.string.actionCall, displayLabel, true);
entry.data = number;
entry.id = id;
entry.uri = uri;
if (isPrimary) {
entry.primaryIcon = R.drawable.ic_default_number;
}
- entry.actionIcon = R.drawable.sym_action_call;
+ entry.actionIcon = android.R.drawable.sym_action_call;
mPhoneEntries.add(entry);
if (type == Phones.TYPE_MOBILE || mShowSmsLinksForAllPhones) {
// Add an SMS entry
ViewEntry smsEntry = new ViewEntry();
- smsEntry.label = entry.label;
+ smsEntry.label = buildActionString(R.string.actionText, displayLabel, true);
smsEntry.data = number;
smsEntry.id = id;
smsEntry.uri = uri;
switch (kind) {
case Contacts.KIND_EMAIL:
- entry.label = ContactMethods.getDisplayLabel(this, kind, type, label)
- .toString();
+ entry.label = buildActionString(R.string.actionEmail,
+ ContactMethods.getDisplayLabel(this, kind, type, label), true);
entry.data = data;
entry.intent = new Intent(Intent.ACTION_SENDTO,
Uri.fromParts("mailto", data, null));
- if (!methodsCursor.isNull(METHODS_STATUS_COLUMN)) {
- entry.presenceIcon = Presence.getPresenceIconResourceId(
- methodsCursor.getInt(METHODS_STATUS_COLUMN));
- }
- entry.actionIcon = R.drawable.sym_action_email;
+ entry.actionIcon = android.R.drawable.sym_action_email;
mEmailEntries.add(entry);
break;
case Contacts.KIND_POSTAL:
- entry.label = ContactMethods.getDisplayLabel(this, kind, type, label)
- .toString();
+ entry.label = buildActionString(R.string.actionMap,
+ ContactMethods.getDisplayLabel(this, kind, type, label), true);
entry.data = data;
entry.maxLines = 4;
entry.intent = new Intent(Intent.ACTION_VIEW, uri);
String host;
if (protocolObj instanceof Number) {
int protocol = ((Number) protocolObj).intValue();
- entry.label = protocolStrings[protocol];
+ entry.label = buildActionString(R.string.actionChat,
+ protocolStrings[protocol], false);
host = ContactMethods.lookupProviderNameFromId(protocol).toLowerCase();
if (protocol == ContactMethods.PROTOCOL_GOOGLE_TALK
|| protocol == ContactMethods.PROTOCOL_MSN) {
}
} else {
String providerName = (String) protocolObj;
- entry.label = providerName;
+ entry.label = buildActionString(R.string.actionChat,
+ providerName, false);
host = providerName.toLowerCase();
}
// Only add the intent if there is a valid host
if (!TextUtils.isEmpty(host)) {
- entry.intent = new Intent(Intent.ACTION_SENDTO, constructImToUrl(host, data));
+ entry.intent = new Intent(Intent.ACTION_SENDTO,
+ constructImToUrl(host, data));
}
entry.data = data;
if (!methodsCursor.isNull(METHODS_STATUS_COLUMN)) {
entry.presenceIcon = Presence.getPresenceIconResourceId(
methodsCursor.getInt(METHODS_STATUS_COLUMN));
}
- entry.actionIcon = R.drawable.sym_action_chat;
+ entry.actionIcon = android.R.drawable.sym_action_chat;
mImEntries.add(entry);
break;
}
entry.data = data;
entry.label = label;
entry.intent = intent;
- entry.actionIcon = R.drawable.sym_action_chat;
+ entry.actionIcon = android.R.drawable.sym_action_chat;
entry.presenceIcon = Presence.getPresenceIconResourceId(
presenceCursor.getInt(2));
entry.maxLabelLines = 2;
entry.id = organizationsCursor.getLong(ORGANIZATIONS_ID_COLUMN);
entry.uri = ContentUris.withAppendedId(organizationsUri, entry.id);
entry.kind = Contacts.KIND_ORGANIZATION;
- entry.data = organizationsCursor.getString(ORGANIZATIONS_COMPANY_COLUMN);
- entry.data2 = organizationsCursor.getString(ORGANIZATIONS_TITLE_COLUMN);
+ entry.label = organizationsCursor.getString(ORGANIZATIONS_COMPANY_COLUMN);
+ entry.data = organizationsCursor.getString(ORGANIZATIONS_TITLE_COLUMN);
+ entry.actionIcon = R.drawable.sym_action_organization;
+/*
entry.label = Organizations.getDisplayLabel(this,
organizationsCursor.getInt(ORGANIZATIONS_TYPE_COLUMN),
organizationsCursor.getString(ORGANIZATIONS_LABEL_COLUMN)).toString();
+*/
mOrganizationEntries.add(entry);
}
entry.uri = null;
entry.intent = null;
entry.maxLines = 10;
+ entry.actionIcon = R.drawable.sym_note;
mOtherEntries.add(entry);
}
entry.data = ringtone.getTitle(this);
entry.kind = ViewEntry.KIND_CONTACT;
entry.uri = ringtoneUri;
+ entry.actionIcon = R.drawable.sym_ringtone;
mOtherEntries.add(entry);
}
}
}
+ // Build the send directly to voice mail entry
boolean sendToVoicemail = personCursor.getInt(CONTACT_SEND_TO_VOICEMAIL_COLUMN) == 1;
if (sendToVoicemail) {
ViewEntry entry = new ViewEntry();
- entry.label = getString(R.string.send_to_voicemail_view);
- entry.isLabelOnly = true;
+ entry.label = getString(R.string.actionIncomingCall);
+ entry.data = getString(R.string.detailIncomingCallsGoToVoicemail);
entry.kind = ViewEntry.KIND_CONTACT;
+ entry.actionIcon = R.drawable.sym_send_to_voicemail;
mOtherEntries.add(entry);
}
}
+ String buildActionString(int actionResId, CharSequence type, boolean lowerCase) {
+ if (lowerCase) {
+ return getString(actionResId, type.toString().toLowerCase());
+ } else {
+ return getString(actionResId, type.toString());
+ }
+ }
+
/**
* A basic structure with the data for a contact entry in the list.
*/
- private final static class ViewEntry extends ContactEntryAdapter.Entry {
+ final static class ViewEntry extends ContactEntryAdapter.Entry {
public int primaryIcon = -1;
public Intent intent;
public Intent auxIntent = null;
public int presenceIcon = -1;
public int actionIcon = -1;
- public String data2 = null;
- public boolean isLabelOnly = false;
public int maxLabelLines = 1;
}
static class ViewCache {
public TextView label;
public TextView data;
- public TextView data2;
+ public ImageView actionIcon;
+ public ImageView presenceIcon;
// Need to keep track of this too
ViewEntry entry;
}
ViewAdapter(Context context, ArrayList<ArrayList<ViewEntry>> sections) {
- super(context, sections, true);
+ super(context, sections, SHOW_SEPARATORS);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
- ViewEntry entry = getEntry(mSections, position, true);
+ ViewEntry entry = getEntry(mSections, position, false);
View v;
// Handle separators specially
if (entry.kind == ViewEntry.KIND_SEPARATOR) {
TextView separator = (TextView) mInflater.inflate(
- R.layout.list_separator, parent, false);
+ R.layout.list_separator, parent, SHOW_SEPARATORS);
separator.setText(entry.data);
return separator;
}
// Check to see if we can reuse convertView
if (convertView != null) {
- views = (ViewCache) convertView.getTag();
- if (views != null) {
- ViewEntry origEntry = views.entry;
- if (origEntry != null) {
- // Check to see if the view and the entry are compatible
- if (entry.kind == Contacts.KIND_ORGANIZATION
- && origEntry.kind != Contacts.KIND_ORGANIZATION) {
- v = null;
- } else if (entry.kind != Contacts.KIND_ORGANIZATION
- && origEntry.kind == Contacts.KIND_ORGANIZATION) {
- v = null;
- } else if (entry.isLabelOnly != origEntry.isLabelOnly) {
- v = null;
- } else {
- v = convertView;
- }
- } else {
- v = null;
- }
- } else {
- v = null;
- }
+ v = convertView;
+ views = (ViewCache) v.getTag();
} else {
- v = null;
- }
-
- // Create a new view if needed
- if (v == null) {
- if (entry.kind == Contacts.KIND_ORGANIZATION) {
- v = mInflater.inflate(R.layout.view_contact_entry_organization, parent, false);
- } else if (entry.isLabelOnly) {
- v = mInflater.inflate(R.layout.view_contact_entry_only_label, parent, false);
- } else {
- v = mInflater.inflate(R.layout.view_contact_entry, parent, false);
- }
+ // Create a new view if needed
+ v = mInflater.inflate(R.layout.list_item_text_icons, parent, false);
// Cache the children
views = new ViewCache();
- views.label = (TextView) v.findViewById(R.id.label);
- views.data = (TextView) v.findViewById(R.id.data);
- // label-only contact entries don't have a data view
- if (views.data != null) {
- views.data.setCompoundDrawablePadding(3);
- }
- views.data2 = (TextView) v.findViewById(R.id.data2);
- } else {
- views = (ViewCache) v.getTag();
+ views.label = (TextView) v.findViewById(android.R.id.text1);
+ views.data = (TextView) v.findViewById(android.R.id.text2);
+ views.actionIcon = (ImageView) v.findViewById(R.id.icon1);
+ views.presenceIcon = (ImageView) v.findViewById(R.id.icon2);
+ v.setTag(views);
}
- // Set the tag on the view so it knows what it's displaying
+ // Update the entry in the view cache
views.entry = entry;
- v.setTag(views);
// Bind the data to the view
bindView(v, entry);
setMaxLines(data, entry.maxLines);
}
- // Set the left icon
- Drawable left = null;
- if (entry.primaryIcon != -1) {
- left = resources.getDrawable(entry.primaryIcon);
- } else if (entry.presenceIcon != -1) {
- left = resources.getDrawable(entry.presenceIcon);
- }
-
- // Set the right icon
- Drawable right = null;
+ // Set the action icon
+ ImageView action = views.actionIcon;
if (entry.actionIcon != -1) {
- right = resources.getDrawable(entry.actionIcon);
+ action.setImageDrawable(resources.getDrawable(entry.actionIcon));
+ action.setVisibility(View.VISIBLE);
+ } else {
+ // Things should still line up as if there was an icon, so make it invisible
+ action.setVisibility(View.INVISIBLE);
}
-
- if (data != null) {
- data.setCompoundDrawablesWithIntrinsicBounds(left, null, right, null);
+
+ // Set the presence icon
+ Drawable presenceIcon = null;
+ if (entry.primaryIcon != -1) {
+ presenceIcon = resources.getDrawable(entry.primaryIcon);
+ } else if (entry.presenceIcon != -1) {
+ presenceIcon = resources.getDrawable(entry.presenceIcon);
}
- // Set data2 if we have it
- if (entry.kind == Contacts.KIND_ORGANIZATION) {
- views.data2.setText(entry.data2);
+ ImageView presence = views.presenceIcon;
+ if (presenceIcon != null) {
+ presence.setImageDrawable(presenceIcon);
+ presence.setVisibility(View.VISIBLE);
+ } else {
+ presence.setVisibility(View.GONE);
}
}