Compare commits

...

20 Commits

Author SHA1 Message Date
d34d
9f21ed5e28 Enroll fingerprint via SetupWizard [2/2]
Change-Id: Ieabfb0f3b789b02ddd1e17aba1eadfda52b21384
2015-07-10 22:44:36 -07:00
Matt Garnes
616db63139 Fix incorrect retrieval of SIM Network Operator.
We were incorrectly passing the phone ID to TelephonyManager instead of
the subscription ID. Pass the correct identifier to retrieve the network
operator name.

Change-Id: I266d2ce39c72db6e97eff5a36c5fec6242d516cc
(cherry picked from commit b31cb54361)
2015-06-29 13:05:36 -07:00
Raj Yengisetty
497ddd6b71 SetupWizard: protect against IllegalStateExceptions in telephony
Telephony throws this exception in some cases when retrieving SIM state

Change-Id: I87e14aaa328d46ebba4990559f6531de4e961d68
(cherry picked from commit b72e820a96)
2015-06-19 01:04:59 +00:00
emancebo
ffc0dbd2fb SetupWizard: add overlay to uncheck cyanogen theme option by default
Change-Id: I278dcb3b2d8099b71a66d90250c40836dd8ec7fc
(cherry picked from commit 7a255f6e5c)
2015-06-18 16:57:57 +00:00
cretin45
c5e926d67f SetupWizard: Add hook to finish setup for CTS automation
Change-Id: Ifd7edda671fd8011a9b9ed894333c292cd0c3331
2015-06-17 13:56:09 -07:00
Roman Birg
1fc47a0a79 SetupWizard: allow FINISH_SETUP to be granted via whitelist
Required by http://review.cyanogenmod.org/#/c/100839/

Change-Id: Id3b62c396b5be3497be004f0f3807d8627c4e4da
Signed-off-by: Roman Birg <roman@cyngn.com>
2015-06-15 23:26:35 +00:00
Michael Bestas
761381fd01 Automatic translation import
Change-Id: Id7898af5ac5ceb99d18b984f321166dbe780edb8
2015-06-13 21:04:23 +03:00
cretin45
b7c51828ed SetupWizard: Ensure setup complete flags are set for secondary users
Change-Id: If96abdb6ccc52f7049018dcae6576dd1b886fc0f
2015-06-12 12:24:30 -07:00
Michael Bestas
82bbed9d9c Automatic translation import
Change-Id: Ie54c22f80639bda17b1d926fac2b31137dba4620
2015-06-09 20:35:55 +03:00
Michael Bestas
b94d4434d5 Automatic translation import
Change-Id: I08c97e02da04e4f471bd7e59ce60a5a334be5623
2015-05-31 16:59:07 +03:00
Michael Bestas
a9d0039761 Automatic translation import
Change-Id: Ifa05ef59df4c397f799637fb2d8fa153c84e57fd
2015-05-24 23:36:21 +03:00
emancebo
b2ceb1f8bb OOBE: fix NPE in choose data sim page
Change-Id: Ib6228e7cd223d29ac48200e9a50c0900d35f8a4e
2015-05-18 16:25:14 +00:00
Michael Bestas
3d884cef0e Automatic translation import
Change-Id: Ib46208f9ee1b87700f5d3d19aaa0d44cf054ec0c
2015-05-16 00:03:00 +03:00
Roman Birg
bfd3abd0c7 SetupWizard: hide WhisperPush if it's not installed
Change-Id: I7576a2ee0f851e1222b6ed4d53188950b20b6a16
Signed-off-by: Roman Birg <roman@cyngn.com>
2015-05-13 19:33:58 -07:00
cretin45
7710855b72 SetupWizard: Add kill switch implementation
Change-Id: I1335cddf0dcc94eb8d2defeebdc47cb61abffd06
2015-05-08 11:44:34 -07:00
cretin45
4d08b90df3 SetupWizard: Use the system property mobile data page visibility
Change-Id: I3a3301bcdbc2200ba62067188e59c886a0891788
2015-05-07 14:05:29 -07:00
cretin45
b076a55991 SetupWizard: Use new LegaleseViewer for privacy policy web views
WebViews are no longer allowed in priv-apps.

Change-Id: Iddf9c79d50ea9f9d9d32218342f9948a6cbf30ef
2015-05-06 16:03:38 -07:00
cretin45
ac84dc0fce Setupwizard: Fix msim NPE where sim only in slot 2
Change-Id: I919129185cb49c51f9f02d9718e116e7d02b0d2c
2015-05-04 16:03:08 -07:00
Michael Bestas
676081a4ad Automatic translation import
Change-Id: I6b8d3fb084df5abb3449b842ce02d1d6aaf2170a
2015-05-02 03:34:53 +03:00
cretin45
9dd952e3f6 SetupWizard: Increase delay for accessibility
Change-Id: Ifff7161f95e91ec7763f388206cd1d30804ad600
2015-05-01 13:14:03 -07:00
64 changed files with 1087 additions and 40 deletions

View File

@@ -15,6 +15,7 @@
limitations under the License.
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
package="com.cyanogenmod.setupwizard"
android:versionCode="3"
android:sharedUserId="android.uid.system">
@@ -45,7 +46,9 @@
<uses-permission android:name="android.permission.BACKUP" />
<uses-permission android:name="org.whispersystems.whisperpush.permissions.REGISTER" />
<uses-permission android:name="cyanogenmod.permission.FINISH_SETUP" />
<uses-permission android:name="cyanogenmod.permission.LEGALESE" />
<uses-permission android:name="com.cyngn.cmstats.SEND_ANALYTICS" />
<uses-permission android:name="com.cyanogen.permission.REQUEST_KILL_SWITCH_OP" />
<permission
android:name="cyanogenmod.permission.PROTECTED_APP"
@@ -53,7 +56,8 @@
<permission
android:name="cyanogenmod.permission.FINISH_SETUP"
android:protectionLevel="signatureOrSystem" />
android:protectionLevel="signatureOrSystem"
androidprv:allowViaWhitelist="true" />
<permission android:name="org.whispersystems.whisperpush.permissions.REGISTER"
android:protectionLevel="signature" />
@@ -89,5 +93,12 @@
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<receiver android:name=".setup.FinishSetupReceiver"
android:exported="true">
<intent-filter>
<action android:name="com.cyanogenmod.setupwizard.ACTION_FINISH_SETUPWIZARD" />
</intent-filter>
</receiver>
</application>
</manifest>

BIN
res/drawable-hdpi/cross.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 346 B

BIN
res/drawable-hdpi/tick.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 312 B

BIN
res/drawable-mdpi/cross.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 253 B

BIN
res/drawable-mdpi/tick.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 236 B

BIN
res/drawable-xhdpi/cross.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 422 B

BIN
res/drawable-xhdpi/tick.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 371 B

BIN
res/drawable-xxhdpi/cross.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 554 B

BIN
res/drawable-xxhdpi/tick.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 477 B

BIN
res/drawable-xxxhdpi/cross.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 692 B

BIN
res/drawable-xxxhdpi/tick.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 572 B

View File

@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (c) 2015 The CyanogenMod 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.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#7ED321"
android:pathData="M9 16.2L4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4L9 16.2z" />
</vector>

View File

@@ -50,6 +50,58 @@
android:text="@string/services_explanation"
android:clickable="true"/>
<LinearLayout
android:id="@+id/killswitch"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="@dimen/location_margin_left"
android:paddingRight="@dimen/content_margin_right"
android:background="?android:attr/selectableItemBackground">
<ImageView
android:id="@+id/killswitch_check"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:paddingLeft="8dp"
android:paddingRight="@dimen/location_text_margin_left"
android:layout_gravity="center|top"
android:src="@drawable/tick"/>
<RelativeLayout
android:layout_width="0px"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="top"
android:layout_marginLeft="@dimen/location_text_margin_left"
android:layout_marginRight="@dimen/location_text_margin_right"
android:paddingBottom="@dimen/content_margin_bottom">
<TextView
android:id="@+id/killswitch_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="15sp"
android:lineSpacingExtra="@dimen/setup_line_spacing"
android:fadingEdge="horizontal"
android:text="@string/setup_require_cyanogen_label"/>
<TextView
android:id="@+id/killswitch_summary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/killswitch_title"
android:layout_alignStart="@+id/killswitch_title"
android:textSize="15sp"
android:lineSpacingExtra="@dimen/setup_line_spacing"
android:textColor="?android:attr/textColorSecondary"
android:text="@string/setup_device_locked_instructions"/>
</RelativeLayout>
</LinearLayout>
<!-- Whether or not to enable metrics -->
<LinearLayout
android:id="@+id/metrics"

View File

@@ -0,0 +1,90 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2015 The CyanogenMod 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:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<include layout="@layout/header" />
<FrameLayout android:id="@+id/page"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<ScrollView android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/PageContent">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/PageSummaryText"
android:textSize="16sp"
android:paddingLeft="@dimen/content_margin_left"
android:layout_marginBottom="@dimen/summary_margin_bottom"
android:paddingRight="@dimen/location_text_margin_right"
android:text="@string/fingerprint_setup_summary" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="24dp"
android:paddingLeft="@dimen/content_margin_left"
android:paddingRight="@dimen/location_text_margin_right"
android:drawableStart="@drawable/ic_check_mark"
android:drawablePadding="24dp"
android:gravity="center_vertical"
android:textSize="16sp"
android:textStyle="bold"
android:text="@string/fingerprint_setup_backup_lock_method"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="24dp"
android:paddingLeft="@dimen/content_margin_left"
android:paddingRight="@dimen/location_text_margin_right"
android:drawableStart="@drawable/ic_check_mark"
android:drawablePadding="24dp"
android:gravity="center_vertical"
android:textSize="16sp"
android:textStyle="bold"
android:text="@string/fingerprint_setup_add_fingerprint"/>
<TextView
android:id="@+id/setup_fingerprint"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="@dimen/content_margin_left"
android:paddingRight="@dimen/location_text_margin_right"
android:gravity="center_vertical"
android:textSize="16sp"
android:textAllCaps="true"
android:textColor="@color/fingerprint_setup_text_color"
android:text="@string/fingerprint_setup_screen_lock_setup"/>
</LinearLayout>
</ScrollView>
</FrameLayout>
</LinearLayout>

View File

@@ -65,4 +65,9 @@
<string name="services_os_nav_keys_label"><b>Gebruik skerm navigasie sleutels</b> in plaas van hardeware sleutels.</string>
<string name="services_use_secure_sms">Maak gebruik van veilige SMS</string>
<string name="services_secure_sms_label"><xliff:g id="name" example="Use secure SMS">%s</xliff:g> om SMS gesprekke met ander gebruikers te enkripteer met behulp van veilige SMS op \'n <xliff:g id="name" example="CyanogenMod">%s</xliff:g> toestel.</string>
<string name="setup_unlock">Ontsluit</string>
<string name="setup_device_locked">Die toestel is gesluit deur die gebruiker.</string>
<string name="setup_require_cyanogen_label"><b>Benodig jou Cyanogen wagwoord</b> om jou toestel te gebruik, selfs nadat \'n fabriek herstel gedoen is.</string>
<string name="setup_device_locked_instructions"><i>Om hierdie funksie te aan/af te skakel, gaan asseblief na Instellings &gt; Sekuriteit</i></string>
<string name="setup_warning_skip_anyway">Sonder \'n Cyanogen bedryfstelsel rekening, sal jy nie in staat wees om:\n\nOm jou toestel met nuwe ikone, agtergronde en meer in die Temas program te verpersoonlik nie\n\nJou toestel te vind of op te spoor indien dit verlore gaan nie</string>
</resources>

View File

@@ -54,9 +54,14 @@
<string name="yes"></string>
<string name="data_sim_name">SIM <xliff:g id="sub">%d</xliff:g> - <xliff:g id="name">%s</xliff:g></string>
<string name="emergency_call">Llamada d\'emerxencia</string>
<string name="setup_services">Carauterístiques de Cyanogen</string>
<string name="services_explanation" product="tablet">Estos servicios furrulen por ti pa estender les capacidaes de la tableta. Los datos usaránse acordies cola <xliff:g id="name" example="Privacy Policy">%s</xliff:g> de Cyanogen.</string>
<string name="services_explanation" product="default">Estos servicios furrulen por ti pa estender les capacidaes del móvil. Los datos usaránse acordies cola <xliff:g id="name" example="Privacy Policy">%s</xliff:g> de Cyanogen.</string>
<string name="services_privacy_policy">Política de privacidá</string>
<string name="services_help_improve_cm">Ayudar a ameyorar <xliff:g id="name" example="CyanogenMod">%s</xliff:g></string>
<string name="services_metrics_label"><xliff:g id="name" example="Help improve CyanogenMod">%s</xliff:g> unviando automáticamente diagnósticos y usu de datos a Cyanogen. Esta información nun s\'usa pa indentificate y écha-yos un gabitu a los equipos pa trabayar en coses como\'l consumu de batería, el rindimientu d\'aplicaciones, y les nueves carauterístiques <xliff:g id="name" example="CyanogenMod">%s</xliff:g>.</string>
<string name="services_apply_theme">Aplicar el tema <xliff:g id="name" example="Material">%s</xliff:g></string>
<string name="services_apply_theme_label"><xliff:g id="name" example="Apply the Material theme">%s</xliff:g> habilitando iconos, fondos de pantalla y fontes únicos.</string>
<string name="services_os_nav_keys_label"><b>Usar tecles de navegación na pantalla</b> en cuantes de tecles físiques.</string>
<string name="services_use_secure_sms">Usar SMS seguru</string>
<string name="services_secure_sms_label"><xliff:g id="name" example="Use secure SMS">%s</xliff:g> pa cifrar conversaciones SMS con otros usuarios usando SMS seguru nun preséu <xliff:g id="name" example="CyanogenMod">%s</xliff:g>.</string>

View File

@@ -39,13 +39,13 @@
<string name="date_time_summary">Estableix el teu fus horari i ajusta la data i hora actual si és necessari</string>
<string name="backup_data_summary"><b>Fes una còpia de seguretat</b> de les dades de les app, contrasenyes Wi-Fi, i altres ajustaments als servidors de Google</string>
<string name="other_services_summary">Aquests serveis posen a Google a treballar per a tu, i pots activar-los o desactivar-los en qualsevol moment. Les dades s\'utilitzaran d\'acord amb la <xliff:g id="name" example="Privacy Policy">%s</xliff:g> de Google.</string>
<string name="location_services_summary">Els serveis d\'ubicació permeten al sistema i a apps de tercers recopilar i utilitzar dades com la teva ubicació aproximada. Per exemple, una app pot utilitzar la teva ubicació aproximada per localitzar cafeteries als voltants.</string>
<string name="location_access_summary"><b>Permet a les apps que han demanat el teu permís</b> utilitzar la teva informació d\'ubicació. Això pot incloure la teva ubicació i ubicacions anteriors.</string>
<string name="location_gps" product="tablet"><b>Millora la precisió de la ubicació</b> permetent a les apps utilitzar el GPS de la teva tauleta.</string>
<string name="location_gps" product="default"><b>Millora la precisió de la ubicació</b> permetent a les apps utilitzar el GPS del teu telèfon.</string>
<string name="location_network"><b>Utilitza Wi-Fi</b> per ajudar a les apps a determinar la teva ubicació.</string>
<string name="location_network_telephony"><b>Utilitza Wi-Fi i les xarxes mòbils</b> per ajudar a les apps a determinar la teva ubicació.</string>
<string name="location_network_gms"><b>Utilitza el servei d\'ubicació de Google</b> per ajudar a les apps a determinar la teva ubicació. Això implica l\'enviament de dades anònimes d\'ubicació a Google, fins i tot quan no hi ha apps en execució.</string>
<string name="location_services_summary">Els serveis d\'ubicació permeten al sistema i a aplicacions de tercers recopilar i utilitzar dades com la teva ubicació aproximada. Per exemple, una aplicació pot utilitzar la teva ubicació aproximada per localitzar cafeteries als voltants.</string>
<string name="location_access_summary"><b>Permet a les aplicacions que han demanat el teu permís</b> utilitzar la teva informació d\'ubicació. Això pot incloure la teva ubicació i ubicacions anteriors.</string>
<string name="location_gps" product="tablet"><b>Millora la precisió de la ubicació</b> permetent a les aplicacions utilitzar el GPS de la teva tauleta.</string>
<string name="location_gps" product="default"><b>Millora la precisió de la ubicació</b> permetent a les aplicacions utilitzar el GPS del teu telèfon.</string>
<string name="location_network"><b>Utilitza Wi-Fi</b> per ajudar a les aplicacions a determinar la teva ubicació.</string>
<string name="location_network_telephony"><b>Utilitza Wi-Fi i les xarxes mòbils</b> per ajudar a les aplicacions a determinar la teva ubicació.</string>
<string name="location_network_gms"><b>Utilitza el servei d\'ubicació de Google</b> per ajudar a les aplicacions a determinar la teva ubicació. Això implica l\'enviament de dades anònimes d\'ubicació a Google, fins i tot quan no hi ha aplicacions en execució.</string>
<string name="setup_mobile_data">Activa les dades mòbils</string>
<string name="setup_mobile_data_no_service">Sense servei</string>
<string name="setup_mobile_data_emergency_only">Només trucades d\'emergència</string>
@@ -65,4 +65,9 @@
<string name="services_os_nav_keys_label"><b>Utilitza les tecles de navegació en pantalla</b> enlloc de les tecles físiques.</string>
<string name="services_use_secure_sms">Utilitza SMS segurs</string>
<string name="services_secure_sms_label"><xliff:g id="name" example="Use secure SMS">%s</xliff:g> per xifrarr les converses SMS amb altres usuaris mitjançant SMS segurs en un dispositiu <xliff:g id="name" example="CyanogenMod">%s</xliff:g>.</string>
<string name="setup_unlock">Desbloqueja</string>
<string name="setup_device_locked">Aquest dispositiu ha estat bloquejat per l\'usuari.</string>
<string name="setup_require_cyanogen_label"><b>Demana la contrasenya del teu compte Cyanogen OS</b> per utilitzar el teu dispositiu, fins i tot després de restaurar als ajustaments de fàbrica.</string>
<string name="setup_device_locked_instructions"><i>Per activar/desactivar aquesta característica, si us plau ves a Configuració &gt; Seguretat</i></string>
<string name="setup_warning_skip_anyway">Sense un compte Cyanogen OS, no podràs:\n\nPersonalitzar el teu telèfon amb noves icones, fons de pantalla i més en l\'aplicació de Temes\n\nLocalitzar o esborrar remotament el teu telèfon si el perds</string>
</resources>

View File

@@ -65,4 +65,9 @@
<string name="services_os_nav_keys_label"><b>Použít navigační klávesy na obrazovce</b> namísto hw kláves.</string>
<string name="services_use_secure_sms">Použít zabezpečené SMS</string>
<string name="services_secure_sms_label">Použijte aplikaci <xliff:g id="name" example="Use secure SMS">%s</xliff:g> pro šifrované SMS a zabezpečenou komunikaci na zařízení <xliff:g id="name" example="CyanogenMod">%s</xliff:g>.</string>
<string name="setup_unlock">Odemknout</string>
<string name="setup_device_locked">Toto zařízení bylo uzamčeno uživatelem.</string>
<string name="setup_require_cyanogen_label">Po obnovení továrního nastavení bude <b>vyžadováno heslo k Vašemu účtu Cyanogen OS</b>.</string>
<string name="setup_device_locked_instructions"><i>Pro zapnutí/vypnutí této funkce, přejděte do nastavení &gt; Zabezpečení</i></string>
<string name="setup_warning_skip_anyway">Bez účtu Cyanogen nebudete schopni:\n\nPřizpůsobit svůj telefon novými ikonami, tapetami a dalším z aplikace Motivy\n\nVzdáleně vyhledat nebo vymazat telefon v případě ztráty</string>
</resources>

View File

@@ -65,4 +65,9 @@
<string name="services_os_nav_keys_label"><b>Brug navigationstaster på skærmen</b> i stedet for fysiske knapper.</string>
<string name="services_use_secure_sms">Brug sikker SMS</string>
<string name="services_secure_sms_label"><xliff:g id="name" example="Use secure SMS">%s</xliff:g> til at kryptere SMS-samtaler med andre brugere ved hjælp af sikker SMS på en <xliff:g id="name" example="CyanogenMod">%s</xliff:g> enhed.</string>
<string name="setup_unlock">Lås op</string>
<string name="setup_device_locked">Denne enhed er blevet låst af brugeren.</string>
<string name="setup_require_cyanogen_label"><b>Kræver adgangskoden til din Cyanogen konto</b> for at bruge enheden, selv efter en nulstilling til fabriksindstillinger.</string>
<string name="setup_device_locked_instructions"><i>For at slå denne funktion til/fra, skal du gå til Indstillinger &gt; Sikkerhed</i></string>
<string name="setup_warning_skip_anyway">Uden en Cyanogen konto kan du ikke:\n\nTilpasse din telefon med nye ikoner, tapeter og meget mere i Tema app\'en\n\nFinde eller slette din telefon, hvis du mister den</string>
</resources>

View File

@@ -65,4 +65,9 @@
<string name="services_os_nav_keys_label"><b>Bildschirm-Navigationstasten</b> statt Hardwaretasten verwenden.</string>
<string name="services_use_secure_sms">Sichere SMS verwenden</string>
<string name="services_secure_sms_label"><xliff:g id="name" example="Use secure SMS">%s</xliff:g>, um SMS-Konversationen mit anderen Nutzern auf einem <xliff:g id="name" example="CyanogenMod">%s</xliff:g>-Gerät zu verschlüsseln.</string>
<string name="setup_unlock">Entsperren</string>
<string name="setup_device_locked">Dieses Gerät wurde durch den Benutzer gesperrt.</string>
<string name="setup_require_cyanogen_label"><b>Ihr Cyanogen OS-Konto-Passwort</b> wird auch nach einem Zurücksetzen auf Werkseinstellungen benötigt.</string>
<string name="setup_device_locked_instructions"><i>Um diese Funktion zu aktivieren/deaktivieren, gehen Sie zu Einstellungen &gt; Sicherheit</i></string>
<string name="setup_warning_skip_anyway">Ohne ein Cyanogen OS-Konto können Sie ihr Telefon nicht:\n\nMit neuen Symbolen, Hintergründen und mehr in der Design-App anpassen\n\nLokalisieren oder löschen, falls Sie es verloren haben</string>
</resources>

View File

@@ -65,4 +65,9 @@
<string name="services_os_nav_keys_label"><b>Κάντε χρήση των πλήκτρων πλοήγησης της οθόνης</b> αντί των φυσικών πλήκτρων.</string>
<string name="services_use_secure_sms">Κάντε χρήση των ασφαλών SMS</string>
<string name="services_secure_sms_label"><xliff:g id="name" example="Use secure SMS">%s</xliff:g> για να κρυπτογραφήσετε τις συνομιλίες SMS με άλλους χρήστες που χρησιμοποιούν ασφαλή SMS σε συσκευές <xliff:g id="name" example="CyanogenMod">%s</xliff:g>.</string>
<string name="setup_unlock">Ξεκλείδωμα</string>
<string name="setup_device_locked">Αυτή η συσκευή έχει κλειδωθεί από το χρήστη.</string>
<string name="setup_require_cyanogen_label"><b>Απαίτηση του κωδικού πρόσβασης του λογαριασμού σας Cyanogen OS</b> για να χρησιμοποιήσετε τη συσκευή σας, ακόμα και μετά από επαναφορά εργοστασιακών ρυθμίσεων.</string>
<string name="setup_device_locked_instructions"><i>Για να ενεργοποιήσετε/απενεργοποιήσετε αυτή τη λειτουργία, παρακαλώ πηγαίνετε στις Ρυθμίσεις &gt; Ασφάλεια</i></string>
<string name="setup_warning_skip_anyway">Χωρίς ένα λογαριασμό Cyanogen OS, δεν θα είστε σε θέση να:\n\nΠροσαρμόσετε το τηλέφωνό σας με νέα εικονίδια, ταπετσαρίες και πολλά άλλα στην εφαρμογή Θεμάτων\n\nΕντοπίσετε ή διαγράψετε εξ αποστάσεως το τηλέφωνό σας εάν το χάσετε</string>
</resources>

25
res/values-eo/strings.xml Normal file
View File

@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<!--
Copyright (C) 2013-2015 The CyanogenMod 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.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="next">Sekvonta</string>
<string name="start">Lanĉi</string>
<string name="ok">Konfirmi</string>
<string name="setup_welcome">Bonvenon</string>
<string name="no">Ne</string>
<string name="yes">Jes</string>
</resources>

View File

@@ -65,4 +65,9 @@
<string name="services_os_nav_keys_label"><b>Usar las teclas de navegación en pantalla</b> en vez de las teclas físicas.</string>
<string name="services_use_secure_sms">Usar SMS seguros</string>
<string name="services_secure_sms_label"><xliff:g id="name" example="Usar SMS seguro">%s</xliff:g> para cifrar conversaciones SMS con otros usuarios usando SMS seguros en tu dispositivo <xliff:g id="name" example="CyanogenMod">%s</xliff:g>.</string>
<string name="setup_unlock">Desbloquear</string>
<string name="setup_device_locked">Este dispositivo ha sido bloqueado por el usuario.</string>
<string name="setup_require_cyanogen_label"><b>Se requiere la contraseña de tu cuenta Cyanogen OS</b> para poder utilizar el dispositivo incluso después de un restablecimiento de fábrica.</string>
<string name="setup_device_locked_instructions"><i>Para activar o desactivar esta función, ve a Ajustes &gt; Seguridad</i></string>
<string name="setup_warning_skip_anyway">Sin una cuenta de Cyanogen OS no podrás:\n\nPersonalizar tu teléfono con nuevos iconos, fondos de pantalla y mucho más a través de la aplicación de temas\n\nBorrar tu teléfono localmente o de manera remota si se ha perdido</string>
</resources>

View File

@@ -16,6 +16,58 @@
limitations under the License.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="backup_data_summary">Aplikazio datuen, Wi-Fi pasahitzen, eta bestelako ezarpenen <b>segurtasun kopia</b> egin Google zerbitzarietan</string>
<string name="app_name">Ezarpen laguntzailea</string>
<string name="next">Hurrengoa</string>
<string name="skip">Saltatu</string>
<string name="start">Hasi</string>
<string name="ok">Ados</string>
<string name="loading">Une bat\u2026</string>
<string name="setup_complete">Ezarpena burutu da</string>
<string name="setup_welcome">Ongi etorri</string>
<string name="setup_wifi">Hautatu Wi-Fia</string>
<string name="setup_sim_missing">SIM txartela falta da</string>
<string name="setup_choose_data_sim">Aukeratu datuetarako SIM txartela</string>
<string name="setup_location">Kokaleku zerbitzuak</string>
<string name="setup_other">Bestelako zerbitzuak</string>
<string name="setup_datetime">Data eta ordua</string>
<string name="setup_current_date">Uneko data</string>
<string name="setup_current_time">Uneko ordua</string>
<string name="sim_missing_summary" product="tablet">Ez da SIM txartelik antzeman zure tabletan. SIM txartel bat sartzeko jarraitu zure gailuarekin zetozen argibideak.</string>
<string name="sim_missing_summary" product="default">Ez da SIM txartelik antzeman zure telefonoan. SIM txartel bat sartzeko jarraitu zure gailuarekin zetozen argibideak.</string>
<string name="choose_data_sim_summary" product="tablet">Zein SIM erabili nahi duzu datu mugikorretarako? Hautatutako SIM txartelean gastuak sor litzake zure tableta ezartzeko erabiliko baita.</string>
<string name="choose_data_sim_summary" product="default">Zein SIM erabili nahi duzu datu mugikorretarako? Hautatutako SIM txartelean gastuak sor litzake zure telefonoa ezartzeko erabiliko baita.</string>
<string name="date_time_summary">Ezarri zure ordu zonaldea eta doitu oraingo data beharrezkoa bada</string>
<string name="backup_data_summary">Aplikazio datuen, Wi-Fi pasahitzen, eta bestelako ezarpenen <b>babeskopia</b> egin Google zerbitzarietan</string>
<string name="other_services_summary">Zerbitzu hauek Google zure mesedetan lanean jartzen dute, edozein unetan piztu edo itzali ditzakezu. Datuak Google <xliff:g id="name" example="Privacy Policy">%s</xliff:g> arabera erabiliko dira.</string>
<string name="location_services_summary">Kokaleku zerbitzuek zure kokalekua bezalako datuak eskuratzea ahalbidetzen diete sistemako eta instalatutako aplikazioei. Adibidez, aplikazio batek zure kokalekua erabili lezake inguruko kafetegiak aurkitzeko.</string>
<string name="location_access_summary"><b>Baimena eskatu dizuten aplikazioei</b> zure kokaleku informazioa erabiltzea ahalbidetu. Uneko zein iraganeko kokalekuak barne.</string>
<string name="location_gps" product="tablet"><b>hobetu kokalekuaren zehaztasuna</b> aplikazioei tabletako GPS-a erabiltzea baimenduz.</string>
<string name="location_gps" product="default"><b>hobetu kokalekuaren zehaztasuna</b> aplikazioei telefonoaren GPS-a erabiltzea baimenduz.</string>
<string name="location_network"><b>Erabili Wi-Fia</b> aplikazioei zure kokalekua zehazten laguntzeko.</string>
<string name="location_network_telephony"><b>Erabili Wi-Fi eta sare mugikorrak</b> aplikazioei zure kokalekua zehazten laguntzeko.</string>
<string name="location_network_gms"><b>Erabili Google kokaleku zerbitzua</b> aplikazioei zure kokalekua zehazten laguntzeko. Honek Google-i kokaleku informazio anonimoa bidaltzea dakar, aplikaziorik erabiltzen ez duzunean ere.</string>
<string name="setup_mobile_data">Piztu datu mugikorrak</string>
<string name="setup_mobile_data_no_service">Zerbitzurik ez</string>
<string name="setup_mobile_data_emergency_only">Larrialdi deiak besterik ez</string>
<string name="enable_mobile_data_summary">Datu mugikorrak erabili nahi dituzu ezarpenean? Datu mugikorrak pizteak gastuak ekar ditzake.</string>
<string name="no">Ez</string>
<string name="yes">Bai</string>
<string name="data_sim_name">SIM <xliff:g id="sub">%d</xliff:g> - <xliff:g id="name">%s</xliff:g></string>
<string name="emergency_call">Larrialdi deia</string>
<string name="setup_services">Cyanogen ezaugarriak</string>
<string name="services_explanation" product="tablet">Zerbitzu hauek tabletaren gaitasunak hobetzeko zure mesedetan egiten dute lan. Datuak Cyanogen <xliff:g id="name" example="Privacy Policy">%s</xliff:g> arabera erabiliko dira.</string>
<string name="services_explanation" product="default">Zerbitzu hauek telefonoaren gaitasunak hobetzeko zure mesedetan egiten dute lan. Datuak Cyanogen <xliff:g id="name" example="Privacy Policy">%s</xliff:g> arabera erabiliko dira.</string>
<string name="services_privacy_policy">Pribatutasun politika</string>
<string name="services_help_improve_cm">Lagundu <xliff:g id="name" example="CyanogenMod">%s</xliff:g> hobetzen</string>
<string name="services_metrics_label"><xliff:g id="name" example="Help improve CyanogenMod">%s</xliff:g> automatikoki diagnostiko eta erabilera datuak bidaliz Cyanogeni. Informazio hau ezin da erabili zu identifikatzeko eta bateriaren iraupena, aplikazioen errendimendua, eta <xliff:g id="name" example="CyanogenMod">%s</xliff:g> ezaugarri berrietan lanean dabilen taldearentzat lagungarria da.</string>
<string name="services_apply_theme">Aplikatu <xliff:g id="name" example="Material">%s</xliff:g> gaia</string>
<string name="services_apply_theme_label"><xliff:g id="name" example="Apply the Material theme">%s</xliff:g> aparteko ikono, horma-paper eta letra-tipoak gaitzen.</string>
<string name="services_os_nav_keys_label"><b>Erabili pantailako nabigazio teklak</b> hardware teklen ordez.</string>
<string name="services_use_secure_sms">Erabili SMS segurua</string>
<string name="services_secure_sms_label"><xliff:g id="name" example="Use secure SMS">%s</xliff:g> <xliff:g id="name" example="CyanogenMod">%s</xliff:g> gailu batean SMS segurua erabiltzen duten beste erabiltzaileekin dituzun SMS elkarrizketak zifratzeko.</string>
<string name="setup_unlock">Desblokeatu</string>
<string name="setup_device_locked">Erabiltzaileak gailu hau blokeatu du.</string>
<string name="setup_require_cyanogen_label"><b>Eskatu zure Cyanogen OS kontuaren pasahitza</b> gailua erabiltzeko lantegiko jatorrizko ezarpenetara berrezarri eta gero.</string>
<string name="setup_device_locked_instructions"><i>Ezaugarri hau gaitu edo ezgaitzeko zoaz hona: Ezarpenak &gt; Segurtasuna</i></string>
<string name="setup_warning_skip_anyway">Cyanogen OS kontu bat gabe, ezin izango duzu:\n\nZure telefonoa ikono horma-irudi eta gai berriekin pertsonalizatu Gai aplikazioan\n\n.Telefonoa aurkitu eta ezabatu galtzen baduzu</string>
</resources>

58
res/values-fa/strings.xml Normal file
View File

@@ -0,0 +1,58 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<!--
Copyright (C) 2013-2015 The CyanogenMod 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.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name">آموزش راه‌اندازی</string>
<string name="next">بعدی</string>
<string name="skip">رد شدن</string>
<string name="start">شروع</string>
<string name="ok">بسیارخب</string>
<string name="loading">یک لحظه لطفا\u2026</string>
<string name="setup_complete">راه‌اندازی کامل شد</string>
<string name="setup_welcome">خوش آمدید</string>
<string name="setup_wifi">انتخاب وای‌فای</string>
<string name="setup_sim_missing">سیم کارت موجود نیست</string>
<string name="setup_choose_data_sim">سیم‌کارتی را برای داده انتخاب کنید</string>
<string name="setup_location">خدمات مکان</string>
<string name="setup_other">سایر خدمات</string>
<string name="setup_datetime">تاریخ &amp; زمان</string>
<string name="setup_current_date">تاریخ کنونی</string>
<string name="setup_current_time">زمان کنونی</string>
<string name="sim_missing_summary" product="tablet">سیم کارتی در تبلت شما یافت نشد. برای قرار دادن یک سیم کارت، دستورالعمل همراه دستگاه خود را بخوانید.</string>
<string name="sim_missing_summary" product="default">سیم کارتی در گوشی شما یافت نشد. برای قرار دادن یک سیم کارت، دستورالعمل همراه دستگاه خود را بخوانید.</string>
<string name="choose_data_sim_summary" product="tablet">از کدام سیم‌کارت برای داده همراه می‌خواهید استفاده کنید؟ سیم‌کارت انتخابی ممکن است هزینه‌های شبکه ایجاد کند چرا که برای راه‌اندازی تبلت شما استفاده می‌شود.</string>
<string name="choose_data_sim_summary" product="default">از کدام سیم‌کارت برای داده همراه می خواهید استفاده کنید؟ سیم‌کارت انتخابی ممکن است هزینه‌های شبکه ایجاد کند چرا که برای راه‌اندازی گوشی شما استفاده می‌شود.</string>
<string name="date_time_summary">منطقه ی زمانی و تاریخ فعلی را در صورت نیاز تنظیم کنید</string>
<string name="backup_data_summary">از داده‌های برنامه‌ها، گذرواژه وای‌فای و دیگر تنظیمات در سرورهای گوگل پشتیبان بگیر</string>
<string name="other_services_summary">این خدمات گوگل را برای شما تنظیم می‌کنند، و شما می‌توانید هر زمان آن‌ها را روشن یا خاموش کنید. داده مطابق با <xliff:g id="name" example="Privacy Policy">%s</xliff:g> گوگل استفاده خواهد شد.</string>
<string name="location_services_summary">سرویس‌های مکان به نقشه‌ها و برنامه‌های دیگر برای جمع‌آوری و استفاده از داده مانند محل تقریبی شما اجازه می‌دهند. به عنوان مثال، برنامه‌ای ممکن است از مکان تقریبی شما برای یافتن کافی‌شاپ‌های نزدیکتان استفاده کند.</string>
<string name="location_gps" product="tablet"><b>دقت مکان</b> را با اجازه دادن به برنامه‌ها به استفاده از جی‌پی‌اس در تبلتتان، بهبود بخشید.</string>
<string name="location_gps" product="default"><b>دقت مکان</b> را با اجازه دادن به برنامه‌ها به استفاده از جی‌پی‌اس در تلفنتان، بهبود بخشید.</string>
<string name="location_network">برای کمک به برنامه‌ها در تعیین مکانتان از وای‌فای استفاده کنید.</string>
<string name="location_network_telephony">برای کمک به برنامه‌ها در تعیین مکانتان از وای‌فای وشبکه‌های همراه استفاده کنید.</string>
<string name="setup_mobile_data">روشن کردن داده همراه</string>
<string name="setup_mobile_data_no_service">بدون سرویس</string>
<string name="setup_mobile_data_emergency_only">فقط تماس‌های اضطراری</string>
<string name="no">خیر</string>
<string name="yes">بله</string>
<string name="emergency_call">تماس اضطراری</string>
<string name="setup_services">ویژگی‌های سایانوژن</string>
<string name="services_privacy_policy">سیاست حفظ حریم خصوصی</string>
<string name="services_use_secure_sms">استفاده از پیامک امن</string>
<string name="setup_unlock">بازگشایی</string>
<string name="setup_device_locked">این دستگاه توسط کاربر قفل شده است.</string>
</resources>

View File

@@ -38,7 +38,7 @@
<string name="choose_data_sim_summary" product="default">Mitä SIM-korttia haluat käyttää mobiilitiedonsiirtoon? Mobiilidatan käyttö voi aiheuttaa tiedonsiirtokuluja.</string>
<string name="date_time_summary">Valitse aikavyöhyke ja määritä aika ja päivämäärä tarvittaessa</string>
<string name="backup_data_summary"><b>Varmuuskopioi</b> sovellusten tiedot, Wi-FI-salasanat ja muut asetukset Googlen palvelimille</string>
<string name="other_services_summary">Tämä ottaa Googlen palvelut käyttöön, ja voit ottaa ne käyttöön tai poistaa käytöstä milloin tahansa. Tietoja käytetään Googlen <xliff:g id="name" example="Privacy Policy">%s</xliff:g>n mukaisesti.</string>
<string name="other_services_summary">Tämä ottaa Googlen palvelut käyttöön, ja voit ottaa ne käyttöön tai poistaa käytöstä milloin tahansa. Tietoja käytetään Googlen <xliff:g id="name" example="Privacy Policy">%s</xliff:g> mukaisesti.</string>
<string name="location_services_summary">Sijaintipalvelut sallii järjestelmän ja muiden sovellusten kerätä ja käyttää tietoja kuten likimääräinen sijaintisi. Esimerkiksi sovellus voi paikantaa sinut ja etsiä lähistöllä olevia kahviloita.</string>
<string name="location_access_summary"><b>Salli sovellusten, jotka ovat kysyneet sinulta lupaa</b> käyttää sijaintitietojasi. Tämä saattaa sisältää nykyisen sijaintisi ja aiemmat sijaintisi.</string>
<string name="location_gps" product="tablet"><b>Paranna paikannuksen tarkkuutta</b> sallimalla sovellusten käyttää GPS:ää tabletissasi.</string>
@@ -65,4 +65,9 @@
<string name="services_os_nav_keys_label"><b>Käytä näytön navigointipalkkia</b> fyysisten näppäinten sijaan.</string>
<string name="services_use_secure_sms">Käytä turvallisia tekstiviestejä</string>
<string name="services_secure_sms_label"><xliff:g id="name" example="Use secure SMS">%s</xliff:g> salataksesi tekstiviestikeskustelut muiden turvallisia tekstiviestejä ja <xliff:g id="name" example="CyanogenMod">%s</xliff:g>ia käyttävien henkilöiden kanssa.</string>
<string name="setup_unlock">Avaa lukitus</string>
<string name="setup_device_locked">Käyttäjä on lukinnut laitteen.</string>
<string name="setup_require_cyanogen_label"><b>Vaadi Cyanogen OS-tilin salasana</b> käyttääksesi laitetta myös tehdasasetusten palautuksen jälkeen.</string>
<string name="setup_device_locked_instructions"><i>Poistaaksesi tämän ominaisuuden käytöstä/ottaaksesi käyttöön, mene Asetukset &gt; Suojaus</i></string>
<string name="setup_warning_skip_anyway">Ilman Cyanogen OS-tiliä, et voi:\n\nMukauttaa puhelintasi uusilla kuvakkeilla, taustakuvilla tai muilla käyttämällä Teemat-sovellusta\n\nPaikantaa tai etätyhjentää kadonnutta puhelintasi</string>
</resources>

View File

@@ -65,4 +65,9 @@
<string name="services_os_nav_keys_label"><b>Utilisation des touches de navigation de l\'écran</b> au lieu des touches physiques.</string>
<string name="services_use_secure_sms">Utiliser les SMS sécurisés</string>
<string name="services_secure_sms_label"><xliff:g id="name" example="Use secure SMS">%s</xliff:g> pour crypter les conversations SMS avec les autres utilisateurs utilisant les SMS sécurisés sur leurs appareils <xliff:g id="name" example="CyanogenMod">%s</xliff:g>.</string>
<string name="setup_unlock">Déverrouiller</string>
<string name="setup_device_locked">Cet appareil a été verrouillé par l\'utilisateur.</string>
<string name="setup_require_cyanogen_label"><b>Nécessite votre mot de passe du compte Cyanogen OS</b> afin d\'utiliser votre appareil même après une réinitialisation d\'usine.</string>
<string name="setup_device_locked_instructions"><i>Pour activer/désactiver cette fonction, veuillez vous rendre dans Paramètres &gt; Sécurité</i></string>
<string name="setup_warning_skip_anyway">Sans un compte Cyanogen OS, vous ne serez pas en mesure de :\n\nPersonnaliser votre téléphone avec de nouvelles icônes, fonds d\'écran et plus encore dans l\'application Thèmes\n\nLocaliser ou réinitialiser votre téléphone à distance s\'il est perdu</string>
</resources>

68
res/values-hi/strings.xml Normal file
View File

@@ -0,0 +1,68 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<!--
Copyright (C) 2013-2015 The CyanogenMod 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.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name">सेटअप विज़ार्ड</string>
<string name="next">अगला</string>
<string name="skip">छोड़ें</string>
<string name="start">शुरू करें</string>
<string name="ok">ठीक है</string>
<string name="loading">एक सेकंड\u2026</string>
<string name="setup_complete">सेटअप पूरा हो गया</string>
<string name="setup_welcome">स्वागत</string>
<string name="setup_wifi">वाई-फाई चुनें</string>
<string name="setup_sim_missing">सिम कार्ड नहीं है</string>
<string name="setup_choose_data_sim">डेटा के लिए सिम कार्ड चुनें</string>
<string name="setup_location">स्थान सेवाएँ</string>
<string name="setup_other">अन्य सेवाएँ</string>
<string name="setup_datetime">तिथि और समय</string>
<string name="setup_current_date">वर्तमान तिथि</string>
<string name="setup_current_time">वर्तमान समय</string>
<string name="sim_missing_summary" product="tablet">आपके टैब्लेट के लिए सिम कार्ड पहचाना नहीं जा सका है। सिम कार्ड डालने के लिए अपने उपकरण के साथ आए निर्देशों को देखें।</string>
<string name="sim_missing_summary" product="default">आपके फ़ोन के लिए सिम कार्ड पहचाना नहीं जा सका है। सिम कार्ड डालने के लिए अपने उपकरण के साथ आए निर्देशों को देखें।</string>
<string name="choose_data_sim_summary" product="tablet">डेटा के लिए आप किस सिम का उपयोग करना चाहते हैं? चयनित सिम कार्ड के लिए नेटवर्क शुल्क लग सकते हैं क्योंकि उसका उपयोग आपके टैब्लेट को सेटअप करने के लिए किया जाएगा।</string>
<string name="choose_data_sim_summary" product="default">डेटा के लिए आप किस सिम का उपयोग करना चाहते हैं? चयनित सिम कार्ड के लिए नेटवर्क शुल्क लग सकते हैं क्योंकि उसका उपयोग आपके फ़ोन को सेटअप करने के लिए किया जाएगा।</string>
<string name="date_time_summary">अपना समय क्षेत्र सेटअप करें और यदि आवश्यक हो तो वर्तमान तिथि और समय को समायोजित करें</string>
<string name="backup_data_summary">ऐप डेटा, वाई-फ़ाई पासवर्ड, और अन्य सेटिंगि का गूगल सर्वरों में <b>बैकअप लें</b></string>
<string name="other_services_summary">इन सेवाओं के लिए गूगल से लाभ लिया जाता है, और आप उन्हें किसी भी समय बंद या चालू कर सकते हैं। डेटा का उपयोग गूगल की <xliff:g id="name" example="गोपनीयता नीति">%s</xliff:g> के अनुसार किया जाएगा।</string>
<string name="location_services_summary">स्थान सेवाएँ आपके सिस्टम को तृतीय पक्षीय ऐपों का उपयोग करके डेटा संग्रहण करने और डेटा उपयोग करने देती हैं ताकि आपके स्थान का अंदाज़ा लगाया जा सके। उदाहरण के लिए, कोई ऐप आपके स्थान के अनुमान का उपयोग निकट के कॉफ़ी शॉपों का पता करने के लिए कर सकता है।</string>
<string name="location_access_summary"><b>जिन ऐपों ने आपसे अनुमति ले ली है</b> उन्हें आपके स्थान संबंधी जानकारी का उपयोग करने दें। इस जानकारी में आपका वर्तमान स्थान और पहले के स्थान शामिल हो सकते हैं।</string>
<string name="location_gps" product="tablet">अपने टैब्लेट में ऐपों को जीपीएस का उपयोग करने देकर <b>स्थान सटीकता बढ़ाएँ</b></string>
<string name="location_gps" product="default">अपने फ़ोन में ऐपों को जीपीएस का उपयोग करने देकर <b>स्थान सटीकता बढ़ाएँ</b></string>
<string name="location_network">अपने स्थान को निर्धारित करने में ऐपों की मदद करने के लिए <b>वाई-फ़ाई</b> का उपयोग करें।</string>
<string name="location_network_telephony">ऐपों को आपके स्थान का निर्धारण करने में मदद करने के लिए <b>वाई-फ़ाई और मोबाइल नेटवर्कों का उपयोग करें।</b></string>
<string name="location_network_gms">ऐपों को अपने स्थान का निर्धारण करने में मदद करने के लिए <b>गूगल की स्थान सेवा का उपयोग करें।</b> इसका मतलब है कि गूगल को गुमनाम स्थान डेटा तब भी भेजा जाएगा जब कोई भी ऐप नहीं चल रहा हो।</string>
<string name="setup_mobile_data">मोबाइल डेटा को चालू करें</string>
<string name="setup_mobile_data_no_service">कोई सेवा नहीं है</string>
<string name="setup_mobile_data_emergency_only">केवल आपातकालीन कॉल</string>
<string name="enable_mobile_data_summary">क्या आप सेटअप के दौरान मोबाइल डेटा का उपयोग करना चाहते हैं? मोबाइल डेटा को चालू करने पर डेटा शुल्क लग सकते हैं।</string>
<string name="no">नहीं</string>
<string name="yes">हाँ</string>
<string name="data_sim_name">सिम <xliff:g id="sub">%d</xliff:g> - <xliff:g id="name">%s</xliff:g></string>
<string name="emergency_call">आपातकालीन कॉल</string>
<string name="setup_services">सियानोजेन सुविधाएँ</string>
<string name="services_explanation" product="tablet">ये सेवाएँ आपके टैब्लेट की क्षमताओं को बढ़ाती हैं। डेटा का उपयोग सियानोजेन की <xliff:g id="name" example="Privacy Policy">%s</xliff:g> के अनुसार किया जाएगा।</string>
<string name="services_explanation" product="default">ये सेवाएँ आपके फ़ोन की क्षमताओं को बढ़ाती हैं। डेटा का उपयोग सियानोजेन की <xliff:g id="name" example="Privacy Policy">%s</xliff:g> के अनुसार किया जाएगा।</string>
<string name="services_privacy_policy">गोपनीयता नीति</string>
<string name="services_help_improve_cm"><xliff:g id="name" example="CyanogenMod">%s</xliff:g> को सुधारने में मदद करें</string>
<string name="services_metrics_label"><xliff:g id="name" example="Help improve CyanogenMod">%s</xliff:g> - सियानोजेन को अपने आप ही निदानात्मक और उपयोग से संबंधित डेटा भेजें। इस जानकारी का उपयोग आपको पहचानने के लिए नहीं हो सकता है। वह केवल बैटरी की आयु, ऐप के निष्पादन और नए <xliff:g id="name" example="CyanogenMod">%s</xliff:g> प्रकार्यों पर काम करने वाली टीमों की मदद के लिए है।</string>
<string name="services_apply_theme"><xliff:g id="name" example="Material">%s</xliff:g> थीम को लागू करें</string>
<string name="services_apply_theme_label"><xliff:g id="name" example="Apply the Material theme">%s</xliff:g> जो अद्वितीय आइकन, वॉलपेपर, और फ़ॉन्टों को सक्षम करता है।</string>
<string name="services_os_nav_keys_label">हार्डवेयर कुंजियों की जगह <b>स्क्रीन पर मौजूद नेविगेशन कुंजियों का उपयोग करें।</b></string>
<string name="services_use_secure_sms">सुरक्षित एसएमएस का उपयोग करें</string>
<string name="services_secure_sms_label"><xliff:g id="name" example="Use secure SMS">%s</xliff:g> का उपयोग करके सुरक्षित एसएमएस का उपयोग करने वाले अन्य उपयोगकर्ताओं के साथ के एसएमएस वार्तालापों को <xliff:g id="name" example="CyanogenMod">%s</xliff:g> उपकरण में कूटलेखित करें।</string>
</resources>

View File

@@ -65,4 +65,9 @@
<string name="services_os_nav_keys_label"><b>A képernyő navigációs gombjainak használata</b> a hardveres gombok helyett.</string>
<string name="services_use_secure_sms">Biztonságos SMS használata</string>
<string name="services_secure_sms_label"><xliff:g id="name" example="Use secure SMS">%s</xliff:g> az SMS beszélgetések titkosításához más olyan felhasználókkal, akik szintén biztonságos SMS-t használnak <xliff:g id="name" example="CyanogenMod">%s</xliff:g> eszközön.</string>
<string name="setup_unlock">Feloldás</string>
<string name="setup_device_locked">Ezt az eszközt a felhasználó zárolta.</string>
<string name="setup_require_cyanogen_label"><b>Cyanogen OS fiókjának jelszava szükséges</b> a készülék használatához, még a gyári beállítások visszaállítása után is.</string>
<string name="setup_device_locked_instructions"><i>A szolgáltatás ki/be kapcsolásához, kérjük menjen ide: Beállítások &gt; Biztonság</i></string>
<string name="setup_warning_skip_anyway">Cyanogen OS fiók nélkül nem fog hozzáférni a következőkhöz:\n\nTelefon testreszabása új ikonokkal, háttérképekkel és egyebekkel a Téma kezelő alkalmazáson keresztül\n\nTelefon helyének maghatározása, vagy távolról való törlése, ha elveszett</string>
</resources>

View File

@@ -21,15 +21,31 @@
<string name="skip">Lewati</string>
<string name="start">Mulai</string>
<string name="ok">OKE</string>
<string name="loading">Hanya sec\u2026</string>
<string name="setup_complete">Setup selesai</string>
<string name="setup_welcome">Selamat datang</string>
<string name="setup_wifi">Pilih Wi-Fi</string>
<string name="setup_sim_missing">SIM kartu hilang</string>
<string name="setup_choose_data_sim">Pilih SIM untuk Data</string>
<string name="setup_location">Layanan lokasi</string>
<string name="setup_other">Layanan lainnya</string>
<string name="setup_datetime">Tanggal &amp; waktu</string>
<string name="setup_current_date">Tanggal sekarang</string>
<string name="setup_current_time">Waktu saat ini</string>
<string name="sim_missing_summary" product="tablet">Kartu SIM tidak terdeteksi pada perangkat anda. Untuk menyisipkan kartu SIM, baca petunjuk yang datang dengan perangkat Anda.</string>
<string name="sim_missing_summary" product="default">Kartu SIM tidak terdeteksi pada perangkat anda. Untuk menyisipkan kartu SIM, baca petunjuk yang datang dengan perangkat Anda.</string>
<string name="choose_data_sim_summary" product="tablet">Manakah SIM yang ingin Anda gunakan untuk data? SIM yang dipilih dapat dikenakan biaya jaringan karena akan digunakan untuk menyiapkan perangkat Anda.</string>
<string name="choose_data_sim_summary" product="default">Manakah SIM yang ingin Anda gunakan untuk data? SIM yang dipilih dapat dikenakan biaya jaringan karena akan digunakan untuk menyiapkan perangkat Anda.</string>
<string name="date_time_summary">Atur zona waktu dan sesuaikan tanggal dan waktu jika diperlukan</string>
<string name="backup_data_summary"><b>Membuat cadangan</b> data aplikasi, password Wi-Fi, dan setelan lainnya ke server Google</string>
<string name="other_services_summary">Layanan ini menempatkan Google bekerja untuk Anda, dan Anda dapat mengubah mereka atau menonaktifkan setiap saat. Data akan digunakan sesuai dengan Google <xliff:g id="name" example="Privacy Policy">%s </xliff:g>.</string>
<string name="location_services_summary">Layanan lokasi mengizinkan Maps dan aplikasi lain untuk mengumpulkan dan menggunakan data seperti perkiraan lokasi Anda. Misalnya, Maps dapat menggunakan perkiraan lokasi Anda untuk menemukan toko-toko kopi terdekat.</string>
<string name="location_access_summary"><b>Izinkan aplikasi yang telah meminta izin Anda</b> menggunakan informasi lokasi Anda. Ini mungkin termasuk lokasi Anda saat ini dan lokasi terakhir.</string>
<string name="location_gps" product="tablet"><b>Meningkatkan akurasi lokasi</b> dengan mengizinkan aplikasi untuk menggunakan GPS pada ponsel Anda.</string>
<string name="location_gps" product="default"><b>Meningkatkan akurasi lokasi</b> dengan mengizinkan aplikasi untuk menggunakan GPS pada ponsel Anda.</string>
<string name="location_network"><b>Penggunaan Wi-Fi</b> untuk membantu aplikasi menentukan lokasi Anda.</string>
<string name="location_network_telephony"><b>Penggunaan Wi-Fi dan jaringan selular</b> untuk membantu aplikasi menentukan lokasi Anda.</string>
<string name="location_network_gms"><b>Gunakan layanan lokasi Google</b> untuk membantu aplikasi menentukan lokasi Anda. Ini berarti mengirimkan data lokasi anonim ke Google, bahkan ketika tidak ada aplikasi yang berjalan.</string>
<string name="setup_mobile_data">Aktifkan data seluler</string>
<string name="setup_mobile_data_no_service">Tidak ada layanan</string>
<string name="setup_mobile_data_emergency_only">Panggilan darurat saja</string>
@@ -37,5 +53,16 @@
<string name="no">Tidak</string>
<string name="yes">Ya</string>
<string name="data_sim_name">SIM <xliff:g id="sub">%d</xliff:g> - <xliff:g id="name">%s</xliff:g></string>
<string name="emergency_call">Panggilan darurat</string>
<string name="setup_services">Fitur sianogen</string>
<string name="services_explanation" product="tablet">Layanan ini bekerja untuk Anda untuk memperluas kemampuan perangkat tablet Anda. Data akan digunakan sesuai dengan sianogen di <xliff:g id="name" example="Privacy Policy">%s </xliff:g>.</string>
<string name="services_explanation" product="default">Layanan ini bekerja untuk Anda untuk memperluas kemampuan perangkat tablet Anda. Data akan digunakan sesuai dengan sianogen di <xliff:g id="name" example="Privacy Policy">%s </xliff:g>.</string>
<string name="services_privacy_policy">Kebijakan privasi</string>
<string name="services_help_improve_cm">Membantu meningkatkan <xliff:g id="name" example="CyanogenMod">%s </xliff:g></string>
<string name="services_metrics_label"><xliff:g id="name" example="Help improve CyanogenMod">%s </xliff:g> dengan secara otomatis mengirim data diagnostik dan penggunaan ke Cyanogen. Informasi ini tidak dapat digunakan untuk mengidentifikasi Anda dan meminjamkan tangan untuk tim bekerja pada hal-hal seperti baterai, app kinerja dan fitur <xliff:g id="name" example="CyanogenMod"> %s </xliff:g> baru.</string>
<string name="services_apply_theme">Terapkan tema <xliff:g id="name" example="Material">%s </xliff:g></string>
<string name="services_apply_theme_label"><xliff:g id="name" example="Apply the Material theme">%s </xliff:g> memungkinkan ikon unik, Wallpaper dan font.</string>
<string name="services_os_nav_keys_label"><b>Digunakan pada tombol navigasi layar</b> bukan tombol perangkat keras.</string>
<string name="services_use_secure_sms">Menggunakan SMS aman</string>
<string name="services_secure_sms_label"><xliff:g id="name" example="Use secure SMS">%s </xliff:g> untuk mengenkripsi percakapan SMS dengan pengguna lain menggunakan SMS aman pada perangkat <xliff:g id="name" example="CyanogenMod"> %s </xliff:g>.</string>
</resources>

View File

@@ -65,4 +65,9 @@
<string name="services_os_nav_keys_label"><b>Usa i pulsanti virtuali a schermo</b> invece di quelli fisici.</string>
<string name="services_use_secure_sms">Utilizza SMS sicuri</string>
<string name="services_secure_sms_label"><xliff:g id="name" example="Use secure SMS">%s</xliff:g> per criptare le conversazioni SMS con altri utenti che utilizzano gli SMS sicuri su un dispositivo <xliff:g id="name" example="CyanogenMod">%s</xliff:g>.</string>
<string name="setup_unlock">Sblocca</string>
<string name="setup_device_locked">Questo dispositivo è stato bloccato dall\'utente.</string>
<string name="setup_require_cyanogen_label"><b>È necessaria la password del tuo account Cyanogen OS</b> al fine di utilizzare il dispositivo anche dopo il ripristino di fabbrica.</string>
<string name="setup_device_locked_instructions"><i>Per attivare e disattivare questa funzione, vai in Impostazioni &gt; Sicurezza</i></string>
<string name="setup_warning_skip_anyway">\"Senza un account Cyanogen OS, non sarai in grado di:\n\nPersonalizzare il telefono con nuove icone, sfondi ed altro ancora dall\'app Temi\n\nLocalizzare o formattare da remoto il telefono se viene smarrito\"</string>
</resources>

View File

@@ -65,4 +65,9 @@
<string name="services_os_nav_keys_label"><b>השתמש במקשי הניווט במסך</b> במקום במקשים הפיזיים.</string>
<string name="services_use_secure_sms">השתמש ב-SMS מאובטח</string>
<string name="services_secure_sms_label"><xliff:g id="name" example="Use secure SMS">%s</xliff:g> להצפנת שיחות SMS עם משתמשים אחרים באמצעות SMS מאובטח במכשיר <xliff:g id="name" example="CyanogenMod">%s</xliff:g>.</string>
<string name="setup_unlock">שחרר</string>
<string name="setup_device_locked">מכשיר זה ננעל על-ידי המשתמש.</string>
<string name="setup_require_cyanogen_label"><b>נדרשת סיסמת חשבון מערכת Cyanogen</b> על מנת להשתמש במכשירך, אפילו לאחר איפוס המכשיר להגדרות היצרן.</string>
<string name="setup_device_locked_instructions"><i>כדי להפעיל/לכבות אפשרות זו, אנא גש להגדרות &gt; אבטחה</i></string>
<string name="setup_warning_skip_anyway">בלי חשבון מערכת Cyanogen, לא ניתן יהיה:\n\nלהתאים את מכשירך עם סמלים, רקעים ועוד ביישום ערכות העיצוב\n\nלאתר או למחוק מרחוק את מכשירך במקרה של אובדן</string>
</resources>

View File

@@ -65,4 +65,10 @@
<string name="services_os_nav_keys_label">하드웨어 키 대신 <b>화면 상의 내비게이션 키</b>를 사용합니다.</string>
<string name="services_use_secure_sms">보안 SMS 사용</string>
<string name="services_secure_sms_label"><xliff:g id="name" example="보안 SMS를 사용">%s</xliff:g>하여 <xliff:g id="name" example="CyanogenMod">%s</xliff:g>기기에서 보안 SMS를 사용하는 다른 사용자와의 SMS 대화를 암호화함.</string>
<string name="setup_unlock">잠금 해제</string>
<string name="setup_device_locked">이 기기는 사용자에 의해 잠겨 있습니다.</string>
<string name="setup_require_cyanogen_label">공장 초기화 후에도 기기를 사용하려면 <b>Cyanogen OS 계정의 비밀번호가 필요합니다</b> .</string>
<string name="setup_device_locked_instructions"><i>이 기능을 켜거나 끄려면, 설정 &gt; 보안으로 이동하세요</i></string>
<string name="setup_warning_skip_anyway">Cyanogen OS 계정이 없을 경우 사용할 수 없는 기능:\n\n
테마 앱을 통한 새로운 아이콘, 배경화면 등의 적용\n\n기기를 잃어버렸을 경우 기기 찾기 또는 원격 개인정보 삭제</string>
</resources>

51
res/values-ku/strings.xml Normal file
View File

@@ -0,0 +1,51 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<!--
Copyright (C) 2013-2015 The CyanogenMod 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.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name">دامەزراندنی گەزەک</string>
<string name="next">دواتر</string>
<string name="skip">تێپەڕاندن</string>
<string name="start">دەستپێکردن</string>
<string name="ok">باشه‌</string>
<string name="setup_complete">دامه‌زراندن ته‌واوبوو</string>
<string name="setup_welcome">بە خێربێيت</string>
<string name="setup_wifi">هەڵبژاردنی Wi-Fi</string>
<string name="setup_sim_missing">سیمکارتی تیا نیە</string>
<string name="setup_choose_data_sim">سیمکارتێک هەڵبژێرە بۆ داتا</string>
<string name="setup_location">خزمەتگوزاری ناوچەی</string>
<string name="setup_other">خزمەتگوزاری تر</string>
<string name="setup_datetime">ڕۆژ &amp; کات</string>
<string name="setup_current_date">ڕۆژی هه‌نووکه‌</string>
<string name="setup_current_time">کاتی هه‌نووکه‌</string>
<string name="sim_missing_summary" product="tablet">سیمکارت لە ناو تاتەبژمێر نیە. بۆ تێکردنی سیمکارت ، تێبینیەکان بخوێنەرەوە کە لەگەڵ ئامێرەکەت هاتوە.</string>
<string name="sim_missing_summary" product="default">سیمکارت لە ناو تەلەفۆنەکەت نیە. بۆ تێکردنی سیمکارت ، تێبینیەکان بخوێنەرەوە کە لەگەڵ ئامێرەکەت هاتوە.</string>
<string name="choose_data_sim_summary" product="tablet">کام سیمکارتت ئەوێ کار بکات لەسەر داتا? سیمکارتی دیاریکراو لەوانەیە پارەکەت ببات بە هەمان شێوەش لەسەر تاتەژمێرەکەت دادەمەزرێت.</string>
<string name="choose_data_sim_summary" product="default">کام سیمکارتت ئەوێ کار بکات لەسەر داتا? سیمکارتی دیاریکراو لەوانەیە پارەکەت ببات بە هەمان شێوەش لەسەر تەلەفۆنەکەت دادەمەزرێت.</string>
<string name="date_time_summary">کاتی ناوچەی دامەزرێنە و داتای ئێستا لە کاتی خۆی دیاری بکە ئەگەر پێویستی کرد</string>
<string name="backup_data_summary"><b>پاڵپشتی</b> داتای بەرنامە, Wi-Fi تێپەڕەوشە, و ڕێکخستنی تری خزمەتگووزاری گووگڵ</string>
<string name="other_services_summary">ئەم خزمەتگوزاریە گووگڵ دەخاتە یارمەتی تۆوە، و ئەتوانی بیانکەیتەوە یان بیانکوژێنیتەوە لە هەرکاتێکدا.
داتاکە لەگەڵ گووگڵ بەکارئەهێنرێت <xliff:g id="name" example="Privacy Policy">%s</xliff:g>.</string>
<string name="setup_mobile_data_no_service">خزمەتگوزاری نیە</string>
<string name="setup_mobile_data_emergency_only">ته‌نها په‌یوه‌ندی كتوپڕ</string>
<string name="no">نەخێر</string>
<string name="yes">بەڵێ</string>
<string name="data_sim_name">سیم <xliff:g id="sub">%d</xliff:g> - <xliff:g id="name">%s</xliff:g></string>
<string name="emergency_call">تەلەفۆنی فریاگوزاری</string>
<string name="setup_services">شێوازی ساینەجن</string>
<string name="services_privacy_policy">یاسای تایبەتی</string>
<string name="setup_unlock">کردنەوە</string>
</resources>

View File

@@ -58,4 +58,7 @@
<string name="services_help_improve_cm">Hëllef <xliff:g id="name" example="CyanogenMod">%s</xliff:g> ze verbesseren</string>
<string name="services_apply_theme">Den Design <xliff:g id="name" example="Material">%s</xliff:g> applizéieren</string>
<string name="services_use_secure_sms">Sécher SMSe benotzen</string>
<string name="setup_unlock">Entspären</string>
<string name="setup_device_locked">Dësen Apparat gouf duerch de Benotzer gespaart.</string>
<string name="setup_device_locked_instructions"><i>Fir dës Funktioun z\'aktivéieren/desaktivéieren, géi op Astellungen &gt; Sécherheet</i></string>
</resources>

View File

@@ -65,4 +65,9 @@
<string name="services_os_nav_keys_label"><b>Naudokite ekrane rodomus naršymo klavišus</b> vietoj aparatūrinių klavišų.</string>
<string name="services_use_secure_sms">Naudoti saugius SMS</string>
<string name="services_secure_sms_label"><xliff:g id="name" example="Use secure SMS">%s</xliff:g>, kad užšifruoti SMS pokalbius su kitais vartotojais, naudojančiais saugius SMS <xliff:g id="name" example="CyanogenMod">%s</xliff:g> įrenginyje.</string>
<string name="setup_unlock">Atrakinti</string>
<string name="setup_device_locked">Šis įrenginys buvo užrakintas naudotojo.</string>
<string name="setup_require_cyanogen_label"><b>Reikalauti jūsų „Cyanogen“ OS paskyros slaptažodžio</b> , kad būtų galima naudotis įrenginiu net ir po gamyklinių nustatymų iš naujo.</string>
<string name="setup_device_locked_instructions"><i>Kad išjungtumėte / įjungtumėte šią funkciją, eikite į Nustatymai &gt; Sauga</i></string>
<string name="setup_warning_skip_anyway">Be „Cyanogen“ OS paskyros, jums nebus suteikta galimybė:\n\nTemų programoje tinkinti savo telefoną su naujomis piktogramomis, ekrano fonais ir daugiau\n\nRasti arba nuotoliniu būdu ištrinti savo telefoną, jei jis yra prarastas</string>
</resources>

View File

@@ -65,4 +65,9 @@
<string name="services_os_nav_keys_label"><b>Bruk navigasjonstaster på skjermen </b> istedenfor hardware knapper.</string>
<string name="services_use_secure_sms">Bruk sikker SMS</string>
<string name="services_secure_sms_label"><xliff:g id="name" example="Use secure SMS">%s</xliff:g> for å kryptere SMS samtaler med andre som også bruker sikker SMS på en <xliff:g id="name" example="CyanogenMod">%s</xliff:g> enhet.</string>
<string name="setup_unlock">Lås opp</string>
<string name="setup_device_locked">Denne enheten er låst av brukeren.</string>
<string name="setup_require_cyanogen_label"><b>Krever passordet til Cyanogen OS konto</b> for å bruke enheten etter en fabrikkgjennoppretting.</string>
<string name="setup_device_locked_instructions"><i>For å slå denne funksjonen av/på, kan du gå til Innstillinger &gt; sikkerhet</i></string>
<string name="setup_warning_skip_anyway">Uten en Cyanogen OS konto, vil du ikke kunne: \n\nEndre på telefonen med nye ikoner, bakgrunnsbilder og mer i temaer-app\n\nLokalisere eller eksternt slette telefonen hvis du har mistet den</string>
</resources>

View File

@@ -65,4 +65,9 @@
<string name="services_os_nav_keys_label"><b>On-screen navigatieknoppen</b> gebruiken in plaats van de hardwareknoppen.</string>
<string name="services_use_secure_sms">Beveiligde sms-berichten gebruiken</string>
<string name="services_secure_sms_label"><xliff:g id="name" example="Use secure SMS">%s</xliff:g> om sms-gesprekken te versleutelen met anderen die ook beveiligde sms-berichten gebruiken op een <xliff:g id="name" example="CyanogenMod">%s</xliff:g>-apparaat.</string>
<string name="setup_unlock">Ontgrendelen</string>
<string name="setup_device_locked">Dit apparaat is vergrendeld door de gebruiker.</string>
<string name="setup_require_cyanogen_label"><b>Uw Cyanogen OS-accountwachtwoord vereisen</b> om het apparaat te gebruiken, zelfs na terugzetten naar fabrieksinstellingen.</string>
<string name="setup_device_locked_instructions"><i>Om deze functie in of uit te schakelen, ga naar Instellingen &gt; Beveiliging</i></string>
<string name="setup_warning_skip_anyway">Zonder een Cyanogen OS-account kunt u niet:\n\nUw telefoon personaliseren met nieuwe pictogrammen, achtergronden en meer in de app Thema\'s\n\nUw telefoon lokaliseren of op afstand wissen wanneer u deze kwijt raakt</string>
</resources>

View File

@@ -65,4 +65,9 @@
<string name="services_os_nav_keys_label"><b>Użyj ekranowych przycisków nawigacyjnych</b> zamiast klawiszy sprzętowych.</string>
<string name="services_use_secure_sms">Używaj bezpiecznych wiadomości SMS</string>
<string name="services_secure_sms_label"><xliff:g id="name" example="Use secure SMS">%s</xliff:g>, aby prowadzić szyfrowane konwersacje z innymi użytkownikami używając bezpiecznych SMS na urządzeniach z <xliff:g id="name" example="CyanogenMod">%s</xliff:g>.</string>
<string name="setup_unlock">Odblokuj</string>
<string name="setup_device_locked">To urządzenie zostało zablokowane przez użytkownika.</string>
<string name="setup_require_cyanogen_label"><b>Wymaga hasła twojego konta Cyanogen OS</b>, aby korzystać z urządzenia, nawet po przywróceniu ustawień fabrycznych.</string>
<string name="setup_device_locked_instructions"><i>Aby włączyć/wyłączyć tę funkcję, przejdź do Ustawienia &gt; Zabezpieczenia</i></string>
<string name="setup_warning_skip_anyway">Bez Konta Cyanogen OS nie będziesz w stanie:\n\nDostosować swojego telefonu wybierając nowe ikony, tapety oraz więcej innych opcji w aplikacji Motywy\n\nZlokalizować lub zdalnie wymazać pamięć telefonu w przypadku zgubienia</string>
</resources>

View File

@@ -65,4 +65,9 @@
<string name="services_os_nav_keys_label"><b>Use as teclas de navegação na tela</b> em vez de botões físicos.</string>
<string name="services_use_secure_sms">Usar SMS seguro</string>
<string name="services_secure_sms_label"><xliff:g id="name" example="Use secure SMS">%s</xliff:g> para criptografar conversas SMS com outros usuários que usam o SMS seguro em um dispositivo <xliff:g id="name" example="CyanogenMod">%s</xliff:g>.</string>
<string name="setup_unlock">Desbloquear</string>
<string name="setup_device_locked">Este dispositivo foi bloqueado pelo usuário.</string>
<string name="setup_require_cyanogen_label"><b>Exigir a senha da conta Cyanogen</b> para usar o dispositivo mesmo depois da restauração de fábrica.</string>
<string name="setup_device_locked_instructions"><i>Para ativar ou desativar este recurso, por favor vá para Configurações e Segurança</i></string>
<string name="setup_warning_skip_anyway">Sem uma conta Cyanogen, você não será capaz de:\n\nPersonalizar seu celular com novos ícones, papéis de parede e muito mais no app Temas\n\nLocalizar ou apagar remotamente o seu telefone se for perdido</string>
</resources>

View File

@@ -65,4 +65,9 @@
<string name="services_os_nav_keys_label"><b>Usar os botões de navegação no ecrã</b>, em vez dos botões do dispositivo.</string>
<string name="services_use_secure_sms">Usar SMS seguras</string>
<string name="services_secure_sms_label"><xliff:g id="name" example="Use secure SMS">%s</xliff:g> para encriptar conversações SMS com outros utilizadores que também utilizem este serviço num dispositivo com a <xliff:g id="name" example="CyanogenMod">%s</xliff:g></string>
<string name="setup_unlock">Desbloquear</string>
<string name="setup_device_locked">Este dispositivo foi bloqueado pelo utilizador.</string>
<string name="setup_require_cyanogen_label"><b>Exigir a palavra-passe da conta Cyanogen OS</b> para usar o dispositivo mesmo depois da reposição dos dados de fábrica.</string>
<string name="setup_device_locked_instructions"><i>Para ativar ou desativar este recurso, por favor vá a Definições &gt; Segurança</i></string>
<string name="setup_warning_skip_anyway">\"Sem uma conta Cyanogen OS, não será capaz de: \n\nPersonalizar o telefone com novos ícones, imagens de fundo e muito mais na aplicação de Temas\n\n Localizar ou apagar remotamente o seu telefone se estiver perdido</string>
</resources>

View File

@@ -65,4 +65,9 @@
<string name="services_os_nav_keys_label"><b>Использовать наэкранные навигационные кнопки</b> вместо аппаратных.</string>
<string name="services_use_secure_sms">Использовать безопасные SMS</string>
<string name="services_secure_sms_label"><xliff:g id="name" example="Use secure SMS">%s</xliff:g> для шифрования SMS с другими пользователями, использующими безопасные SMS на устройстве <xliff:g id="name" example="CyanogenMod">%s</xliff:g>.</string>
<string name="setup_unlock">Разблокировать</string>
<string name="setup_device_locked">Устройство было заблокировано пользователем.</string>
<string name="setup_require_cyanogen_label"><b>Требовать пароль аккаунта ОС Cyanogen</b> для использования устройства даже после удаления всех данных.</string>
<string name="setup_device_locked_instructions"><i>Чтобы включить или отключить эту функцию, перейдите в меню «Настройки &gt; Безопасность»</i></string>
<string name="setup_warning_skip_anyway">Без учетной записи Cyanogen вы не сможете:\n\nПерсонализировать телефон новыми обоями, иконками и другими компонентами в приложении «Темы»\n\nНайти или удалённо сбросить настройки на телефоне в случае его потери</string>
</resources>

View File

@@ -65,4 +65,9 @@
<string name="services_os_nav_keys_label"><b>Používajte navigačné tlačidlá na obrazovke</b> namiesto hardvérových tlačidiel.</string>
<string name="services_use_secure_sms">Používajte zabezpečené SMS</string>
<string name="services_secure_sms_label"><xliff:g id="name" example="Use secure SMS">%s</xliff:g> pre šifrovanie SMS konverzácií s ostatnými používateľmi prostredníctvom zabezpečených SMS na zariadení s <xliff:g id="name" example="CyanogenMod">%s</xliff:g>.</string>
<string name="setup_unlock">Odomknúť</string>
<string name="setup_device_locked">Toto zariadenie bolo uzamknuté používateľom.</string>
<string name="setup_require_cyanogen_label"><b>Vyžadovať heslo vášho účtu Cyanogen OS</b> na použitie vášho zariadenia aj po obnove továrenských nastavení.</string>
<string name="setup_device_locked_instructions"><i>Na vypnutie/zapnutie tejto funkcie prejdite do Nastavenia &gt; Zabezpečenie</i></string>
<string name="setup_warning_skip_anyway">Bez účtu Cyanogen OS nebudete môcť:\n\nPrispôsobiť si telefón s novými ikonami, tapetami a ďalším obsahom z aplikácie Témy\n\nNájsť alebo vzdialene vymazať váš telefón po jeho strate</string>
</resources>

View File

@@ -65,4 +65,9 @@
<string name="services_os_nav_keys_label"><b>Користите навигационе тастере на екрану</b> уместо хардверских тастера.</string>
<string name="services_use_secure_sms">Користи безбедан SMS</string>
<string name="services_secure_sms_label"><xliff:g id="name" example="Use secure SMS">%s</xliff:g> да заштитиш SMS преписку са другим корисницима користећи безбедан SMS на <xliff:g id="name" example="CyanogenMod">%s</xliff:g> уређају.</string>
<string name="setup_unlock">Откључај</string>
<string name="setup_device_locked">Овај уређај је закључао корисник.</string>
<string name="setup_require_cyanogen_label"><b>Захтева твоју лозинку Cyanogen налога</b> да би користио свој уређај чак и после ресетовања на фабрички.</string>
<string name="setup_device_locked_instructions"><i>Да би искључио/укључио ово, иди на Подешавања &gt; Приватност</i></string>
<string name="setup_warning_skip_anyway">Без Cyanogen налога, нећеш моћи да:\n\nПрилагодиш телефон са новим иконама, тапетама и осталим у апликацији тема\n\nЛоцираш или обришеш телефон на даљину ако га изгубиш</string>
</resources>

73
res/values-th/strings.xml Normal file
View File

@@ -0,0 +1,73 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<!--
Copyright (C) 2013-2015 The CyanogenMod 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.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name">เปิดใช้ครั้งแรก</string>
<string name="next">ถัดไป</string>
<string name="skip">ข้าม</string>
<string name="start">เริ่มต้น</string>
<string name="ok">ตกลง</string>
<string name="loading">รอสักครู่\u2026</string>
<string name="setup_complete">การตั้งค่าเรียบร้อย</string>
<string name="setup_welcome">ยินดีต้อนรับ</string>
<string name="setup_wifi">เลือก Wi-Fi</string>
<string name="setup_sim_missing">ไม่พบซิมการ์ด</string>
<string name="setup_choose_data_sim">เลือกซิมการ์ดสำหรับข้อมูล</string>
<string name="setup_location">บริการตำแหน่ง</string>
<string name="setup_other">บริการอื่นๆ</string>
<string name="setup_datetime">วัน &amp; เวลา</string>
<string name="setup_current_date">วันที่ปัจจุบัน</string>
<string name="setup_current_time">เวลาปัจจุบัน</string>
<string name="sim_missing_summary" product="tablet">ไม่ได้พบกับซิมการ์ดในแท็บเล็ตของคุณ กรุณาใส่ซิมการ์ดโดยอ่านคำแนะนำที่มาพร้อมกับอุปกรณ์ของคุณ</string>
<string name="sim_missing_summary" product="default">ไม่ได้พบกับซิมการ์ดในโทรศัพท์ของคุณ กรุณาใส่ซิมการ์ดโดยอ่านคำแนะนำที่มาพร้อมกับอุปกรณ์ของคุณ</string>
<string name="choose_data_sim_summary" product="tablet">กรุณาเลือกซิมการ์ดที่คุณต้องการใช้ข้อมูล การกระทำนี้อาจมีค่าบริการ เพื่อใช้เครือข่ายค่าในการตั้งค่าแท็บเล็ตของคุณ</string>
<string name="choose_data_sim_summary" product="default">กรุณาเลือกซิมการ์ดที่คุณต้องการใช้ข้อมูล การกระทำนี้อาจมีค่าบริการ เพื่อใช้เครือข่ายค่าในการตั้งค่าโทรศัพท์ของคุณ</string>
<string name="date_time_summary">ตั้งค่าเขตเวลาและวันที่ของคุณหากคุณต้องการ</string>
<string name="backup_data_summary"><b>สำรอง</b>ข้อมูลแอป,รหัสผ่าน Wi-Fi และการตั้งค่าอื่นๆไปยังเซิฟเวอร์ของ Google</string>
<string name="other_services_summary">บริการเหล่านี้ Google จะเป็นผู้ให้บริการของคุณ คุณสามารถเปิดหรือปิดมันได้เสมอเมื่อคุณต้องการ โดยข้อมูลจะถูกใช้ตาม <xliff:g id="name" example="Privacy Policy">%s</xliff:g> ของ Google</string>
<string name="location_services_summary">บริการตำแหน่งจะอนุญาตให้ระบบและแอปอื่นๆสามารถเก็บข้อมูลที่อยู่ของคุณได้ เช่นแอปอาจจะใช้ข้อมูลที่อยู่ของคุณเพื่อหาร้านกาแฟที่อยู่ใกล้คุณมากที่สุด</string>
<string name="location_access_summary"><b>อนุญาตให้แอปขอสิทธิ์</b> การใช้ข้อมูลตำแหน่งของคุณ ซึ่งอาจรวมถึงสถานปัจจุบันและสถานที่ผ่านมา</string>
<string name="location_gps" product="tablet"><b>เพิ่มความแม่นยำ</b> ของที่ตั้งโดยการอนุญาตให้แอปใช้ GPS บนแท็บเล็ตของคุณ</string>
<string name="location_gps" product="default"><b>เพิ่มความแม่นยำ</b> ของที่ตั้งโดยการอนุญาตให้แอปใช้ GPS บนโทรศัพท์ของคุณ</string>
<string name="location_network"><b>ใช้ Wi-Fi</b> เพื่อช่วยแอปหาตำแหน่งของคุณได้ง่ายขึ้น</string>
<string name="location_network_telephony"><b>ใช้ Wi-Fi และเครือข่ายมือถือ</b> เพื่อช่วยให้แอปหาตำแหน่งของคุณได้ง่ายขึ้น</string>
<string name="location_network_gms"><b>ใช้บริการตำแหน่งของ Google</b> เพื่อช่วยให้แอปของคุณหาตำแหน่งได้ดีขึ้น นี่หมายรวมถึงการส่งข้อมูลที่อยู่แบบไม่ระบุตัวตนให้ Google แม้ไม่มีแอปใดๆทำงานอยู่เลย</string>
<string name="setup_mobile_data">เปิดใช้งานข้อมูลมือถือ</string>
<string name="setup_mobile_data_no_service">ไม่มีบริการ</string>
<string name="setup_mobile_data_emergency_only">โทรฉุกเฉินเท่านั้น</string>
<string name="enable_mobile_data_summary">คุณต้องการใช้ข้อมูลมือถือขณะทำการตั้งค่าไหม? การกระทำนี้อาจมีค่าใช้จ่ายจากผู้ให้บริการ</string>
<string name="no">ไม่</string>
<string name="yes">ใช่</string>
<string name="data_sim_name">ซิม <xliff:g id="sub">%d</xliff:g> - <xliff:g id="name">%s</xliff:g></string>
<string name="emergency_call">โทรฉุกเฉิน</string>
<string name="setup_services">ความสามารถของ Cyanogen</string>
<string name="services_explanation" product="tablet">บริการเหล่านี้คุณสามารถเพิ่มความสามารถของแท็บเล็ตของคุณได้ ข้อมูลจะถูกใช้ตาม Cyanogen <xliff:g id="name" example="Privacy Policy">%s</xliff:g></string>
<string name="services_explanation" product="default">บริการเหล่านี้คุณสามารถเพิ่มความสามารถของโทรศัพท์ของคุณได้ ข้อมูลจะถูกใช้ตาม Cyanogen <xliff:g id="name" example="Privacy Policy">%s</xliff:g></string>
<string name="services_privacy_policy">นโยบายความเป็นส่วนตัว</string>
<string name="services_help_improve_cm">ช่วยปรับปรุง <xliff:g id="name" example="CyanogenMod">%s</xliff:g></string>
<string name="services_metrics_label"><xliff:g id="name" example="Help improve CyanogenMod">%s</xliff:g> โดยการส่งปัญหาและข้อมูลการใช้งานไปยัง Cyanogen อัตโนมัติ โดยการกระทำนี้ จะไม่มีข้อมูลที่สามารถระบุตัวตนคุณได้ส่งไปด้วย โดยการกระทำนี้จะช่วยให้ทีมงานของพวกเราสามารถพัฒนาประสิทธิภาพ,ยืดอายุการใช้งาน รวมถึงสร้างความสามารถใหม่ของ <xliff:g id="name" example="CyanogenMod">%s</xliff:g></string>
<string name="services_apply_theme">ใช้งานรูปแบบ <xliff:g id="name" example="Material">%s</xliff:g></string>
<string name="services_apply_theme_label"><xliff:g id="name" example="Apply the Material theme">%s</xliff:g> กำลังเปิดใช้งาน ไอคอน,ภาพพื้นหลัง และฟ้อนต์</string>
<string name="services_os_nav_keys_label"><b>ใช้แถบนำทาง</b> แทนการใช้ปุ่มบนอุปกรณ์</string>
<string name="services_use_secure_sms">ใช้ SMS แบบเข้ารหัส</string>
<string name="services_secure_sms_label"><xliff:g id="name" example="Use secure SMS">%s</xliff:g> จะเข้ารหัสข้อความเมื่อส่งข้อความไปหาผู้ที่ใช้อุปกรณ์ที่ติดตั้ง <xliff:g id="name" example="CyanogenMod">%s</xliff:g></string>
<string name="setup_unlock">ปลดล็อก</string>
<string name="setup_device_locked">อุปกรณ์นี้ถูกล็อคโดยผู้ใช้</string>
<string name="setup_require_cyanogen_label"><b>กรุณาใส่รหัสผ่านบัญชี Cyanogen OS</b> แม้ว่าจะทำการคืนค่าโรงงานไปแล้วก็ตาม.</string>
<string name="setup_device_locked_instructions"><i>เพื่อปิด/เปิดความสามารถนี้ กรุณาไปที่ การตั้งค่า &gt; ความปลอดภัย</i></string>
<string name="setup_warning_skip_anyway">ถ้าหากไม่มีบัญชี Cyanogen OS แล้วคุณจะไม่สามารถ:\n\n ปรับเปลี่ยน ไอคอน,ภาพหน้าจอและอื่นๆผ่านแอปชุดรูปแบบ\n\nค้นหาและลบข้อมูลระยะไกลหากอุปกรณ์สูญหาย</string>
</resources>

View File

@@ -65,4 +65,9 @@
<string name="services_os_nav_keys_label"><b>Donanımsal tuşlar yerine ekran üstü dolaşım tuşlarını kullanın.</b></string>
<string name="services_use_secure_sms">Şifreli SMS kullanın</string>
<string name="services_secure_sms_label"><xliff:g id="name" example="CyanogenMod">%s</xliff:g> cihazında diğer kullanıcılarla olan sohbetlerinizi şifrelemek için <xliff:g id="name" example="Use secure SMS">%s</xliff:g>.</string>
<string name="setup_unlock">Kilidi kaldır</string>
<string name="setup_device_locked">Bu cihaz kullanıcı tarafından kilitlenmiş.</string>
<string name="setup_require_cyanogen_label"><b>Cyanogen İS hesap şifresi gerekir</b> ki cihazınızı fabrika ayarlarına sıfırladıktan sonra kullanabilin.</string>
<string name="setup_device_locked_instructions"><i>Bu özelliği açıp kapatmak için, lütfen Ayarlar &gt; Güvenlik bölümüne gidin</i></string>
<string name="setup_warning_skip_anyway">Cyanogen İS Hesabı olmadan, aşağıdakiler mümkün olmayacaktır:\n\nTelefonunuzu yeni simgeler, duvar kağıtları ve Temalar uygulamasındaki daha fazla ögeyle özelleştirmek\n\nTelefonunuzu kaybedince uzaktan konumunu bulmak veya içeriğini silmek</string>
</resources>

View File

@@ -66,4 +66,9 @@
</b> замість апаратних.</string>
<string name="services_use_secure_sms">Використовувати безпечні SMS</string>
<string name="services_secure_sms_label"><xliff:g id="name" example="Use secure SMS">%s </xliff:g> для шифрування SMS розмови з іншими користувачами за допомогою безпечної SMS на <xliff:g id="name" example="CyanogenMod"> %s </xliff:g> пристрої.</string>
<string name="setup_unlock">Розблокувати</string>
<string name="setup_device_locked">Цей пристрій заблоковано користувачем.</string>
<string name="setup_require_cyanogen_label"><b>Необхідний пароль Cyanogen OS</b> для використання Вашого пристрою навіть після скидання до заводських налаштувань.</string>
<string name="setup_device_locked_instructions"><i>Щоб увімкнути/вимкнути цю функцію, будь ласка, перейдіть до Налаштування &gt; Безпека</i></string>
<string name="setup_warning_skip_anyway">Без облікового запису ОС Cyanogen, Ви не зможете:\n\nДодати індивідуальності телефону за допомогою нових іконок, шпалер тощо у програмі \"Теми\",\n\nвиявити місцезнаходження пристрою чи віддалено стерти дані, у випадку його втрати</string>
</resources>

View File

@@ -65,4 +65,9 @@
<string name="services_os_nav_keys_label"><b>使用虚拟导航键</b>替代实体按键。</string>
<string name="services_use_secure_sms">使用安全短信</string>
<string name="services_secure_sms_label">在您的 <xliff:g id="name" example="CyanogenMod">%s</xliff:g> 设备上<xliff:g id="name" example="Use secure SMS">%s</xliff:g>来加密您与其他用户的短信会话。</string>
<string name="setup_unlock">解锁</string>
<string name="setup_device_locked">此设备的持有者锁定了该设备。</string>
<string name="setup_require_cyanogen_label">即使您的设备被恢复出厂设置,<b>也要求输入您的 Cyanogen OS 帐户密码</b></string>
<string name="setup_device_locked_instructions"><i>要开启或关闭此功能,请进入设置 &gt; 安全</i></string>
<string name="setup_warning_skip_anyway">“如果不创建 Cyanogen OS 帐户,您将:\n\n无法使用主题应用来使用新的图标、壁纸和其他内容来自定义您的手机\n\n无法定位或擦除遗失的手机”</string>
</resources>

View File

@@ -29,4 +29,5 @@
<color name="header_bg">@color/primary</color>
<color name="header_condensed_bg">@color/primary_dark</color>
<color name="button_bar_background">#e4e7e8</color>
<color name="fingerprint_setup_text_color">#356bc4</color>
</resources>

View File

@@ -20,4 +20,5 @@
<!-- The type of sim image to display.
0=default sim image, 1=sim on side, 2=sim on back-->
<integer name="sim_image_type">0</integer>
<bool name="check_custom_theme_by_default">true</bool>
</resources>

View File

@@ -79,4 +79,19 @@
<string name="services_os_nav_keys_label"><b>Use on screen navigation keys</b> instead of hardware keys.</string>
<string name="services_use_secure_sms">Use secure SMS</string>
<string name="services_secure_sms_label"><xliff:g id="name" example="Use secure SMS">%s</xliff:g> to encrypt SMS conversations with other users using secure SMS on a <xliff:g id="name" example="CyanogenMod">%s</xliff:g> device.</string>
<string name="setup_unlock">Unlock</string>
<string name="setup_device_locked">This device has been locked by the user.</string>
<string name="setup_require_cyanogen_label"><b>Require your Cyanogen OS account password</b> in order to use your device even after a factory reset.</string>
<string name="setup_device_locked_instructions"><i>To turn this feature off/on, please go to Settings > Security</i></string>
<string name="setup_warning_skip_anyway">Without a Cyanogen OS Account, you won\'t be able to:\n\nCustomize your phone with new icons, wallpapers and more in the Themes app\n\nLocate or remotely erase your phone if it\'s lost</string>
<!-- Fingerprint setup -->
<string name="settings_fingerprint_setup_title">Select backup screen lock type</string>
<string name="settings_fingerprint_setup_details">How would you like to lock your screen?</string>
<string name="fingerprint_setup_title">Fingerprint setup</string>
<string name="fingerprint_setup_summary">To use your fingerprint sensor to unlock your screen or confirm purchases, you\'ll need to:</string>
<string name="fingerprint_setup_backup_lock_method">Setup a backup screen lock method</string>
<string name="fingerprint_setup_add_fingerprint">Add your fingerprint</string>
<string name="fingerprint_setup_screen_lock_setup">Setup screen lock</string>
</resources>

View File

@@ -34,9 +34,13 @@ public class SetupWizardApp extends Application {
public static final String ACTION_FINISHED = "com.cyanogenmod.setupwizard.SETUP_FINISHED";
public static final String ACCOUNT_TYPE_CYANOGEN = "com.cyanogen";
public static final String ACCOUNT_TYPE_GMS = "com.google";
public static final String ACTION_SETUP_WIFI = "com.android.net.wifi.SETUP_WIFI_NETWORK";
public static final String ACTION_VIEW_LEGAL = "cyanogenmod.intent.action.LEGALESE";
public static final String ACTION_SETUP_FINGERPRINT = "com.android.settings.SETUP_FINGERPRINT";
public static final String EXTRA_FIRST_RUN = "firstRun";
public static final String EXTRA_ALLOW_SKIP = "allowSkip";
@@ -45,8 +49,12 @@ public class SetupWizardApp extends Application {
public static final String EXTRA_USE_IMMERSIVE = "useImmersiveMode";
public static final String EXTRA_THEME = "theme";
public static final String EXTRA_MATERIAL_LIGHT = "material_light";
public static final String EXTRA_CKSOP = "cksOp";
public static final String EXTRA_LOGIN_FOR_KILL_SWITCH = "authCks";
public static final String EXTRA_TITLE = "title";
public static final String EXTRA_DETAILS = "details";
private static final String KEY_DETECT_CAPTIVE_PORTAL = "captive_portal_detection_enabled";
public static final String KEY_DETECT_CAPTIVE_PORTAL = "captive_portal_detection_enabled";
private static final String[] THEME_PACKAGES = {
"org.cyanogenmod.theme.chooser",
@@ -60,11 +68,15 @@ public class SetupWizardApp extends Application {
public static final int REQUEST_CODE_SETUP_CYANOGEN= 3;
public static final int REQUEST_CODE_SETUP_CAPTIVE_PORTAL= 4;
public static final int REQUEST_CODE_SETUP_BLUETOOTH= 5;
public static final int REQUEST_CODE_UNLOCK = 6;
public static final int REQUEST_CODE_SETUP_FINGERPRINT = 7;
public static final int RADIO_READY_TIMEOUT = 10 * 1000;
private boolean mIsRadioReady = false;
private boolean mIsAuthorized = false;
private StatusBarManager mStatusBarManager;
private final Handler mHandler = new Handler();
@@ -87,6 +99,9 @@ public class SetupWizardApp extends Application {
if (!isOwner
|| Settings.Secure.getInt(getContentResolver(),
Settings.Secure.USER_SETUP_COMPLETE) == 1) {
Settings.Global.putInt(getContentResolver(), Settings.Global.DEVICE_PROVISIONED, 1);
Settings.Secure.putInt(getContentResolver(),
Settings.Secure.USER_SETUP_COMPLETE, 1);
SetupWizardUtils.disableGMSSetupWizard(this);
SetupWizardUtils.disableSetupWizard(this);
if (!isOwner) {
@@ -113,6 +128,14 @@ public class SetupWizardApp extends Application {
mIsRadioReady = radioReady;
}
public boolean isAuthorized() {
return mIsAuthorized;
}
public void setIsAuthorized(boolean isAuthorized) {
mIsAuthorized = isAuthorized;
}
public void disableStatusBar() {
mStatusBarManager.disable(StatusBarManager.DISABLE_EXPAND | StatusBarManager.DISABLE_NOTIFICATION_ALERTS
| StatusBarManager.DISABLE_NOTIFICATION_TICKER | StatusBarManager.DISABLE_RECENT | StatusBarManager.DISABLE_HOME

View File

@@ -156,6 +156,7 @@ public class SetupStats {
public static final String VALUE = "value";
public static final String SLOT = "slot";
public static final String TOTAL_TIME = "total_time";
public static final String FINGERPRINT_SETUP = "fingerprint_setup";
}
}

View File

@@ -20,8 +20,11 @@ import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.ConnectivityManager;
import android.os.SystemProperties;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
import android.util.Log;
import com.android.internal.telephony.TelephonyIntents;
import com.cyanogenmod.setupwizard.util.SetupWizardUtils;
@@ -33,6 +36,8 @@ public class CMSetupWizardData extends AbstractSetupData {
private boolean mTimeSet = false;
private boolean mTimeZoneSet = false;
private boolean mMobileDataEnabled = SystemProperties
.getBoolean("ro.com.android.mobiledata", true);
public CMSetupWizardData(Context context) {
super(context);
@@ -45,6 +50,9 @@ public class CMSetupWizardData extends AbstractSetupData {
pages.add(new BluetoothSetupPage(mContext, this));
}
pages.add(new WelcomePage(mContext, this));
if (SetupWizardUtils.hasFingerprint(mContext) && SetupWizardUtils.isOwner()) {
pages.add(new FingerprintSetupPage(mContext, this));
}
pages.add(new WifiSetupPage(mContext, this));
if (SetupWizardUtils.hasTelephony(mContext)) {
pages.add(new SimCardMissingPage(mContext, this)
@@ -56,7 +64,7 @@ public class CMSetupWizardData extends AbstractSetupData {
}
if (SetupWizardUtils.hasTelephony(mContext)) {
pages.add(new MobileDataPage(mContext, this)
.setHidden(!isSimInserted() || SetupWizardUtils.isMobileDataEnabled(mContext)));
.setHidden(!isSimInserted() || mMobileDataEnabled));
}
if (SetupWizardUtils.hasGMS(mContext)) {
pages.add(new GmsAccountPage(mContext, this).setHidden(true));
@@ -82,6 +90,7 @@ public class CMSetupWizardData extends AbstractSetupData {
.equals(ConnectivityManager.CONNECTIVITY_ACTION) ||
intent.getAction()
.equals(ConnectivityManager.CONNECTIVITY_ACTION_IMMEDIATE)) {
showHideMobileDataPage();
showHideAccountPages();
} else if (intent.getAction()
.equals(TelephonyIntents.ACTION_ANY_DATA_CONNECTION_STATE_CHANGED)) {
@@ -127,7 +136,7 @@ public class CMSetupWizardData extends AbstractSetupData {
ChooseDataSimPage chooseDataSimPage =
(ChooseDataSimPage) getPage(ChooseDataSimPage.TAG);
if (chooseDataSimPage != null) {
chooseDataSimPage.setHidden(!isSimInserted());
chooseDataSimPage.setHidden(!allSimsInserted());
}
}
@@ -135,7 +144,7 @@ public class CMSetupWizardData extends AbstractSetupData {
MobileDataPage mobileDataPage =
(MobileDataPage) getPage(MobileDataPage.TAG);
if (mobileDataPage != null) {
mobileDataPage.setHidden(!isSimInserted());
mobileDataPage.setHidden(!isSimInserted() || mMobileDataEnabled);
}
}
@@ -166,7 +175,13 @@ public class CMSetupWizardData extends AbstractSetupData {
TelephonyManager tm = TelephonyManager.from(mContext);
int simSlotCount = tm.getSimCount();
for (int i = 0; i < simSlotCount; i++) {
int state = tm.getSimState(i);
int state;
try {
state = tm.getSimState(i);
} catch (IllegalStateException ise) {
Log.e(TAG, "Unable to get sim state from TelephonyManager");
continue;
}
if (state != TelephonyManager.SIM_STATE_ABSENT
&& state != TelephonyManager.SIM_STATE_UNKNOWN) {
return true;
@@ -185,7 +200,7 @@ public class CMSetupWizardData extends AbstractSetupData {
return false;
}
}
return true;
return simSlotCount == SubscriptionManager.from(mContext).getActiveSubscriptionInfoCount();
}
}

View File

@@ -122,11 +122,11 @@ public class ChooseDataSimPage extends SetupPage {
mPageView = (ViewGroup)mRootView.findViewById(R.id.page_view);
mProgressBar = (ProgressBar) mRootView.findViewById(R.id.progress);
List<SubscriptionInfo> subInfoRecords = mSubscriptionManager.getActiveSubscriptionInfoList();
int simCount = subInfoRecords.size();
int simCount =
subInfoRecords != null ? subInfoRecords.size() : 0;
mSubInfoRecords = new SparseArray<SubscriptionInfo>(simCount);
for (int i = 0; i < simCount; i++) {
SubscriptionInfo subInfoRecord = subInfoRecords.get(i);
mSubInfoRecords.put(subInfoRecord.getSubscriptionId(), subInfoRecord);
for (SubscriptionInfo subInfoRecord : subInfoRecords) {
mSubInfoRecords.put(subInfoRecord.getSimSlotIndex(), subInfoRecord);
}
mNameViews = new SparseArray<TextView>(simCount);
mSignalViews = new SparseArray<ImageView>(simCount);
@@ -170,7 +170,7 @@ public class ChooseDataSimPage extends SetupPage {
mIsAttached = true;
mPhone = (TelephonyManager)getActivity().getSystemService(Context.TELEPHONY_SERVICE);
for (int i = 0; i < mPhoneStateListeners.size(); i++) {
mPhone.listen(mPhoneStateListeners.get(i),
mPhone.listen(mPhoneStateListeners.valueAt(i),
PhoneStateListener.LISTEN_SERVICE_STATE
| PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);
}
@@ -189,7 +189,7 @@ public class ChooseDataSimPage extends SetupPage {
super.onPause();
mIsAttached = false;
for (int i = 0; i < mPhoneStateListeners.size(); i++) {
mPhone.listen(mPhoneStateListeners.get(i), PhoneStateListener.LISTEN_NONE);
mPhone.listen(mPhoneStateListeners.valueAt(i), PhoneStateListener.LISTEN_NONE);
}
}
@@ -262,7 +262,7 @@ public class ChooseDataSimPage extends SetupPage {
private void updateCarrierText(SubscriptionInfo subInfoRecord) {
if (mIsAttached) {
String name = mPhone.getNetworkOperatorName(subInfoRecord.getSimSlotIndex());
String name = mPhone.getNetworkOperatorName(subInfoRecord.getSubscriptionId());
ServiceState serviceState = mServiceStates.get(subInfoRecord.getSimSlotIndex());
if (TextUtils.isEmpty(name)) {
if (serviceState != null && serviceState.isEmergencyOnly()) {

View File

@@ -101,6 +101,9 @@ public class CyanogenServicesPage extends SetupPage {
resultCode == Activity.RESULT_OK ? "success" : "skipped");
if (SetupWizardUtils.accountExists(mContext,
mContext.getString(R.string.cm_account_type))) {
if (SetupWizardUtils.isDeviceLocked()) {
((SetupWizardApp) mContext.getApplicationContext()).setIsAuthorized(true);
}
setHidden(true);
}
getCallbacks().onNextPage();

View File

@@ -18,12 +18,17 @@ package com.cyanogenmod.setupwizard.setup;
import android.app.Fragment;
import android.app.FragmentManager;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.ThemeUtils;
import android.content.res.ThemeConfig;
import android.content.res.ThemeManager;
import android.hardware.CmHardwareManager;
import android.net.Uri;
import android.os.Bundle;
import android.os.RemoteException;
import android.preference.PreferenceManager;
@@ -39,9 +44,11 @@ import android.view.IWindowManager;
import android.view.View;
import android.view.WindowManagerGlobal;
import android.widget.CheckBox;
import android.widget.ImageView;
import android.widget.TextView;
import com.cyanogenmod.setupwizard.R;
import com.cyanogenmod.setupwizard.SetupWizardApp;
import com.cyanogenmod.setupwizard.cmstats.SetupStats;
import com.cyanogenmod.setupwizard.ui.SetupPageFragment;
import com.cyanogenmod.setupwizard.ui.WebViewDialogFragment;
@@ -63,6 +70,8 @@ public class CyanogenSettingsPage extends SetupPage {
public static final String SETTING_METRICS = "settings.cyanogen.allow_metrics";
public static final String PRIVACY_POLICY_URI = "https://cyngn.com/oobe-legal?hideHeader=1";
private static final String WHISPERPUSH_PACKAGE = "org.whispersystems.whisperpush";
public CyanogenSettingsPage(Context context, SetupDataCallbacks callbacks) {
super(context, callbacks);
}
@@ -197,6 +206,14 @@ public class CyanogenSettingsPage extends SetupPage {
private static boolean hideWhisperPush(Context context) {
final int playServicesAvailable = GooglePlayServicesUtil
.isGooglePlayServicesAvailable(context);
try {
PackageInfo pi = context.getPackageManager().getPackageInfo(WHISPERPUSH_PACKAGE, 0);
if (pi == null) {
return true;
}
} catch (PackageManager.NameNotFoundException e) {
return true;
}
return playServicesAvailable != ConnectionResult.SUCCESS
|| !SetupWizardUtils.hasTelephony(context)
|| (SetupWizardUtils.hasTelephony(context) &&
@@ -209,6 +226,9 @@ public class CyanogenSettingsPage extends SetupPage {
public static class CyanogenSettingsFragment extends SetupPageFragment {
private View mKillSwitchView;
private TextView mKillSwitchTitle;
private ImageView mKillSwitchStatus;
private View mMetricsRow;
private View mDefaultThemeRow;
private View mNavKeysRow;
@@ -267,9 +287,13 @@ public class CyanogenSettingsPage extends SetupPage {
ClickableSpan clickableSpan = new ClickableSpan() {
@Override
public void onClick(View textView) {
WebViewDialogFragment.newInstance()
.setUri(PRIVACY_POLICY_URI)
.show(getActivity().getFragmentManager(), WebViewDialogFragment.TAG);
final Intent intent = new Intent(SetupWizardApp.ACTION_VIEW_LEGAL);
intent.setData(Uri.parse(PRIVACY_POLICY_URI));
try {
getActivity().startActivity(intent);
} catch (Exception e) {
Log.e(TAG, "Unable to start activity " + intent.toString(), e);
}
}
};
ss.setSpan(clickableSpan,
@@ -279,6 +303,21 @@ public class CyanogenSettingsPage extends SetupPage {
privacyPolicy.setMovementMethod(LinkMovementMethod.getInstance());
privacyPolicy.setText(ss);
mKillSwitchView = mRootView.findViewById(R.id.killswitch);
mKillSwitchTitle = (TextView)mRootView.findViewById(R.id.killswitch_title);
mKillSwitchStatus = (ImageView)mRootView.findViewById(R.id.killswitch_check);
if (hideKillSwitch()) {
mKillSwitchView.setVisibility(View.GONE);
} else {
if (SetupWizardUtils.isDeviceLocked()) {
mKillSwitchTitle.setEnabled(true);
mKillSwitchStatus.setImageResource(R.drawable.tick);
} else {
mKillSwitchTitle.setEnabled(false);
mKillSwitchStatus.setImageResource(R.drawable.cross);
}
}
mMetricsRow = mRootView.findViewById(R.id.metrics);
mMetricsRow.setOnClickListener(mMetricsClickListener);
String metricsHelpImproveCM =
@@ -374,9 +413,13 @@ public class CyanogenSettingsPage extends SetupPage {
private void updateThemeOption() {
if (!mHideThemeRow) {
final Bundle myPageBundle = mPage.getData();
boolean themesChecked =
!myPageBundle.containsKey(KEY_APPLY_DEFAULT_THEME) || myPageBundle
.getBoolean(KEY_APPLY_DEFAULT_THEME);
boolean themesChecked;
if (myPageBundle.containsKey(KEY_APPLY_DEFAULT_THEME)) {
themesChecked = myPageBundle.getBoolean(KEY_APPLY_DEFAULT_THEME);
} else {
themesChecked = getActivity().getResources().getBoolean(
R.bool.check_custom_theme_by_default);
}
mDefaultTheme.setChecked(themesChecked);
myPageBundle.putBoolean(KEY_APPLY_DEFAULT_THEME, themesChecked);
}
@@ -406,5 +449,9 @@ public class CyanogenSettingsPage extends SetupPage {
}
}
private static boolean hideKillSwitch() {
return !SetupWizardUtils.hasKillSwitch();
}
}
}

View File

@@ -0,0 +1,123 @@
/*
* Copyright (C) 2013 The CyanogenMod 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 com.cyanogenmod.setupwizard.setup;
import android.app.Activity;
import android.app.ActivityOptions;
import android.app.Fragment;
import android.app.FragmentManager;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import com.android.internal.widget.LockPatternUtils;
import com.cyanogenmod.setupwizard.R;
import com.cyanogenmod.setupwizard.SetupWizardApp;
import com.cyanogenmod.setupwizard.cmstats.SetupStats;
import com.cyanogenmod.setupwizard.ui.SetupPageFragment;
public class FingerprintSetupPage extends SetupPage {
private static final String TAG = "FingerprintSetupPage";
public FingerprintSetupPage(Context context, SetupDataCallbacks callbacks) {
super(context, callbacks);
}
@Override
public Fragment getFragment(FragmentManager fragmentManager, int action) {
Fragment fragment = fragmentManager.findFragmentByTag(getKey());
if (fragment == null) {
Bundle args = new Bundle();
args.putString(Page.KEY_PAGE_ARGUMENT, getKey());
args.putInt(Page.KEY_PAGE_ACTION, action);
fragment = new FingerprintSetupFragment();
fragment.setArguments(args);
}
return fragment;
}
@Override
public int getNextButtonTitleResId() {
return R.string.skip;
}
@Override
public String getKey() {
return TAG;
}
@Override
public int getTitleResId() {
return R.string.fingerprint_setup_title;
}
@Override
public boolean onActivityResult(int requestCode, int resultCode, Intent data) {
if (SetupWizardApp.REQUEST_CODE_SETUP_FINGERPRINT == requestCode) {
if (resultCode == Activity.RESULT_OK) {
getCallbacks().onNextPage();
}
}
return true;
}
public static class FingerprintSetupFragment extends SetupPageFragment {
private TextView mSetupFingerprint;
@Override
protected void initializePage() {
mSetupFingerprint = (TextView) mRootView.findViewById(R.id.setup_fingerprint);
mSetupFingerprint.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
launchFingerprintSetup();
}
});
}
@Override
protected int getLayoutResource() {
return R.layout.setup_fingerprint;
}
private void launchFingerprintSetup() {
Intent intent = new Intent(SetupWizardApp.ACTION_SETUP_FINGERPRINT);
intent.putExtra(SetupWizardApp.EXTRA_FIRST_RUN, true);
intent.putExtra(SetupWizardApp.EXTRA_ALLOW_SKIP, true);
intent.putExtra(SetupWizardApp.EXTRA_USE_IMMERSIVE, true);
intent.putExtra(SetupWizardApp.EXTRA_THEME, SetupWizardApp.EXTRA_MATERIAL_LIGHT);
intent.putExtra(SetupWizardApp.EXTRA_AUTO_FINISH, false);
intent.putExtra(LockPatternUtils.LOCKSCREEN_FINGERPRINT_FALLBACK, true);
intent.putExtra(SetupWizardApp.EXTRA_TITLE,
getString(R.string.settings_fingerprint_setup_title));
intent.putExtra(SetupWizardApp.EXTRA_DETAILS,
getString(R.string.settings_fingerprint_setup_details));
ActivityOptions options =
ActivityOptions.makeCustomAnimation(getActivity(),
android.R.anim.fade_in,
android.R.anim.fade_out);
SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
SetupStats.Action.EXTERNAL_PAGE_LAUNCH,
SetupStats.Label.PAGE, SetupStats.Label.FINGERPRINT_SETUP);
startActivityForResult(intent, SetupWizardApp.REQUEST_CODE_SETUP_FINGERPRINT,
options.toBundle());
}
}
}

View File

@@ -0,0 +1,29 @@
package com.cyanogenmod.setupwizard.setup;
import android.app.StatusBarManager;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.provider.Settings;
import com.cyanogenmod.setupwizard.SetupWizardApp;
import com.cyanogenmod.setupwizard.util.SetupWizardUtils;
public class FinishSetupReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (SetupWizardUtils.isDeviceLocked()) {
return;
}
Settings.Global.putInt(context.getContentResolver(), Settings.Global.DEVICE_PROVISIONED, 1);
Settings.Secure.putInt(context.getContentResolver(),
Settings.Secure.USER_SETUP_COMPLETE, 1);
((StatusBarManager)context.getSystemService(Context.STATUS_BAR_SERVICE)).disable(
StatusBarManager.DISABLE_NONE);
Settings.Global.putInt(context.getContentResolver(),
SetupWizardApp.KEY_DETECT_CAPTIVE_PORTAL, 1);
SetupWizardUtils.disableGMSSetupWizard(context);
SetupWizardUtils.disableSetupWizard(context);
}
}

View File

@@ -19,11 +19,14 @@ package com.cyanogenmod.setupwizard.setup;
import android.app.Fragment;
import android.app.FragmentManager;
import android.app.backup.IBackupManager;
import android.content.ComponentName;
import android.content.ContentQueryMap;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.location.LocationManager;
import android.net.Uri;
import android.os.Bundle;
import android.os.RemoteException;
import android.os.ServiceManager;
@@ -32,6 +35,7 @@ import android.text.SpannableString;
import android.text.Spanned;
import android.text.method.LinkMovementMethod;
import android.text.style.ClickableSpan;
import android.util.Log;
import android.view.View;
import android.widget.CheckBox;
import android.widget.TextView;
@@ -151,10 +155,13 @@ public class OtherSettingsPage extends SetupPage {
ClickableSpan clickableSpan = new ClickableSpan() {
@Override
public void onClick(View textView) {
WebViewDialogFragment.newInstance()
.setUri(PRIVACY_POLICY_URI)
.show(getActivity().getFragmentManager(),
WebViewDialogFragment.TAG);
final Intent intent = new Intent(SetupWizardApp.ACTION_VIEW_LEGAL);
intent.setData(Uri.parse(PRIVACY_POLICY_URI));
try {
getActivity().startActivity(intent);
} catch (Exception e) {
Log.e(TAG, "Unable to start activity " + intent.toString());
}
}
};
ss.setSpan(clickableSpan,

View File

@@ -16,6 +16,10 @@
package com.cyanogenmod.setupwizard.setup;
import android.accounts.AccountManager;
import android.accounts.AccountManagerCallback;
import android.accounts.AccountManagerFuture;
import android.app.Activity;
import android.app.ActivityOptions;
import android.app.Fragment;
import android.app.FragmentManager;
@@ -25,14 +29,17 @@ import android.content.res.Configuration;
import android.content.res.Resources;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.NumberPicker;
import com.cyanogenmod.setupwizard.R;
import com.cyanogenmod.setupwizard.SetupWizardApp;
import com.cyanogenmod.setupwizard.cmstats.SetupStats;
import com.cyanogenmod.setupwizard.ui.LocalePicker;
import com.cyanogenmod.setupwizard.ui.SetupPageFragment;
import com.cyanogenmod.setupwizard.util.SetupWizardUtils;
import java.util.Locale;
@@ -42,21 +49,23 @@ public class WelcomePage extends SetupPage {
private static final String ACTION_EMERGENCY_DIAL = "com.android.phone.EmergencyDialer.DIAL";
private WelcomeFragment mWelcomeFragment;
public WelcomePage(Context context, SetupDataCallbacks callbacks) {
super(context, callbacks);
}
@Override
public Fragment getFragment(FragmentManager fragmentManager, int action) {
Fragment fragment = fragmentManager.findFragmentByTag(getKey());
if (fragment == null) {
mWelcomeFragment = (WelcomeFragment)fragmentManager.findFragmentByTag(getKey());
if (mWelcomeFragment == null) {
Bundle args = new Bundle();
args.putString(Page.KEY_PAGE_ARGUMENT, getKey());
args.putInt(Page.KEY_PAGE_ACTION, action);
fragment = new WelcomeFragment();
fragment.setArguments(args);
mWelcomeFragment = new WelcomeFragment();
mWelcomeFragment.setArguments(args);
}
return fragment;
return mWelcomeFragment;
}
@Override
@@ -64,6 +73,16 @@ public class WelcomePage extends SetupPage {
return R.string.setup_welcome;
}
@Override
public boolean doNextAction() {
if (isLocked()) {
confirmCyanogenCredentials(mWelcomeFragment);
return true;
} else {
return super.doNextAction();
}
}
@Override
public boolean doPreviousAction() {
Intent intent = new Intent(ACTION_EMERGENCY_DIAL);
@@ -81,16 +100,66 @@ public class WelcomePage extends SetupPage {
return true;
}
@Override
public boolean onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == SetupWizardApp.REQUEST_CODE_UNLOCK) {
if (resultCode == Activity.RESULT_OK) {
((SetupWizardApp) mContext.getApplicationContext()).setIsAuthorized(true);
getCallbacks().onNextPage();
return true;
}
}
return false;
}
@Override
public String getKey() {
return TAG;
}
@Override
public int getNextButtonTitleResId() {
if (isLocked()) {
return R.string.setup_unlock;
} else {
return R.string.next;
}
}
@Override
public int getPrevButtonTitleResId() {
return R.string.emergency_call;
}
private void confirmCyanogenCredentials(final Fragment fragment) {
AccountManager accountManager = AccountManager.get(mContext);
accountManager.editProperties(SetupWizardApp.ACCOUNT_TYPE_CYANOGEN, null,
new AccountManagerCallback<Bundle>() {
public void run(AccountManagerFuture<Bundle> f) {
try {
Bundle b = f.getResult();
Intent i = b.getParcelable(AccountManager.KEY_INTENT);
i.putExtra(SetupWizardApp.EXTRA_FIRST_RUN, true);
i.putExtra(SetupWizardApp.EXTRA_SHOW_BUTTON_BAR, true);
i.putExtra(SetupWizardApp.EXTRA_USE_IMMERSIVE, true);
i.putExtra(SetupWizardApp.EXTRA_LOGIN_FOR_KILL_SWITCH, true);
fragment.startActivityForResult(i,
SetupWizardApp.REQUEST_CODE_UNLOCK);
} catch (Throwable t) {
Log.e(getKey(), "confirmCredentials failed", t);
}
}
}, null);
}
private boolean isLocked() {
boolean isAuthorized = ((SetupWizardApp) mContext.getApplicationContext()).isAuthorized();
if (SetupWizardUtils.isDeviceLocked()) {
return !isAuthorized;
}
return false;
}
public static class WelcomeFragment extends SetupPageFragment {
private ArrayAdapter<com.android.internal.app.LocalePicker.LocaleInfo> mLocaleAdapter;

View File

@@ -47,8 +47,8 @@ import java.util.List;
public class EnableAccessibilityController {
private static final int SPEAK_WARNING_DELAY_MILLIS = 2000;
private static final int ENABLE_ACCESSIBILITY_DELAY_MILLIS = 6000;
private static final int SPEAK_WARNING_DELAY_MILLIS = 5000;
private static final int ENABLE_ACCESSIBILITY_DELAY_MILLIS = 12000;
public static final int MESSAGE_SPEAK_WARNING = 1;
public static final int MESSAGE_SPEAK_ENABLE_CANCELED = 2;

View File

@@ -17,6 +17,7 @@
package com.cyanogenmod.setupwizard.util;
import android.accounts.AccountManager;
import android.app.AppGlobals;
import android.content.ComponentName;
import android.content.Context;
import android.content.pm.ComponentInfo;
@@ -25,6 +26,8 @@ import android.content.pm.PackageManager;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.wifi.WifiManager;
import android.os.IBinder;
import android.os.ServiceManager;
import android.os.UserHandle;
import android.os.UserManager;
import android.telephony.ServiceState;
@@ -32,6 +35,8 @@ import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
import android.util.Log;
import com.android.internal.os.IKillSwitchService;
import com.android.internal.widget.LockPatternUtils;
import com.cyanogenmod.setupwizard.SetupWizardApp;
import com.google.android.gms.common.ConnectionResult;
@@ -124,6 +129,36 @@ public class SetupWizardUtils {
return true;
}
public static boolean isDeviceLocked() {
IBinder b = ServiceManager.getService(Context.KILLSWITCH_SERVICE);
IKillSwitchService service = IKillSwitchService.Stub.asInterface(b);
if (service != null) {
try {
return service.isDeviceLocked();
} catch (Exception e) {
// silently fail
}
}
return false;
}
public static boolean hasKillSwitch() {
IBinder b = ServiceManager.getService(Context.KILLSWITCH_SERVICE);
IKillSwitchService service = IKillSwitchService.Stub.asInterface(b);
if (service != null) {
try {
return service.hasKillSwitch();
} catch (Exception e) {
// silently fail
}
}
return false;
}
public static boolean hasAuthorized() {
return ((SetupWizardApp) AppGlobals.getInitialApplication()).isAuthorized();
}
public static boolean isRadioReady(Context context, ServiceState state) {
final SetupWizardApp setupWizardApp = (SetupWizardApp)context.getApplicationContext();
if (setupWizardApp.isRadioReady()) {
@@ -158,6 +193,8 @@ public class SetupWizardUtils {
public static void disableSetupWizard(Context context) {
disableComponent(context, context.getPackageName(),
"com.cyanogenmod.setupwizard.ui.SetupWizardActivity");
disableComponent(context, context.getPackageName(),
"com.cyanogenmod.setupwizard.setup.FinishSetupReceiver");
}
public static void disableGMSSetupWizard(Context context) {
@@ -231,6 +268,11 @@ public class SetupWizardUtils {
return packageManager.hasSystemFeature(PackageManager.FEATURE_LEANBACK);
}
public static boolean hasFingerprint(Context context) {
LockPatternUtils lockPatternUtils = new LockPatternUtils(context);
return lockPatternUtils.isFingerprintInstalled(context);
}
public static final ComponentName mTvwifisettingsActivity =
new ComponentName("com.android.tv.settings",
"com.android.tv.settings.connectivity.setup.WifiSetupActivity");

View File

@@ -66,6 +66,10 @@ public class ManualTestActivity extends Activity {
"com.cyanogenmod.setupwizard.ui.SetupWizardActivity");
pm.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
PackageManager.DONT_KILL_APP);
componentName = new ComponentName("com.cyanogenmod.setupwizard",
"com.cyanogenmod.setupwizard.setup.FinishSetupReceiver");
pm.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
PackageManager.DONT_KILL_APP);
pm.clearApplicationUserData("com.cyanogenmod.setupwizard", null);
ActivityManager am = (ActivityManager) getSystemService(Activity.ACTIVITY_SERVICE);
am.killBackgroundProcesses("com.cyanogenmod.setupwizard");