diff options
255 files changed, 32138 insertions, 1449 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 14207db..72be71b 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -61,6 +61,7 @@ <uses-permission android:name="android.permission.MANAGE_USERS" /> <uses-permission android:name="android.permission.READ_PROFILE" /> <uses-permission android:name="android.permission.CONFIGURE_WIFI_DISPLAY" /> + <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <uses-permission android:name="android.permission.SET_TIME" /> <application android:label="@string/settings_label" @@ -252,17 +253,18 @@ </intent-filter> </activity-alias> - <activity android:name="ApnSettings" - android:label="@string/apn_settings" - android:uiOptions="none" - android:configChanges="orientation|keyboardHidden|screenSize" - android:launchMode="singleTask"> + <activity android:name="Settings$ApnSettingsActivity" android:label="@string/apn_settings" + android:uiOptions="none" + android:configChanges="orientation|keyboardHidden|screenSize" + android:launchMode="singleTask" android:clearTaskOnLaunch="true"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <action android:name="android.settings.APN_SETTINGS" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.VOICE_LAUNCH" /> </intent-filter> + <meta-data android:name="com.android.settings.FRAGMENT_CLASS" + android:value="com.android.settings.ApnSettings" /> </activity> <activity android:name="Settings$BluetoothSettingsActivity" @@ -956,11 +958,30 @@ </intent-filter> </activity> + <activity android:name="ChooseLockPatternSize" android:exported="false"/> + <activity android:name="ChooseLockPattern" android:exported="false"/> <activity android:name="ChooseLockPassword" android:exported="false" android:windowSoftInputMode="stateVisible|adjustResize"/> + <!-- Anonymous Statistics --> + <receiver android:name=".cmstats.ReportingServiceManager" + android:enabled="true" + android:exported="false" + android:label="ReportingServiceManager"> + <intent-filter> + <action android:name="android.intent.action.BOOT_COMPLETED" /> + <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> + </intent-filter> + </receiver> + + <service android:label="ReportingService" + android:enabled="true" + android:exported="false" + android:name=".cmstats.ReportingService"> + </service> + <!-- Runs in the phone process since it needs access to the Phone object --> <activity android:name=".deviceinfo.Status" android:label="@string/device_status_activity_title" @@ -994,9 +1015,9 @@ <activity android:name=".deviceinfo.MiscFilesHandler" android:theme="@android:style/Theme.Holo.DialogWhenLarge"/> - <activity android:name="ApnEditor" + <activity android:name="Settings$ApnEditorActivity" android:label="@string/apn_edit" - android:theme="@android:style/Theme.Holo.DialogWhenLarge"> + android:clearTaskOnLaunch="true"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <action android:name="android.intent.action.EDIT" /> @@ -1009,6 +1030,8 @@ <category android:name="android.intent.category.DEFAULT" /> <data android:mimeType="vnd.android.cursor.dir/telephony-carrier" /> </intent-filter> + <meta-data android:name="com.android.settings.FRAGMENT_CLASS" + android:value="com.android.settings.ApnEditor" /> </activity> <activity android:name="MediaFormat" android:label="@string/media_format_title"> @@ -1182,7 +1205,7 @@ <activity android:name="ActivityPicker" android:label="@string/activity_picker_label" - android:theme="@*android:style/Theme.Dialog.Alert" + android:theme="@*android:style/Theme.Holo.Dialog.Alert" android:finishOnCloseSystemDialogs="true"> <intent-filter> <action android:name="android.intent.action.PICK_ACTIVITY" /> @@ -1438,6 +1461,106 @@ android:theme="@style/CryptKeeperBlankTheme" /> + <!-- CyanogenMod activities Start --> + <activity android:name=".cyanogenmod.PowerWidget" /> + + <activity android:name=".cyanogenmod.SystemSettings" /> + + <activity android:name=".cyanogenmod.PerformanceSettings" /> + + <activity android:name="Settings$QuietHoursSettingsActivity" + android:label="@string/quiet_hours_title" + android:taskAffinity="" + android:excludeFromRecents="true"> + <intent-filter> + <action android:name="android.intent.action.MAIN" /> + <category android:name="android.intent.category.DEFAULT" /> + </intent-filter> + <meta-data android:name="com.android.settings.FRAGMENT_CLASS" + android:value="com.android.settings.cyanogenmod.QuietHours" /> + <meta-data android:name="com.android.settings.TOP_LEVEL_HEADER_ID" + android:resource="@id/sound_settings" /> + </activity> + + <activity android:name=".profiles.ProfilesSettings" /> + <activity android:name="Settings$ProfilesSettingsActivity" + android:label="@string/profile_settings" + android:taskAffinity="" + android:excludeFromRecents="true"> + <intent-filter> + <action android:name="android.intent.action.MAIN" /> + <action android:name="android.settings.PROFILES_SETTINGS" /> + <action android:name="com.android.settings.PROFILES_SETTINGS" /> + <category android:name="android.intent.category.VOICE_LAUNCH" /> + <category android:name="android.intent.category.DEFAULT" /> + <category android:name="android.intent.category.SHORTCUT" /> + </intent-filter> + <meta-data android:name="com.android.settings.FRAGMENT_CLASS" + android:value="com.android.settings.profiles.ProfilesSettings" /> + <meta-data android:name="com.android.settings.TOP_LEVEL_HEADER_ID" + android:resource="@id/profiles_settings" /> + </activity> + + <!-- Keep compatibility with old shortcuts. --> + <activity-alias android:name="ProfileSettings" + android:label="@string/profile_settings" + android:exported="true" + android:targetActivity="Settings$ProfilesSettingsActivity"> + <meta-data android:name="com.android.settings.FRAGMENT_CLASS" + android:value="com.android.settings.profiles.ProfilesSettings" /> + <meta-data android:name="com.android.settings.TOP_LEVEL_HEADER_ID" + android:resource="@id/profiles_settings" /> + </activity-alias> + + <activity android:name=".profiles.ProfileConfig" /> + + <activity android:name=".profiles.AppGroupList" /> + + <activity android:name=".profiles.AppGroupConfig" /> + + <activity android:name=".profiles.ProfileGroupConfig" /> + + <activity android:name=".profiles.NFCProfileWriter" /> + + <activity android:name=".profiles.NFCProfileSelect" /> + + <activity android:name=".cyanogenmod.LockscreenTargets" /> + + <activity android:name=".cyanogenmod.ChangeLog" /> + + <activity android:name=".cyanogenmod.LockscreenInterface" /> + + <activity android:name=".cyanogenmod.LockscreenButtons" /> + + <activity android:name=".cyanogenmod.PowerMenu" /> + + <activity android:name=".cyanogenmod.QuickSettings" /> + + <activity android:name=".profiles.NFCProfile" + android:theme="@android:style/Theme.NoDisplay"> + <intent-filter> + <action android:name="android.nfc.action.NDEF_DISCOVERED"/> + <category android:name="android.intent.category.DEFAULT"/> + <data android:mimeType="cm/profile" /> + </intent-filter> + </activity> + + <activity android:name=".notificationlight.NotificationLightSettings" /> + + <activity android:name=".notificationlight.BatteryLightSettings" /> + + <activity android:name=".ApnEditor" /> + + <activity android:name="Settings$AnonymousStatsActivity" + android:label="@string/anonymous_statistics_title" + android:configChanges="orientation|keyboardHidden|screenSize" + android:clearTaskOnLaunch="true"> + <meta-data android:name="com.android.settings.FRAGMENT_CLASS" + android:value="com.android.settings.cmstats.AnonymousStats" /> + </activity> + + <!-- CyanogenMod activities End --> + <!-- Pseudo-activity used to provide an intent-filter entry point to encryption settings --> <activity android:name="Settings$CryptKeeperSettingsActivity" android:label="@string/crypt_keeper_encrypt_title"> @@ -1507,6 +1630,12 @@ </intent-filter> </receiver> + <receiver android:name=".cyanogenmod.BootReceiver" android:enabled="true"> + <intent-filter> + <action android:name="android.intent.action.BOOT_COMPLETED" /> + </intent-filter> + </receiver> + <!-- Watch for ContactsContract.Profile changes and update the user's photo. --> <receiver android:name=".users.ProfileUpdateReceiver"> <intent-filter> diff --git a/res/drawable-hdpi-finger/ic_grabber.png b/res/drawable-hdpi-finger/ic_grabber.png Binary files differnew file mode 100644 index 0000000..70afc55 --- /dev/null +++ b/res/drawable-hdpi-finger/ic_grabber.png diff --git a/res/drawable-hdpi/ic_cm_stats_notif.png b/res/drawable-hdpi/ic_cm_stats_notif.png Binary files differnew file mode 100644 index 0000000..66fa7c0 --- /dev/null +++ b/res/drawable-hdpi/ic_cm_stats_notif.png diff --git a/res/drawable-hdpi/ic_empty.png b/res/drawable-hdpi/ic_empty.png Binary files differnew file mode 100644 index 0000000..a45c6cf --- /dev/null +++ b/res/drawable-hdpi/ic_empty.png diff --git a/res/drawable-hdpi/ic_menu_nfc_writer_dark.png b/res/drawable-hdpi/ic_menu_nfc_writer_dark.png Binary files differnew file mode 100644 index 0000000..88fe437 --- /dev/null +++ b/res/drawable-hdpi/ic_menu_nfc_writer_dark.png diff --git a/res/drawable-hdpi/ic_menu_save.png b/res/drawable-hdpi/ic_menu_save.png Binary files differnew file mode 100644 index 0000000..2b29557 --- /dev/null +++ b/res/drawable-hdpi/ic_menu_save.png diff --git a/res/drawable-hdpi/ic_menu_trash_holo_dark.png b/res/drawable-hdpi/ic_menu_trash_holo_dark.png Binary files differnew file mode 100644 index 0000000..c7a0832 --- /dev/null +++ b/res/drawable-hdpi/ic_menu_trash_holo_dark.png diff --git a/res/drawable-hdpi/ic_settings_advanced.png b/res/drawable-hdpi/ic_settings_advanced.png Binary files differnew file mode 100644 index 0000000..6d48b8a --- /dev/null +++ b/res/drawable-hdpi/ic_settings_advanced.png diff --git a/res/drawable-hdpi/ic_settings_cmlauncher.png b/res/drawable-hdpi/ic_settings_cmlauncher.png Binary files differnew file mode 100644 index 0000000..bbbe72c --- /dev/null +++ b/res/drawable-hdpi/ic_settings_cmlauncher.png diff --git a/res/drawable-hdpi/ic_settings_lockscreen.png b/res/drawable-hdpi/ic_settings_lockscreen.png Binary files differnew file mode 100644 index 0000000..a08d513 --- /dev/null +++ b/res/drawable-hdpi/ic_settings_lockscreen.png diff --git a/res/drawable-hdpi/ic_settings_performance.png b/res/drawable-hdpi/ic_settings_performance.png Binary files differnew file mode 100644 index 0000000..d569419 --- /dev/null +++ b/res/drawable-hdpi/ic_settings_performance.png diff --git a/res/drawable-hdpi/ic_settings_profiles.png b/res/drawable-hdpi/ic_settings_profiles.png Binary files differnew file mode 100644 index 0000000..f47568d --- /dev/null +++ b/res/drawable-hdpi/ic_settings_profiles.png diff --git a/res/drawable-hdpi/ic_settings_system.png b/res/drawable-hdpi/ic_settings_system.png Binary files differnew file mode 100644 index 0000000..920b65e --- /dev/null +++ b/res/drawable-hdpi/ic_settings_system.png diff --git a/res/drawable-hdpi/ic_settings_themes.png b/res/drawable-hdpi/ic_settings_themes.png Binary files differnew file mode 100644 index 0000000..3e0d2ca --- /dev/null +++ b/res/drawable-hdpi/ic_settings_themes.png diff --git a/res/drawable-hdpi/nfc_writer.png b/res/drawable-hdpi/nfc_writer.png Binary files differnew file mode 100644 index 0000000..873e721 --- /dev/null +++ b/res/drawable-hdpi/nfc_writer.png diff --git a/res/drawable-hdpi/stat_navbar_edit_off.png b/res/drawable-hdpi/stat_navbar_edit_off.png Binary files differnew file mode 100644 index 0000000..d796bde --- /dev/null +++ b/res/drawable-hdpi/stat_navbar_edit_off.png diff --git a/res/drawable-hdpi/stat_navbar_edit_on.png b/res/drawable-hdpi/stat_navbar_edit_on.png Binary files differnew file mode 100644 index 0000000..263c0ed --- /dev/null +++ b/res/drawable-hdpi/stat_navbar_edit_on.png diff --git a/res/drawable-mdpi-finger/ic_grabber.png b/res/drawable-mdpi-finger/ic_grabber.png Binary files differnew file mode 100644 index 0000000..9f6962e --- /dev/null +++ b/res/drawable-mdpi-finger/ic_grabber.png diff --git a/res/drawable-mdpi/ic_cm_stats_notif.png b/res/drawable-mdpi/ic_cm_stats_notif.png Binary files differnew file mode 100644 index 0000000..9113877 --- /dev/null +++ b/res/drawable-mdpi/ic_cm_stats_notif.png diff --git a/res/drawable-mdpi/ic_empty.png b/res/drawable-mdpi/ic_empty.png Binary files differnew file mode 100644 index 0000000..ede2c83 --- /dev/null +++ b/res/drawable-mdpi/ic_empty.png diff --git a/res/drawable-mdpi/ic_menu_save.png b/res/drawable-mdpi/ic_menu_save.png Binary files differnew file mode 100644 index 0000000..283be30 --- /dev/null +++ b/res/drawable-mdpi/ic_menu_save.png diff --git a/res/drawable-mdpi/ic_menu_trash_holo_dark.png b/res/drawable-mdpi/ic_menu_trash_holo_dark.png Binary files differnew file mode 100644 index 0000000..b9575aa --- /dev/null +++ b/res/drawable-mdpi/ic_menu_trash_holo_dark.png diff --git a/res/drawable-mdpi/ic_settings_advanced.png b/res/drawable-mdpi/ic_settings_advanced.png Binary files differnew file mode 100644 index 0000000..0c03934 --- /dev/null +++ b/res/drawable-mdpi/ic_settings_advanced.png diff --git a/res/drawable-mdpi/ic_settings_cmlauncher.png b/res/drawable-mdpi/ic_settings_cmlauncher.png Binary files differnew file mode 100644 index 0000000..189f4ed --- /dev/null +++ b/res/drawable-mdpi/ic_settings_cmlauncher.png diff --git a/res/drawable-mdpi/ic_settings_lockscreen.png b/res/drawable-mdpi/ic_settings_lockscreen.png Binary files differnew file mode 100644 index 0000000..ac18347 --- /dev/null +++ b/res/drawable-mdpi/ic_settings_lockscreen.png diff --git a/res/drawable-mdpi/ic_settings_performance.png b/res/drawable-mdpi/ic_settings_performance.png Binary files differnew file mode 100644 index 0000000..a97d54e --- /dev/null +++ b/res/drawable-mdpi/ic_settings_performance.png diff --git a/res/drawable-mdpi/ic_settings_profiles.png b/res/drawable-mdpi/ic_settings_profiles.png Binary files differnew file mode 100644 index 0000000..cc740bd --- /dev/null +++ b/res/drawable-mdpi/ic_settings_profiles.png diff --git a/res/drawable-mdpi/ic_settings_system.png b/res/drawable-mdpi/ic_settings_system.png Binary files differnew file mode 100644 index 0000000..f738fd9 --- /dev/null +++ b/res/drawable-mdpi/ic_settings_system.png diff --git a/res/drawable-mdpi/ic_settings_themes.png b/res/drawable-mdpi/ic_settings_themes.png Binary files differnew file mode 100644 index 0000000..7dd65fc --- /dev/null +++ b/res/drawable-mdpi/ic_settings_themes.png diff --git a/res/drawable-mdpi/stat_navbar_edit_off.png b/res/drawable-mdpi/stat_navbar_edit_off.png Binary files differnew file mode 100644 index 0000000..0520768 --- /dev/null +++ b/res/drawable-mdpi/stat_navbar_edit_off.png diff --git a/res/drawable-mdpi/stat_navbar_edit_on.png b/res/drawable-mdpi/stat_navbar_edit_on.png Binary files differnew file mode 100644 index 0000000..8c93091 --- /dev/null +++ b/res/drawable-mdpi/stat_navbar_edit_on.png diff --git a/res/drawable-xhdpi-finger/ic_grabber.png b/res/drawable-xhdpi-finger/ic_grabber.png Binary files differnew file mode 100644 index 0000000..24ccc1c --- /dev/null +++ b/res/drawable-xhdpi-finger/ic_grabber.png diff --git a/res/drawable-xhdpi/ic_cm_stats_notif.png b/res/drawable-xhdpi/ic_cm_stats_notif.png Binary files differnew file mode 100644 index 0000000..715eb9a --- /dev/null +++ b/res/drawable-xhdpi/ic_cm_stats_notif.png diff --git a/res/drawable-xhdpi/ic_empty.png b/res/drawable-xhdpi/ic_empty.png Binary files differnew file mode 100644 index 0000000..5742d13 --- /dev/null +++ b/res/drawable-xhdpi/ic_empty.png diff --git a/res/drawable-xhdpi/ic_menu_nfc_writer_dark.png b/res/drawable-xhdpi/ic_menu_nfc_writer_dark.png Binary files differnew file mode 100644 index 0000000..417ec98 --- /dev/null +++ b/res/drawable-xhdpi/ic_menu_nfc_writer_dark.png diff --git a/res/drawable-xhdpi/ic_menu_save.png b/res/drawable-xhdpi/ic_menu_save.png Binary files differnew file mode 100644 index 0000000..c403206 --- /dev/null +++ b/res/drawable-xhdpi/ic_menu_save.png diff --git a/res/drawable-xhdpi/ic_menu_trash_holo_dark.png b/res/drawable-xhdpi/ic_menu_trash_holo_dark.png Binary files differnew file mode 100644 index 0000000..33add13 --- /dev/null +++ b/res/drawable-xhdpi/ic_menu_trash_holo_dark.png diff --git a/res/drawable-xhdpi/ic_settings_advanced.png b/res/drawable-xhdpi/ic_settings_advanced.png Binary files differnew file mode 100644 index 0000000..40d91c1 --- /dev/null +++ b/res/drawable-xhdpi/ic_settings_advanced.png diff --git a/res/drawable-xhdpi/ic_settings_cmlauncher.png b/res/drawable-xhdpi/ic_settings_cmlauncher.png Binary files differnew file mode 100644 index 0000000..5b3fa3f --- /dev/null +++ b/res/drawable-xhdpi/ic_settings_cmlauncher.png diff --git a/res/drawable-xhdpi/ic_settings_lockscreen.png b/res/drawable-xhdpi/ic_settings_lockscreen.png Binary files differnew file mode 100644 index 0000000..f669da1 --- /dev/null +++ b/res/drawable-xhdpi/ic_settings_lockscreen.png diff --git a/res/drawable-xhdpi/ic_settings_performance.png b/res/drawable-xhdpi/ic_settings_performance.png Binary files differnew file mode 100644 index 0000000..aa61cf5 --- /dev/null +++ b/res/drawable-xhdpi/ic_settings_performance.png diff --git a/res/drawable-xhdpi/ic_settings_profiles.png b/res/drawable-xhdpi/ic_settings_profiles.png Binary files differnew file mode 100644 index 0000000..d6c6911 --- /dev/null +++ b/res/drawable-xhdpi/ic_settings_profiles.png diff --git a/res/drawable-xhdpi/ic_settings_system.png b/res/drawable-xhdpi/ic_settings_system.png Binary files differnew file mode 100644 index 0000000..aa3b1fb --- /dev/null +++ b/res/drawable-xhdpi/ic_settings_system.png diff --git a/res/drawable-xhdpi/ic_settings_themes.png b/res/drawable-xhdpi/ic_settings_themes.png Binary files differnew file mode 100644 index 0000000..3c6b596 --- /dev/null +++ b/res/drawable-xhdpi/ic_settings_themes.png diff --git a/res/drawable-xhdpi/nfc_writer.png b/res/drawable-xhdpi/nfc_writer.png Binary files differnew file mode 100644 index 0000000..60f4d6e --- /dev/null +++ b/res/drawable-xhdpi/nfc_writer.png diff --git a/res/drawable-xhdpi/stat_navbar_edit_off.png b/res/drawable-xhdpi/stat_navbar_edit_off.png Binary files differnew file mode 100644 index 0000000..d0c63a0 --- /dev/null +++ b/res/drawable-xhdpi/stat_navbar_edit_off.png diff --git a/res/drawable-xhdpi/stat_navbar_edit_on.png b/res/drawable-xhdpi/stat_navbar_edit_on.png Binary files differnew file mode 100644 index 0000000..1bfee82 --- /dev/null +++ b/res/drawable-xhdpi/stat_navbar_edit_on.png diff --git a/res/drawable/activities_icon.png b/res/drawable/activities_icon.png Binary files differnew file mode 100644 index 0000000..abd62e2 --- /dev/null +++ b/res/drawable/activities_icon.png diff --git a/res/drawable/navbar_tut.png b/res/drawable/navbar_tut.png Binary files differnew file mode 100644 index 0000000..44578f5 --- /dev/null +++ b/res/drawable/navbar_tut.png diff --git a/res/layout-finger/order_power_widget_button_list_item.xml b/res/layout-finger/order_power_widget_button_list_item.xml new file mode 100644 index 0000000..8d9fc45 --- /dev/null +++ b/res/layout-finger/order_power_widget_button_list_item.xml @@ -0,0 +1,72 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** Copyright 2008, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="64dip" + android:gravity="bottom" + android:orientation="vertical" + android:baselineAligned="false"> + + <ImageView + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:background="@android:drawable/divider_horizontal_dark" /> + + <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="64dip" + android:gravity="center_vertical" + android:ignoreGravity="@+id/icon"> + + <!-- left icon, used for the grabber --> + <ImageView android:id="@+id/grabber" + android:src="@drawable/ic_grabber" + android:layout_alignParentLeft="true" + android:layout_alignParentTop="true" + android:layout_alignParentBottom="true" + android:layout_width="wrap_content" + android:layout_height="wrap_content"/> + + <!-- icon representing the galaxy s widget button --> + <ImageView android:id="@+id/icon" + android:layout_alignParentRight="true" + android:layout_alignParentTop = "true" + android:layout_alignParentBottom = "true" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginRight="10dip" /> + + <!-- The height is set to half the height of the parent, which is 64 dip --> + <TextView android:id="@+id/name" + android:textAppearance="?android:attr/textAppearanceMedium" + android:layout_width="wrap_content" + android:paddingLeft="9dip" + android:paddingRight="9dip" + android:layout_height="wrap_content" + android:layout_alignParentTop = "true" + android:layout_alignParentBottom = "true" + android:layout_toRightOf="@id/grabber" + android:layout_toLeftOf="@id/icon" + android:ellipsize="marquee" + android:gravity="center_vertical" + android:singleLine="true" /> + + </RelativeLayout> + +</LinearLayout> diff --git a/res/layout-finger/order_power_widget_buttons_activity.xml b/res/layout-finger/order_power_widget_buttons_activity.xml new file mode 100644 index 0000000..42124a0 --- /dev/null +++ b/res/layout-finger/order_power_widget_buttons_activity.xml @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2007 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical" + android:gravity="center_vertical" > + + <com.android.settings.cyanogenmod.TouchInterceptor + android:id="@android:id/list" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_weight="1" + android:textSize="18sp" + android:drawSelectorOnTop="false" + android:fastScrollEnabled="true" /> + +</LinearLayout> diff --git a/res/layout-finger/wifi_network_priority.xml b/res/layout-finger/wifi_network_priority.xml new file mode 100644 index 0000000..fa84083 --- /dev/null +++ b/res/layout-finger/wifi_network_priority.xml @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2013 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical" + android:gravity="center_vertical" > + + <com.android.settings.cyanogenmod.TouchInterceptor + android:id="@android:id/list" + android:layout_width="match_parent" + android:layout_height="0dip" + android:layout_weight="1" + android:textSize="18sp" + android:drawSelectorOnTop="false" + android:fastScrollEnabled="true" /> + +</LinearLayout> diff --git a/res/layout-finger/wifi_network_priority_list_item.xml b/res/layout-finger/wifi_network_priority_list_item.xml new file mode 100644 index 0000000..aa0d873 --- /dev/null +++ b/res/layout-finger/wifi_network_priority_list_item.xml @@ -0,0 +1,39 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** Copyright 2008, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="64dip" + android:orientation="vertical"> + + <ImageView android:id="@+id/grabber" + android:src="@drawable/ic_grabber" + android:layout_width="wrap_content" + android:layout_height="wrap_content"/> + + <TextView android:id="@+id/name" + android:textAppearance="?android:attr/textAppearanceMedium" + android:layout_width="wrap_content" + android:paddingLeft="9dip" + android:paddingRight="9dip" + android:layout_height="wrap_content" + android:ellipsize="marquee" + android:gravity="center_vertical" + android:singleLine="true" /> + +</LinearLayout> diff --git a/res/layout-land/lockscreen_targets.xml b/res/layout-land/lockscreen_targets.xml new file mode 100644 index 0000000..22f0d4a --- /dev/null +++ b/res/layout-land/lockscreen_targets.xml @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:prvandroid="http://schemas.android.com/apk/prv/res/android" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical"> + + <TextView + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:background="@android:color/holo_blue_light" + android:layout_marginRight="8dip" + android:layout_marginLeft="8dip" + android:padding="4dip" + android:gravity="center_horizontal" + android:textColor="#FFFFFF" + android:textAppearance="?android:attr/textAppearanceSmall" + android:text="@string/lockscreen_target_info" /> + + <View + android:layout_width="match_parent" + android:layout_height="0dp" + android:layout_weight="1" /> + + <com.android.internal.widget.multiwaveview.GlowPadView + android:id="@+id/lock_target" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center" + android:orientation="horizontal" + android:gravity="@*android:integer/kg_selector_gravity" + android:contentDescription="@*android:string/keyguard_accessibility_slide_area" + prvandroid:targetDrawables="@*android:array/lockscreen_targets_unlock_only" + prvandroid:targetDescriptions="@*android:array/lockscreen_target_descriptions_unlock_only" + prvandroid:directionDescriptions="@*android:array/lockscreen_direction_descriptions" + prvandroid:handleDrawable="@*android:drawable/ic_lockscreen_handle" + prvandroid:outerRingDrawable="@*android:drawable/ic_lockscreen_outerring" + prvandroid:outerRadius="@*android:dimen/glowpadview_target_placement_radius" + prvandroid:innerRadius="@*android:dimen/glowpadview_inner_radius" + prvandroid:snapMargin="@*android:dimen/glowpadview_snap_margin" + prvandroid:firstItemOffset="@*android:integer/kg_glowpad_rotation_offset" + prvandroid:magneticTargets="false" + prvandroid:feedbackCount="1" + prvandroid:vibrationDuration="20" + prvandroid:glowRadius="@*android:dimen/glowpadview_glow_radius" + prvandroid:pointDrawable="@*android:drawable/ic_lockscreen_glowdot" + prvandroid:allowScaling="true" /> + +</LinearLayout> diff --git a/res/layout-sw600dp/lockscreen_targets.xml b/res/layout-sw600dp/lockscreen_targets.xml new file mode 100644 index 0000000..22f0d4a --- /dev/null +++ b/res/layout-sw600dp/lockscreen_targets.xml @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:prvandroid="http://schemas.android.com/apk/prv/res/android" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical"> + + <TextView + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:background="@android:color/holo_blue_light" + android:layout_marginRight="8dip" + android:layout_marginLeft="8dip" + android:padding="4dip" + android:gravity="center_horizontal" + android:textColor="#FFFFFF" + android:textAppearance="?android:attr/textAppearanceSmall" + android:text="@string/lockscreen_target_info" /> + + <View + android:layout_width="match_parent" + android:layout_height="0dp" + android:layout_weight="1" /> + + <com.android.internal.widget.multiwaveview.GlowPadView + android:id="@+id/lock_target" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center" + android:orientation="horizontal" + android:gravity="@*android:integer/kg_selector_gravity" + android:contentDescription="@*android:string/keyguard_accessibility_slide_area" + prvandroid:targetDrawables="@*android:array/lockscreen_targets_unlock_only" + prvandroid:targetDescriptions="@*android:array/lockscreen_target_descriptions_unlock_only" + prvandroid:directionDescriptions="@*android:array/lockscreen_direction_descriptions" + prvandroid:handleDrawable="@*android:drawable/ic_lockscreen_handle" + prvandroid:outerRingDrawable="@*android:drawable/ic_lockscreen_outerring" + prvandroid:outerRadius="@*android:dimen/glowpadview_target_placement_radius" + prvandroid:innerRadius="@*android:dimen/glowpadview_inner_radius" + prvandroid:snapMargin="@*android:dimen/glowpadview_snap_margin" + prvandroid:firstItemOffset="@*android:integer/kg_glowpad_rotation_offset" + prvandroid:magneticTargets="false" + prvandroid:feedbackCount="1" + prvandroid:vibrationDuration="20" + prvandroid:glowRadius="@*android:dimen/glowpadview_glow_radius" + prvandroid:pointDrawable="@*android:drawable/ic_lockscreen_glowdot" + prvandroid:allowScaling="true" /> + +</LinearLayout> diff --git a/res/layout/account_sync_screen.xml b/res/layout/account_sync_screen.xml index 4c1bf7e..5358fe3 100644 --- a/res/layout/account_sync_screen.xml +++ b/res/layout/account_sync_screen.xml @@ -46,7 +46,7 @@ android:layout_margin="8dip" android:text="@string/sync_is_failing" android:drawablePadding="8dip" - android:drawableLeft="@drawable/ic_sync_error_holo" /> + android:drawableStart="@drawable/ic_sync_error_holo" /> <RelativeLayout android:id="@+id/finish_button_area" android:layout_height="wrap_content" diff --git a/res/layout/bluetooth_mas_access.xml b/res/layout/bluetooth_mas_access.xml new file mode 100644 index 0000000..dc7c2d5 --- /dev/null +++ b/res/layout/bluetooth_mas_access.xml @@ -0,0 +1,49 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** Copyright 2009, The Android Open Source Project +** Copyright (c) 2011, Code Aurora Forum. All rights reserved. +** +** 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. +*/ +--> + +<ScrollView + xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_height="match_parent" + android:layout_width="match_parent"> + + <LinearLayout + android:layout_height="match_parent" + android:layout_width="match_parent" + android:orientation="vertical"> + + <TextView + android:id="@+id/message" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginLeft="20dip" + android:layout_marginRight="20dip" + android:gravity="center_horizontal" + android:textAppearance="?android:attr/textAppearanceMedium" /> + + <CheckBox android:id="@+id/bluetooth_mas_remember_choice" + style="?android:attr/textAppearanceMedium" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="2dip" + android:text="@string/bluetooth_mas_remember_choice" /> + + </LinearLayout> + +</ScrollView> diff --git a/res/layout/crypt_keeper_status.xml b/res/layout/crypt_keeper_status.xml index c7264be..8a16e7f 100644 --- a/res/layout/crypt_keeper_status.xml +++ b/res/layout/crypt_keeper_status.xml @@ -35,6 +35,6 @@ android:textSize="18sp" android:textAppearance="?android:attr/textAppearanceMedium" android:text="@string/enter_password" - android:drawableLeft="@*android:drawable/ic_lock_idle_lock" + android:drawableStart="@*android:drawable/ic_lock_idle_lock" /> </LinearLayout> diff --git a/res/layout/dialog_light_settings.xml b/res/layout/dialog_light_settings.xml new file mode 100644 index 0000000..aa78c39 --- /dev/null +++ b/res/layout/dialog_light_settings.xml @@ -0,0 +1,109 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2010 Daniel Nilsson + Copyright (C) 2012 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. --> + +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="match_parent" > + + <com.android.settings.notificationlight.ColorPickerView + android:id="@+id/color_picker_view" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_centerHorizontal="true" + android:layout_marginStart="10dp" + android:layout_marginEnd="10dp" /> + + <LinearLayout + android:id="@+id/color_panel_view" + android:layout_width="match_parent" + android:layout_height="40dp" + android:layout_alignStart="@id/color_picker_view" + android:layout_alignEnd="@id/color_picker_view" + android:layout_below="@id/color_picker_view" + android:layout_marginBottom="4dp" + android:layout_marginTop="4dp" + android:orientation="horizontal" > + + <com.android.settings.notificationlight.ColorPanelView + android:id="@+id/old_color_panel" + android:layout_width="0px" + android:layout_height="match_parent" + android:layout_weight="0.5" /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:layout_marginStart="10dp" + android:layout_marginEnd="10dp" + android:gravity="center" + android:text="@string/picker_arrow" + android:textColor="#ffffff" + android:textSize="20sp" /> + + <com.android.settings.notificationlight.ColorPanelView + android:id="@+id/new_color_panel" + android:layout_width="0px" + android:layout_height="match_parent" + android:layout_weight="0.5" /> + </LinearLayout> + + <LinearLayout + android:id="@+id/speed_title_view" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_below="@id/color_panel_view" + android:layout_marginStart="10dp" + android:layout_marginEnd="10dp" + android:layout_marginTop="4dp" + android:orientation="vertical" > + + <View + android:layout_width="match_parent" + android:layout_height="2dp" + android:background="@android:drawable/divider_horizontal_dark" /> + + <TextView + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="4dp" + android:text="@string/pulse_speed_title" + android:textAppearance="?android:attr/textAppearanceSmall" /> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="horizontal" + android:paddingBottom="4dip" > + + <Spinner + android:id="@+id/on_spinner" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_weight="1" /> + + <View + android:layout_width="8dip" + android:layout_height="match_parent" /> + + <Spinner + android:id="@+id/off_spinner" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_weight="1" /> + </LinearLayout> + </LinearLayout> + +</RelativeLayout> diff --git a/res/layout/keyguard_appwidget_item.xml b/res/layout/keyguard_appwidget_item.xml index de0c855..6d99369 100755 --- a/res/layout/keyguard_appwidget_item.xml +++ b/res/layout/keyguard_appwidget_item.xml @@ -24,10 +24,10 @@ android:background="@drawable/appwidget_item_bg" android:layout_marginTop="2dip" android:layout_marginBottom="2dip" - android:layout_marginLeft="2dip" - android:layout_marginRight="2dip" - android:paddingLeft="16dip" - android:paddingRight="16dip" + android:layout_marginStart="2dip" + android:layout_marginEnd="2dip" + android:paddingStart="16dip" + android:paddingEnd="16dip" android:paddingTop="16dip" android:paddingBottom="16dip" > <ImageView @@ -40,8 +40,8 @@ style="@style/KeyguardAppWidgetItem" android:layout_width="match_parent" android:layout_height="match_parent" - android:paddingLeft="24dip" + android:paddingStart="24dip" android:paddingBottom="8dip" - android:gravity="left|bottom" /> + android:gravity="start|bottom" /> </LinearLayout> </FrameLayout> diff --git a/res/layout/keyguard_appwidget_picker_layout.xml b/res/layout/keyguard_appwidget_picker_layout.xml index e533672..a278004 100644 --- a/res/layout/keyguard_appwidget_picker_layout.xml +++ b/res/layout/keyguard_appwidget_picker_layout.xml @@ -18,8 +18,8 @@ android:id="@+id/layout_root" android:layout_width="match_parent" android:layout_height="match_parent" - android:paddingLeft="@dimen/keyguard_appwidget_picker_margin_left" - android:paddingRight="@dimen/keyguard_appwidget_picker_margin_right" + android:paddingStart="@dimen/keyguard_appwidget_picker_margin_left" + android:paddingEnd="@dimen/keyguard_appwidget_picker_margin_right" android:paddingTop="2dip" android:paddingBottom="2dip" android:orientation="vertical" > diff --git a/res/layout/lockscreen_shortcut_dialog.xml b/res/layout/lockscreen_shortcut_dialog.xml new file mode 100644 index 0000000..fda4ff6 --- /dev/null +++ b/res/layout/lockscreen_shortcut_dialog.xml @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout + xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:minHeight="?android:attr/listPreferredItemHeight" + android:layout_height="wrap_content" + android:paddingBottom="5dp" + android:paddingStart="8dp" + android:gravity="center_vertical" + android:orientation="horizontal"> + <ImageButton + android:padding="5dp" + android:layout_width="@android:dimen/app_icon_size" + style="?android:attr/borderlessButtonStyle" + android:id="@+id/icon" + android:layout_height="@android:dimen/app_icon_size" /> + <View + android:layout_width="2dp" + android:layout_height="match_parent" + android:layout_marginTop="5dp" + android:layout_marginBottom="5dp" + android:layout_marginEnd="5dp" + android:layout_marginStart="5dp" + android:background="@android:drawable/divider_horizontal_dark" /> + <Button + android:layout_width="match_parent" + style="?android:attr/borderlessButtonStyle" + android:gravity="start|center_vertical" + android:paddingStart="5dp" + android:layout_height="wrap_content" + android:id="@+id/label" /> +</LinearLayout> diff --git a/res/layout/lockscreen_targets.xml b/res/layout/lockscreen_targets.xml new file mode 100644 index 0000000..9ca41a5 --- /dev/null +++ b/res/layout/lockscreen_targets.xml @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:prvandroid="http://schemas.android.com/apk/prv/res/android" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical"> + + <TextView + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:background="@android:color/holo_blue_light" + android:layout_marginEnd="8dip" + android:layout_marginStart="8dip" + android:padding="4dip" + android:gravity="center_horizontal" + android:textColor="#FFFFFF" + android:textAppearance="?android:attr/textAppearanceSmall" + android:text="@string/lockscreen_target_info" /> + + <View + android:layout_width="match_parent" + android:layout_height="0dp" + android:layout_weight="0.4" /> + + <com.android.internal.widget.multiwaveview.GlowPadView + android:id="@+id/lock_target" + android:layout_width="match_parent" + android:layout_height="0dp" + android:layout_weight="0.6" + android:orientation="horizontal" + android:gravity="top" + android:contentDescription="@*android:string/keyguard_accessibility_slide_area" + prvandroid:targetDrawables="@*android:array/lockscreen_targets_unlock_only" + prvandroid:targetDescriptions="@*android:array/lockscreen_target_descriptions_unlock_only" + prvandroid:directionDescriptions="@*android:array/lockscreen_direction_descriptions" + prvandroid:handleDrawable="@*android:drawable/ic_lockscreen_handle" + prvandroid:outerRingDrawable="@*android:drawable/ic_lockscreen_outerring" + prvandroid:outerRadius="@*android:dimen/glowpadview_target_placement_radius" + prvandroid:innerRadius="@*android:dimen/glowpadview_inner_radius" + prvandroid:snapMargin="@*android:dimen/glowpadview_snap_margin" + prvandroid:firstItemOffset="@*android:integer/kg_glowpad_rotation_offset" + prvandroid:magneticTargets="false" + prvandroid:feedbackCount="1" + prvandroid:vibrationDuration="20" + prvandroid:glowRadius="@*android:dimen/glowpadview_glow_radius" + prvandroid:pointDrawable="@*android:drawable/ic_lockscreen_glowdot" + prvandroid:allowScaling="true" /> + +</LinearLayout> diff --git a/res/layout/manage_accounts_screen.xml b/res/layout/manage_accounts_screen.xml index 3a2aa6a..26f361a 100644 --- a/res/layout/manage_accounts_screen.xml +++ b/res/layout/manage_accounts_screen.xml @@ -36,6 +36,6 @@ android:layout_margin="8dip" android:text="@string/sync_is_failing" android:drawablePadding="8dip" - android:drawableLeft="@drawable/ic_sync_error_holo" /> + android:drawableStart="@drawable/ic_sync_error_holo" /> </LinearLayout> diff --git a/res/layout/manage_applications_content.xml b/res/layout/manage_applications_content.xml index 9e415a9..4ef1d49 100644 --- a/res/layout/manage_applications_content.xml +++ b/res/layout/manage_applications_content.xml @@ -35,8 +35,8 @@ android:layout_height="wrap_content" android:layout_gravity="top" android:textAppearance="@style/TextAppearance.PagerTabs" - android:paddingLeft="@dimen/pager_tabs_padding" - android:paddingRight="@dimen/pager_tabs_padding"> + android:paddingStart="@dimen/pager_tabs_padding" + android:paddingEnd="@dimen/pager_tabs_padding"> </android.support.v4.view.PagerTabStrip> </android.support.v4.view.ViewPager> diff --git a/res/layout/nav_bar.xml b/res/layout/nav_bar.xml new file mode 100644 index 0000000..e2a93c1 --- /dev/null +++ b/res/layout/nav_bar.xml @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout + xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical"> + <TextView + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_margin="8dip" + android:padding="4dip" + android:layout_weight="1" + android:text="@string/navigation_bar_help_text" + android:textSize="13sp" /> + <ImageView + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_weight="1" + android:layout_margin="8dip" + android:padding="4dip" + android:src="@drawable/navbar_tut" /> + <TextView + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:background="@android:color/holo_blue_light" + android:gravity="center_horizontal" + android:layout_marginLeft="8dip" + android:layout_marginRight="8dip" + android:padding="4dip" + android:textColor="#FFFFFF" + android:textAppearance="?android:attr/textAppearanceSmall" + android:text="@string/navigation_bar_tips_title" /> + <TextView + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_margin="8dip" + android:padding="4dip" + android:textSize="13sp" + android:text="@string/navigation_bar_tips" /> +</LinearLayout> diff --git a/res/layout/nfc_select.xml b/res/layout/nfc_select.xml new file mode 100644 index 0000000..e72a979 --- /dev/null +++ b/res/layout/nfc_select.xml @@ -0,0 +1,49 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2012 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. +--> + +<RelativeLayout + xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center"> + + <LinearLayout + xmlns:android="http://schemas.android.com/apk/res/android" + android:orientation="vertical" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:gravity="center" + android:layout_centerInParent="true"> + + <TextView + style="?android:attr/textAppearanceMedium" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginStart="30dip" + android:layout_marginEnd="30dip" + android:layout_marginBottom="30dip" + android:layout_gravity="center" + android:text="@string/profile_add_nfc_text" /> + + <Button android:id="@+id/add_tag" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginTop="12dip" + android:layout_gravity="center" + android:text="@string/profile_select" /> + + </LinearLayout> +</RelativeLayout> diff --git a/res/layout/nfc_writer.xml b/res/layout/nfc_writer.xml new file mode 100644 index 0000000..959217c --- /dev/null +++ b/res/layout/nfc_writer.xml @@ -0,0 +1,57 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2012 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. +--> + +<RelativeLayout + xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:gravity="center"> + + <LinearLayout + xmlns:android="http://schemas.android.com/apk/res/android" + android:orientation="vertical" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:gravity="center" + android:layout_centerInParent="true"> + + <TextView + style="?android:attr/textAppearanceMedium" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginStart="30dip" + android:layout_marginEnd="30dip" + android:layout_marginBottom="30dip" + android:layout_gravity="center" + android:text="@string/profile_nfc_text" /> + + <ImageView + android:id="@+id/nfc_writer_image" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center" + android:src="@drawable/nfc_writer" /> + + <TextView android:id="@+id/touch_tag" + style="?android:attr/textAppearanceLarge" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginTop="12dip" + android:layout_gravity="center" + android:text="@string/profile_write_touch_tag" /> + + </LinearLayout> +</RelativeLayout> diff --git a/res/layout/pick_item.xml b/res/layout/pick_item.xml index d85edc4..0ae0113 100755 --- a/res/layout/pick_item.xml +++ b/res/layout/pick_item.xml @@ -17,9 +17,9 @@ <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" - android:minHeight="?android:attr/listPreferredItemHeightSmall" - android:textAppearance="?android:attr/textAppearanceMedium" + android:minHeight="?android:attr/listPreferredItemHeight" + android:textAppearance="?android:attr/textAppearanceLarge" android:gravity="center_vertical" - android:drawablePadding="8dip" - android:paddingStart="11dip" - android:paddingEnd="11dip" /> + android:drawablePadding="14dip" + android:paddingStart="15dip" + android:paddingEnd="15dip" /> diff --git a/res/layout/preference_application_light.xml b/res/layout/preference_application_light.xml new file mode 100644 index 0000000..3ada418 --- /dev/null +++ b/res/layout/preference_application_light.xml @@ -0,0 +1,71 @@ +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:id="@+id/app_light_pref" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:clickable="true" + android:focusable="true" + android:minHeight="?android:attr/listPreferredItemHeight" + android:gravity="center_vertical" + android:background="?android:attr/selectableItemBackground" > + + <ImageView + android:id="@+android:id/icon" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_margin="4dip" + android:maxWidth="36dip" + android:maxHeight="36dip" + android:adjustViewBounds="true" + android:layout_gravity="center" /> + + <RelativeLayout + android:layout_width="0dip" + android:layout_height="wrap_content" + android:layout_margin="4dip" + android:layout_weight="1"> + + <TextView android:id="@+android:id/title" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:singleLine="true" + android:textAppearance="?android:attr/textAppearanceMedium" + android:ellipsize="marquee" + android:fadingEdge="horizontal" /> + + <TextView android:id="@+android:id/summary" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_below="@android:id/title" + android:layout_alignStart="@android:id/title" + android:textAppearance="?android:attr/textAppearanceSmall" + android:textColor="?android:attr/textColorSecondary" + android:maxLines="1" /> + </RelativeLayout> + + <LinearLayout + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:orientation="vertical" > + + <TextView + android:id="@+id/textViewTimeOnValue" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="end" + android:textAppearance="?android:attr/textAppearanceSmall" /> + + <TextView + android:id="@+id/textViewTimeOffValue" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="end" + android:textAppearance="?android:attr/textAppearanceSmall" /> + </LinearLayout> + + <ImageView + android:id="@+id/light_color" + android:layout_width="32dip" + android:layout_height="wrap_content" + android:layout_gravity="center" /> + +</LinearLayout> diff --git a/res/layout/preference_dialog_increasing_ring.xml b/res/layout/preference_dialog_increasing_ring.xml new file mode 100644 index 0000000..09bf181 --- /dev/null +++ b/res/layout/preference_dialog_increasing_ring.xml @@ -0,0 +1,71 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2008 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="match_parent"> + + <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical" + android:gravity="center_horizontal" + android:padding="10dip"> + + <ImageView android:id="@android:id/icon" + android:layout_width="wrap_content" + android:layout_height="wrap_content" /> + + <CheckBox android:id="@+id/increasing_ring" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:text="@string/checkbox_increasing_ring" + android:textAppearance="?android:attr/textAppearanceSmall" /> + + <TextView android:id="@+id/increasing_ring_min_volume_title" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:text="@string/increasing_ring_min_volume_title" /> + + <SeekBar android:id="@*android:id/seekbar" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:paddingTop="2dip" + android:paddingStart="14dip" + android:paddingEnd="14dip" /> + + <TextView android:id="@+id/increasing_ring_volume_notice" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:text="@string/increasing_ring_volume_notice" + android:paddingTop="8dip" /> + + <TextView android:id="@+id/increasing_ring_interval_title" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:text="@string/increasing_ring_interval_title" + android:paddingTop="8dip" /> + + <Spinner android:id="@+id/increasing_ring_interval" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:prompt="@string/increasing_ring_interval_title" + android:entries="@array/increasing_ring_interval_entries" + android:paddingTop="6dip" + android:paddingBottom="6dip" /> + </LinearLayout> + +</ScrollView> diff --git a/res/layout/preference_dialog_ringervolume.xml b/res/layout/preference_dialog_ringervolume.xml index 1643cab..5636a35 100644 --- a/res/layout/preference_dialog_ringervolume.xml +++ b/res/layout/preference_dialog_ringervolume.xml @@ -159,6 +159,31 @@ </LinearLayout> + <LinearLayout + android:id="@+id/link_volumes_section" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:paddingStart="8dip" + android:orientation="vertical" + android:gravity="center_vertical"> + <CheckBox + android:id="@+id/link_ring_and_volume" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="start" + android:text="@string/link_volume_ringtones" + android:textAppearance="?android:attr/textAppearanceSmall" + /> + <CheckBox + android:id="@+id/link_mutes" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="start" + android:text="@string/link_volume_mutes" + android:textAppearance="?android:attr/textAppearanceSmall" + /> + </LinearLayout> + <TextView android:textAppearance="?android:attr/textAppearanceSmall" android:layout_width="wrap_content" diff --git a/res/layout/preference_icon.xml b/res/layout/preference_icon.xml index 8e62508..a42ec3f 100644 --- a/res/layout/preference_icon.xml +++ b/res/layout/preference_icon.xml @@ -29,10 +29,11 @@ android:id="@+id/icon" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginStart="6dip" - android:layout_marginEnd="6dip" - android:layout_gravity="center" - android:contentDescription="@null" /> + android:layout_margin="4dip" + android:maxWidth="36dip" + android:maxHeight="36dip" + android:adjustViewBounds="true" + android:layout_gravity="center" /> <RelativeLayout android:layout_width="wrap_content" diff --git a/res/layout/preference_name.xml b/res/layout/preference_name.xml new file mode 100644 index 0000000..5b3ff86 --- /dev/null +++ b/res/layout/preference_name.xml @@ -0,0 +1,58 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2011 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<LinearLayout + xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:minHeight="?android:attr/listPreferredItemHeight" + android:gravity="center_vertical"> + + <LinearLayout + android:id="@+id/name_pref" + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:layout_weight="1" + android:gravity="center_vertical" + android:clickable="true" + android:focusable="true" + android:paddingStart="@*android:dimen/preference_item_padding_side" + android:paddingEnd="?android:attr/scrollbarSize" + android:background="?android:attr/selectableItemBackground"> + + <RelativeLayout + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginStart="@*android:dimen/preference_icon_minWidth" + android:layout_marginEnd="6dip" + android:layout_marginTop="6dip" + android:layout_marginBottom="6dip" + android:layout_weight="1"> + + <TextView + android:id="@+id/title" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:singleLine="true" + android:textAppearance="?android:attr/textAppearanceLarge" + android:ellipsize="marquee" + android:fadingEdge="horizontal"/> + + </RelativeLayout> + + </LinearLayout> + +</LinearLayout> diff --git a/res/layout/preference_profiles.xml b/res/layout/preference_profiles.xml new file mode 100644 index 0000000..916c2ee --- /dev/null +++ b/res/layout/preference_profiles.xml @@ -0,0 +1,96 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2011 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<LinearLayout + xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:minHeight="?android:attr/listPreferredItemHeight" + android:gravity="center_vertical"> + + <LinearLayout + android:id="@+id/profiles_pref" + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:layout_weight="1" + android:gravity="center_vertical" + android:clickable="true" + android:focusable="true" + android:background="?android:attr/selectableItemBackground"> + + <LinearLayout + android:id="@android:id/widget_frame" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:gravity="center_vertical|end" + android:orientation="vertical" /> + + <RelativeLayout + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginEnd="6dip" + android:layout_marginTop="6dip" + android:layout_marginBottom="6dip" + android:layout_weight="1"> + + <TextView + android:id="@+android:id/title" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:singleLine="true" + android:textAppearance="?android:attr/textAppearanceMedium" + android:ellipsize="marquee" + android:fadingEdge="horizontal"/> + + <TextView + android:id="@android:id/summary" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_below="@android:id/title" + android:layout_alignStart="@android:id/title" + android:paddingBottom="3dip" + android:visibility="gone" + android:textAppearance="?android:attr/textAppearanceSmall" + android:textSize="13sp" + android:textColor="?android:attr/textColorSecondary" + android:focusable="false" + android:maxLines="4" /> + + </RelativeLayout> + + </LinearLayout> + + <View + android:layout_width="2dip" + android:layout_height="match_parent" + android:layout_marginTop="5dip" + android:layout_marginBottom="5dip" + android:background="@android:drawable/divider_horizontal_dark" /> + + <ImageView + android:id="@+id/profiles_settings" + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:paddingStart="15dip" + android:paddingEnd="?android:attr/scrollbarSize" + android:src="@drawable/ic_sysbar_quicksettings" + android:contentDescription="@string/input_method_settings_button" + android:layout_gravity="center" + android:clickable="true" + android:focusable="true" + android:background="?android:attr/selectableItemBackground" /> + +</LinearLayout> diff --git a/res/layout/preference_profiles_widget.xml b/res/layout/preference_profiles_widget.xml new file mode 100644 index 0000000..ab63a10 --- /dev/null +++ b/res/layout/preference_profiles_widget.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2011 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<RadioButton + xmlns:android="http://schemas.android.com/apk/res/android" + android:id="@+android:id/checkbox" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center" + android:focusable="false" + android:clickable="false" /> diff --git a/res/layout/preference_streamvolume.xml b/res/layout/preference_streamvolume.xml new file mode 100644 index 0000000..f84ba6b --- /dev/null +++ b/res/layout/preference_streamvolume.xml @@ -0,0 +1,86 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2011 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:minHeight="?android:attr/listPreferredItemHeight" + android:gravity="center_vertical" > + + <LinearLayout + android:id="@+id/text_layout" + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:layout_weight="1" + android:gravity="center_vertical" + android:clickable="true" + android:focusable="true" + android:paddingStart="@*android:dimen/preference_item_padding_side" + android:paddingEnd="@*android:dimen/preference_item_padding_inner" + android:background="?android:attr/selectableItemBackground"> + + <RelativeLayout + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:paddingTop="6dip" + android:paddingBottom="6dip" + android:paddingStart="@*android:dimen/preference_icon_minWidth" > + + <TextView android:id="@+android:id/title" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:singleLine="true" + android:textAppearance="?android:attr/textAppearanceMedium" + android:ellipsize="marquee" + android:fadingEdge="horizontal" /> + + <TextView android:id="@+android:id/summary" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_below="@android:id/title" + android:layout_alignStart="@android:id/title" + android:textAppearance="?android:attr/textAppearanceSmall" + android:textColor="?android:attr/textColorSecondary" + android:maxLines="2" /> + + </RelativeLayout> + + </LinearLayout> + + <View + android:layout_width="2dip" + android:layout_height="match_parent" + android:layout_marginTop="5dip" + android:layout_marginBottom="5dip" + android:background="@android:drawable/divider_horizontal_dark" /> + + <!-- Preference should place its actual preference widget here. --> + <LinearLayout + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:minWidth="68dip" + android:gravity="center" + android:orientation="vertical" > + + <CheckBox + xmlns:android="http://schemas.android.com/apk/res/android" + android:id="@+android:id/profile_checkbox" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:clickable="true" + android:gravity="center" /> + </LinearLayout> + +</LinearLayout> diff --git a/res/layout/preference_time_range.xml b/res/layout/preference_time_range.xml new file mode 100644 index 0000000..52117d8 --- /dev/null +++ b/res/layout/preference_time_range.xml @@ -0,0 +1,80 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout + xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:minHeight="?android:attr/listPreferredItemHeight" + android:gravity="center_vertical"> + + <LinearLayout + android:id="@+id/start_time" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_weight="1" + android:orientation="vertical" + android:clickable="true" + android:focusable="true" + android:background="?android:attr/selectableItemBackground"> + + <TextView + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical" + android:paddingStart="16dip" + android:paddingTop="6dip" + android:text="@string/start_time_title" + android:focusable="false" + android:textAppearance="?android:attr/textAppearanceSmall" /> + + <TextView + android:id="@+id/start_time_text" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:gravity="center_horizontal" + android:orientation="vertical" + android:paddingBottom="6dip" + android:focusable="false" + android:textAppearance="?android:attr/textAppearanceMedium" /> + + </LinearLayout> + + <View + android:layout_width="1dip" + android:layout_height="match_parent" + android:layout_marginTop="5dip" + android:layout_marginBottom="5dip" + android:background="@android:drawable/divider_horizontal_dark" /> + + <LinearLayout + android:id="@+id/end_time" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_weight="1" + android:orientation="vertical" + android:clickable="true" + android:focusable="true" + android:background="?android:attr/selectableItemBackground"> + + <TextView + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical" + android:paddingStart="16dip" + android:paddingTop="6dip" + android:text="@string/end_time_title" + android:focusable="false" + android:textAppearance="?android:attr/textAppearanceSmall" /> + + <TextView + android:id="@+id/end_time_text" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:gravity="center_horizontal" + android:orientation="vertical" + android:paddingBottom="6dip" + android:focusable="false" + android:textAppearance="?android:attr/textAppearanceMedium" /> + + </LinearLayout> + +</LinearLayout> diff --git a/res/layout/profile_tabs.xml b/res/layout/profile_tabs.xml new file mode 100644 index 0000000..aa6575e --- /dev/null +++ b/res/layout/profile_tabs.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="utf-8"?> +<TabHost + xmlns:android="http://schemas.android.com/apk/res/android" + android:id="@android:id/tabhost" + android:layout_width="match_parent" + android:layout_height="match_parent" > + + <LinearLayout + android:orientation="vertical" + android:layout_width="match_parent" + android:layout_height="match_parent"> + + <include layout="@layout/tab_widget" /> + + <ListView + android:id="@android:id/list" + android:layout_width="0dp" + android:layout_height="0dp" + android:layout_weight="0"/> + + <FrameLayout + android:id="@+android:id/tabcontent" + android:layout_width="match_parent" + android:layout_height="0dp" + android:layout_weight="1"/> + + </LinearLayout> +</TabHost>
\ No newline at end of file diff --git a/res/layout/pulse_time_item.xml b/res/layout/pulse_time_item.xml new file mode 100644 index 0000000..9052caf --- /dev/null +++ b/res/layout/pulse_time_item.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8"?> + +<TextView xmlns:android="http://schemas.android.com/apk/res/android" + android:id="@+id/textViewName" + android:paddingStart="4dp" + android:paddingEnd="4dp" + android:paddingTop="8dp" + android:paddingBottom="8dp" + android:textAppearance="?android:attr/textAppearanceMedium" > + +</TextView> diff --git a/res/layout/qs_tile.xml b/res/layout/qs_tile.xml new file mode 100644 index 0000000..9ea88e3 --- /dev/null +++ b/res/layout/qs_tile.xml @@ -0,0 +1,24 @@ +<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:background="#AA222222" + android:orientation="vertical" + android:layout_width="wrap_content" + android:layout_height="110dp"> + <TextView + android:id="@+id/qs_text" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center" + android:gravity="center" + android:paddingStart="6dp" + android:paddingEnd="6dp" + android:paddingBottom="2dp" + android:drawablePadding="12dp" + android:textSize="12dp" + android:textStyle="normal" + android:textColor="#CCCCCC" + android:textAllCaps="true" + android:singleLine="true" + android:ellipsize="marquee" + android:fadingEdge="horizontal" + /> +</FrameLayout> diff --git a/res/layout/vpn_lockdown_editor.xml b/res/layout/vpn_lockdown_editor.xml index 933c5ec..8190018 100644 --- a/res/layout/vpn_lockdown_editor.xml +++ b/res/layout/vpn_lockdown_editor.xml @@ -22,8 +22,8 @@ <TextView android:layout_width="match_parent" android:layout_height="wrap_content" - android:paddingLeft="16dip" - android:paddingRight="16dip" + android:paddingStart="16dip" + android:paddingEnd="16dip" android:paddingTop="8dip" android:paddingBottom="8dip" android:textAppearance="?android:attr/textAppearanceMedium" diff --git a/res/values-da/arrays.xml b/res/values-da/arrays.xml index c3345b6..0509643 100644 --- a/res/values-da/arrays.xml +++ b/res/values-da/arrays.xml @@ -295,4 +295,47 @@ <item msgid="5077768429488260031">"Tillad aldrig"</item> <item msgid="1417929597727989746">"Tillad altid"</item> </string-array> + + <!-- CYANOGENMOD ADDITIONS --> + <!-- Volume Overlay options. --> + <string-array name="volume_overlay_entries"> + <item>Enkel</item> + <item>Udvidelig</item> + <item>Udvidet</item> + <item>Ingen</item> + </string-array> + + <!-- Performance settings --> + <string-array name="pref_zram_size_entries"> + <item>Slået fra</item> + <item>10%</item> + <item>18% (standard)</item> + <item>26%</item> + </string-array> + + <!-- Profile mode options. --> + <string-array name="profile_connection_entries"> + <item>Slå fra</item> + <item>Slå til</item> + </string-array> + + <string-array name="entries_network_widget"> + <item>2G/3G+2G</item> + <item>2G/Kun 3G</item> + <item>2G/Kun 3G/3G+2G</item> + </string-array> + + <string-array name="entries_flash_widget"> + <item>Normal</item> + <item>Høj</item> + </string-array> + + <string-array name="entries_status_bar_am_pm"> + <item>Normal</item> + <item>Lille</item> + <item>Ingen</item> + </string-array> + <!-- CYANOGENMOD ADDITIONS END --> + + </resources> diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml index b9aef25..98722bd 100644 --- a/res/values-da/strings.xml +++ b/res/values-da/strings.xml @@ -1830,4 +1830,744 @@ <string name="user_picture_title" msgid="7297782792000291692">"Foto-id"</string> <string name="cell_broadcast_settings" msgid="8415582011920085222">"Mobilmeddelelser"</string> <string name="cell_broadcast_settings_summary" msgid="3301339398950905913">"Vælg de typer af nødalarmer, der skal vises."</string> + + <!-- **** CYANOGENMOD ADDITIONS START **** --> + + <!-- Setting checkbox title for root access --> + <string name="root_access">Root-adgang</string> + <string name="root_access_warning_title">Tillad root-adgang?</string> + <string name="root_access_warning_message">At tillade applikationer at anmode om root-adgang er meget farligt og kan kompromittere dit systems sikkerhed!</string> + <string name="root_access_none">Deaktiveret</string> + <string name="root_access_apps">Kun apps</string> + <string name="root_access_adb">Kun ADB</string> + <string name="root_access_all">Apps og ADB</string> + + <string name="ok">OK</string> + + <!-- Quiet hours --> + <string name="quiet_hours_title">Stille timer</string> + <string name="quiet_hours_summary">Konfigurér timerne, hvor enheden skal være stille</string> + <string name="quiet_hours_note_title">Bemærk</string> + <string name="quiet_hours_note_summary">Indgående opkald vil opføre sig som normalt i stille timer</string> + <string name="quiet_hours_enabled">Aktivér stille timer</string> + <string name="quiet_hours_enabled_on">Stille timer vil blive håndhævet</string> + <string name="quiet_hours_enabled_off">Meddelelserne vil fungere som normalt</string> + <string name="quiet_hours_start">Start af stille timer</string> + <string name="quiet_hours_start_summary">Hvornår skal håndhævelsen af stille timer starte</string> + <string name="quiet_hours_end">Stop af stille timer</string> + <string name="quiet_hours_end_summary">Hvornår skal håndhævelsen af stille timer stoppe</string> + <string name="quiet_hours_mute">Lydløse meddelelser</string> + <string name="quiet_hours_mute_on">Ingen lyde vil blive afspillet</string> + <string name="quiet_hours_mute_off">Lyde afspilles som normalt</string> + <string name="quiet_hours_still">Deaktiver vibrationer</string> + <string name="quiet_hours_still_on">Enheden vil ikke vibrere</string> + <string name="quiet_hours_still_off">Enheden vil vibrere normalt</string> + <string name="quiet_hours_dim">Deaktiver meddelelses-LED</string> + <string name="quiet_hours_dim_on">Meddelelses-LED vil blive deaktiveret</string> + <string name="quiet_hours_dim_off">Meddelelses-LED vil fungere som normalt</string> + <string name="quiet_hours_haptic">Deaktiver berøringsvibration</string> + <string name="quiet_hours_haptic_on">Berøringsvibration vil blive deaktiveret</string> + <string name="quiet_hours_haptic_off">Berøringsvibration vil fungere som normalt</string> + <string name="quiet_hours_active_from">Aktiv fra</string> + <string name="quiet_hours_active_to">til</string> + + <!-- time range preference --> + <string name="start_time_title">Start</string> + <string name="end_time_title">Slut</string> + + <!-- Hostname setting --> + <string name="device_hostname">Enhedens værtsnavn</string> + + <!-- About phone screen, setting option name--> + <string name="mod_version">CyanogenMod-version</string> + <string name="mod_version_default">Ukendt</string> + <!-- About phone screen, build date of ROM --> + <string name="build_date">Kørselsdato</string> + <string name="build_date_default">2012-01-01-0000</string> + <!-- About device screen, Cpu info. --> + <string name="cpu_info">CPU</string> + <!-- About phone screen, Free memory info --> + <string name="mem_info">Hukommelse</string> + + <!-- Anonymous Statistics --> + <!-- About device screen, list item title. Takes the user to the screen about opting in or out of anonymous statistics. --> + <string name="anonymous_statistics_title">CyanogenMod-statistikker</string> + <string name="anonymous_statistics_summary">Hjælp med at gøre CyanogenMod bedre ved at deltage i rapportering af anonyme statistikker</string> + <string name="anonymous_statistics_warning_title">Om</string> + <string name="anonymous_statistics_warning">Deltagelse af CyanogenMod-statistikker vil tillade ikke-personlige data, der skal forelægges for udviklerne af CyanogenMod, at spore unikke installationer på tværs af enheder. De indsendte oplysninger omfatter en entydig indikator, som ikke kompromitterer dit privatliv eller personlige data. Dataene indsendes under hver opstart.\n\nFor et eksempel på de data, der er indsendt, skal du trykke på Få vist data.</string> + <string name="enable_reporting_title">Aktivér rapportering</string> + <string name="preview_data_title">Få vist data</string> + <string name="preview_data_summary">%s</string> + <string name="view_stats_title">Vis statistikker</string> + <string name="anonymous_learn_more">Læs mere</string> + + <!-- Anonymous Statistics - Notification --> + <string name="anonymous_notification_desc">Aktivér eller deaktiver CyanogenMod-statistikker</string> + + <!-- Anonymous Statistics - Preview --> + <string name="preview_id_title">Unikt ID</string> + <string name="preview_device_title">Enhed</string> + <string name="preview_version_title">Version</string> + <string name="preview_country_title">Land</string> + <string name="preview_carrier_title">Operatør</string> + + <!-- INTERFACE Settings --> + <!-- Settings main menu category heading. Interface (Launcher, Themes, System). [CHAR LIMIT=40] --> + <string name="header_category_interface">BRUGERFLADE</string> + + <!-- Launcher settings --> + <string name="launcher_settings_title">Launcher</string> + + <!-- Themes settings --> + <string name="themes_settings_title">Temaer</string> + + <!-- System Interface settings --> + <string name="system_settings_title">System</string> + <string name="system_interface_title">Systembrugerflade</string> + + <!-- Notification Drawer --> + <string name="notification_drawer_title">Meddelelsespanel</string> + + <!-- Lock Screen --> + <string name="lock_screen_title">Skærmlås</string> + + <!-- Lock Screen Shortcuts --> + <string name="lockscreen_target_info">Træk glideren hen til målet for at tildele en genvej</string> + <string name="lockscreen_target_title">Genveje</string> + <string name="lockscreen_target_summary">Se eller ændre egne genveje for skærmlåsen</string> + <string name="lockscreen_target_reset">Genveje for skærmlåsen nulstilles til standard</string> + <string name="lockscreen_target_save">Genveje for skærmlåsen er gemt</string> + <string name="lockscreen_target_reset_title">Nulstil</string> + <string name="lockscreen_target_reset_message">Slet egne genveje for skærmlåsen og nulstil til standard?</string> + <string name="lockscreen_target_empty">Tom</string> + <string name="lockscreen_target_edit_title">Rediger genvej og ikon</string> + <string name="lockscreen_target_edit_msg">Vælg eller ændre den ønskede app eller aktivitet samt det tilhørende ikon</string> + + <!-- Lock screen vibrate settings --> + <string name="lockscreen_vibrate_enabled_title">Vibrér</string> + <string name="lockscreen_vibrate_enabled_head">Vibrér ved oplåsning</string> + + <!-- Lock screen misc. settings --> + <string name="lockscreen_battery_status_title">Batteristatus</string> + <string name="lockscreen_battery_status_charging">Kun under opladning</string> + <string name="lockscreen_battery_status_alwayson">Altid til</string> + + <!-- Profiles settings --> + <string name="profiles_settings_title">Profiler</string> + <string name="profiles_general_title">Generelt</string> + <string name="profiles_add">Tilføj</string> + <string name="profile_menu_delete">Slet</string> + <string name="profile_settings_title">Profil</string> + <string name="profile_empty_list_profiles_off">For at konfigurere og bruge System-profiler, skal du slå Profiler til.</string> + + <!-- Add Profile --> + <string name="add_profile_dialog_title">Opret ny profil</string> + <string name="profile_name_title">Navn</string> + <string name="profile_profile_name_prompt">Angiv et navn for den nye profil</string> + <string name="menu_new_profile">Ny profil</string> + <string name="menu_new_profile_summary">Tilføj og konfigurere en ny profil</string> + <string name="new_profile_name"><ny profil></string> + + <!-- Rename Dialog --> + <string name="rename_dialog_title">Omdøb</string> + <string name="rename_dialog_message">Angiv et nyt navn</string> + <string name="duplicate_profile_name">Dupliker profil navn!</string> + <string name="duplicate_appgroup_name">Dupliker app-gruppenavn!</string> + + <!-- Reset Profiles --> + <string name="profile_reset_title">Nulstil</string> + <string name="profile_reset_message">Slet egne profiler samt app-grupper og nulstil dem til standard?</string> + + <!-- Delete confimation messages --> + <string name="profile_delete_confirm">Slet denne profil?</string> + <string name="profile_app_delete_confirm">Fjern denne app?</string> + <string name="profile_cannot_delete">Den aktive profil kan ikke slettes</string> + + <!-- Profile Config screen PreferenceGroup titles --> + <string name="profile_connectionoverrides_title">Tilsidesættelser for forbindelse</string> + <string name="profile_volumeoverrides_title">Tilsidesættelser for lydstyrke</string> + <string name="profile_vibratoroverrides_title">Tilsidesættelser for vibrator</string> + <string name="connection_state_disabled">Deaktiver</string> + <string name="connection_state_enabled">Aktivér</string> + <string name="volume_override_summary">Indstil til</string> + <string name="vibrator_state_disabled">Deaktiver</string> + <string name="vibrator_state_enabled">Aktivér</string> + <string name="vibrator_state_silent">Kun når lydløs</string> + + <!-- Menu item for managing profiles --> + <string name="profile_profiles_manage">Profiler</string> + <string name="profile_profile_manage">Administrer profil</string> + <string name="profile_applist_manage">App-liste</string> + <string name="profile_appgroups_manage">App-grupper</string> + <string name="profile_appgroup_manage">Administrer app-gruppe</string> + + <!-- Profile settings screen, section header for settings related to notification profiles --> + <string name="profile_settings">Profilindstillinger</string> + <string name="profile_name">Navn</string> + + <!-- Profile Settings sound modes labels --> + <string name="sound_mode">Meddelelsestilstand</string> + <string name="ringer_mode">Ringetilstand</string> + <string name="lights_mode">Lystilstand</string> + <string name="vibrate_mode">Vibratortilstand</string> + <string name="choose_soundtone">Vælg meddelelsestone</string> + <string name="choose_ringtone">Vælg ringetone</string> + + <!-- Sound settings screen, setting option name to pick ringtone (a list dialog comes up)--> + <string name="soundtone_title">Meddelelsestone</string> + <string name="soundtone_summary">""</string> + + <!-- Profiles - system settings --> + <string name="profile_system_settings_title">Systemindstillinger</string> + <string name="profile_lockmode_title">Skærmlåstilstand</string> + <string name="profile_lockmode_default">Standard</string> + <string name="profile_lockmode_insecure">Usikker</string> + <string name="profile_lockmode_disabled">Deaktiveret</string> + <string name="profile_lockmode_default_summary">Anvend systemets standard</string> + <string name="profile_lockmode_insecure_summary">Anvend usikker skærmlås</string> + <string name="profile_lockmode_disabled_summary">Skærmlås er deaktiveret</string> + <string name="profile_airplanemode_title">Flytilstand</string> + <string name="profile_disable_screen_lock_summary">Deaktiver skærmlåsen når denne profil er aktiv</string> + + <string name="vibrator_type_ringer">Opkald</string> + <string name="vibrator_type_notification">Meddelelser</string> + + <!-- Connection override toggles (not all are used at this time ) --> + <string name="possibleButtons">Mulige knapper</string> + <string name="toggleWifi">Wi-Fi</string> + <string name="toggleWifiAp">Wi-Fi Hotspot</string> + <string name="toggleBluetooth">Bluetooth</string> + <string name="toggleGPS">GPS</string> + <string name="toggleData">Mobilt netværk</string> + <string name="toggleSync">Synkronisering</string> + <string name="toggle2g3g">2G/3G</string> + <string name="toggleSound">Ringetilstand</string> + <string name="toggleBrightness">Lysstyrke</string> + <string name="toggleAutoRotate">Retning</string> + <string name="toggleScreenTimeout">Timeout for skærmen</string> + <string name="toggleAirplane">Flytilstand</string> + <string name="toggleFlashlight">Lommelygte</string> + <string name="toggleLockScreen">Skærmlås</string> + <string name="toggleWimax">WiMax</string> + + <!-- Screen security - Screen security --> + <string name="screen_security_category">Skærmsikkerhed</string> + <string name="screen_security_title">Skærmlås</string> + <string name="screen_security_summary">Se eller ændre indstillingerne for skærmlåsen, forsinkelse og timeout</string> + <string name="additional_options_title">Yderligere indstillinger</string> + <string name="unlock_menu_unlock_title">Menu-oplåsning</string> + <string name="unlock_menu_unlock_summary">Tryk på knappen Menu låser enheden op</string> + <string name="unlock_home_unlock_title">Start-oplåsning</string> + <string name="unlock_home_unlock_summary">Tryk på knappen Start låser enheden op</string> + <string name="unlock_quick_unlock_control_title">Hurtig-oplåsning</string> + <string name="unlock_quick_unlock_control_summary">Lås automatisk op, når det korrekte PIN/kodeord er indtastet</string> + + <!-- Slide lock delay --> + <string name="delay_and_timeout_title">Låseforsinkelse</string> + <string name="slide_lock_delay_title">Forsinket skærmlås</string> + <string name="slide_lock_timeout_delay_title">Forsinkelse efter timeout</string> + <string name="slide_lock_screenoff_delay_title">Forsinkelse efter slukket</string> + <string name="slide_lock_delay_none">Ingen</string> + <string name="slide_lock_delay_1s">1 sekund</string> + <string name="slide_lock_delay_5s">5 sekunder</string> + <string name="slide_lock_delay_10s">10 sekunder</string> + <string name="slide_lock_delay_15s">15 sekunder</string> + <string name="slide_lock_delay_30s">30 sekunder</string> + <string name="slide_lock_delay_1m">1 minut</string> + <string name="slide_lock_delay_5m">5 minutter</string> + <string name="slide_lock_delay_10m">10 minutter</string> + <string name="slide_lock_delay_30m">30 minutter</string> + + <!-- Performance settings --> + <string name="performance_settings_title">Ydeevne</string> + + <!-- Performance Settings : Warning dialog --> + <string name="performance_settings_warning_title">Fortsæt med forsigtighed</string> + <string name="performance_settings_warning">Disse indstillinger er inkluderet for at eksperimentere og eventuelle ændringer til dem har potentiale til at forårsage ustabilitet, nedbrud, tab af data eller hardware fejl.\n\nVi beder dig om ikke at indsende fejlrapporter, hvis nogen af disse indstillinger er blevet ændret fra standardindstillingerne.</string> + + <!-- Performance Settings : Processor Settings --> + <!-- Performance Settings : Processor settings title --> + <string name="processor_title">Processor</string> + <!-- Performance Settings : Processor settings summary. --> + <string name="processor_summary">Guvernør- og frekvensindstillinger</string> + + <!-- Performance Settings : Processor settings sub items --> + <string name="cpu_cur_freq_title">Aktuel CPU-frekvens</string> + <string name="cpu_governors_title">CPU guvernør</string> + <string name="cpu_governors_summary">%S</string> + <string name="cpu_min_freq_title">Laveste CPU-frekvens</string> + <string name="cpu_min_freq_summary">%s</string> + <string name="cpu_max_freq_title">Højeste CPU-frekvens</string> + <string name="cpu_max_freq_summary">%s</string> + <string name="cpu_set_on_boot">Indstil ved opstart</string> + <string name="cpu_set_on_boot_summary">Gendan CPU-indstillinger ved opstart</string> + + <!-- Performance Settings : I/O scheduler settings title --> + <string name="io_scheds_title">I/O-planlægger</string> + <!-- Performance Settings : I/O scheduler settings summary. --> + <string name="io_scheds_summary">Ændre I/O-planlægger</string> + + <!-- Performance Settings : I/O scheduler settings sub items --> + <string name="io_sched_title">I/O-planlægger</string> + <string name="io_sched_summary">%S</string> + <string name="io_sched_set_on_boot">Indstil ved opstart</string> + <string name="io_sched_set_on_boot_summary">Gendan indstillinger for I/O-planlægger ved opstart</string> + + <!-- Memory Management --> + <string name="memory_management_title">Hukommelsesstyring</string> + <string name="memory_management_summary">Tilpas brugen af hukommelse for at ændre systemets ydeevne</string> + <!-- zRam --> + <string name="pref_zram_title">zRam</string> + <string name="pref_zram_summary">Komprimer hukommelse for øget virtuel kapacitet (kræver genstart)</string> + <!-- KSM --> + <string name="pref_ksm_title">KSM</string> + <string name="pref_ksm_summary">Reducerer fysisk hukommelseskrav og forbedrer ydeevnen</string> + <!-- Purgeable Assets --> + <string name="pref_purgeable_assets_title">Tillad rensning af aktiver</string> + <string name="pref_purgeable_assets_summary">Rensning af bitmap hukommelsesaktiver gør det muligt at frigøre mere RAM når det er nødvendigt (kræver genstart)</string> + + <!-- Performance Settings : Dithering --> + <string name="pref_use_dithering_title">Overflade-forbedring</string> + <string name="dithering_no_dither">Deaktiver flydende gradienter</string> + <string name="dithering_color_banding">Løs farveproblemer (standard)</string> + <string name="dithering_blur_effect">Løs farveproblemer og sløring</string> + + <!-- Performance Settings : 16bpp Alpha --> + <string name="pref_use_16bpp_alpha_title">16bit gennemsigtighed</string> + <string name="pref_use_16bpp_alpha_summary">Bedre grafisk ydeevne, men lavere kvalitet og kan give visuelle artefakter (kræver genstart)</string> + + <!-- Display : Rotation --> + <string name="display_rotation_title">Rotation</string> + <string name="display_rotation_disabled">Deaktiveret</string> + <string name="display_rotation_unit">grader</string> + <string name="display_rotation_category_title">Rotationstilstande</string> + <string name="display_rotation_0_title">0 grader</string> + <string name="display_rotation_90_title">90 grader</string> + <string name="display_rotation_180_title">180 grader</string> + <string name="display_rotation_270_title">270 grader</string> + + <!-- Lock screen shortcuts --> + <string name="picker_activities">Aktiviteter</string> + <string name="select_custom_app_title">Vælg brugerdefineret app</string> + <string name="select_custom_activity_title">Vælg brugerdefineret aktivitet</string> + <string name="icon_picker_choose_icon_title">Vælg ikon</string> + <string name="icon_picker_alarm">Alarm</string> + <string name="icon_picker_browser">Browser</string> + <string name="icon_picker_calendar">Kalender</string> + <string name="icon_picker_camera">Kamera</string> + <string name="icon_picker_chrome">Chrome</string> + <string name="icon_picker_email">Email</string> + <string name="icon_picker_email2">Email Holo</string> + <string name="icon_picker_facebook">Facebook</string> + <string name="icon_picker_gallery">Galleri</string> + <string name="icon_picker_google_small">Google (lille)</string> + <string name="icon_picker_googleplus">Google Plus</string> + <string name="icon_picker_googletalk">Google Talk</string> + <string name="icon_picker_maps">Kort</string> + <string name="icon_picker_movie">Film</string> + <string name="icon_picker_music">Musik</string> + <string name="icon_picker_nav_normal">Navigation</string> + <string name="icon_picker_phone">Telefon</string> + <string name="icon_picker_podcast">Podcast</string> + <string name="icon_picker_rss">Rss</string> + <string name="icon_picker_search">Søg</string> + <string name="icon_picker_sms">Beskeder</string> + <string name="icon_picker_twitter">Twitter</string> + + <!-- String for IconPicker --> + <string name="icon_picker_title">Vælg kilde for ikon</string> + <string name="icon_picker_system_icons_title">Systemikoner</string> + <string name="icon_picker_gallery_title">Galleri</string> + <string name="icon_picker_pack_title">Ikonpakke</string> + + <!-- Sound settings screen, the title of the volume bar to adjust the minimum increasing ring volume --> + <string name="increasing_ring_title">Stigende ringetone</string> + <string name="checkbox_increasing_ring">Aktivér</string> + <string name="increasing_ring_min_volume_title">Opstartslydstyrke</string> + <string name="increasing_ring_volume_notice">Bemærk:\nDa opstartslydstyrken er sat højere end lydstyrken for ringetonen, bliver den afspillet med ringetonens lydstyrke.</string> + <string name="increasing_ring_interval_title">Forøg intervallet</string> + <string name="increasing_ring_interval_eachring">For hver ring</string> + <string name="increasing_ring_interval_half_second">0.5 sekunder</string> + <string name="increasing_ring_interval_1second">1 sekund</string> + <string name="increasing_ring_interval_2seconds">2 sekunder</string> + <string name="increasing_ring_interval_3seconds">3 sekunder</string> + <string name="increasing_ring_interval_5seconds">5 sekunder</string> + <string name="increasing_ring_interval_10seconds">10 sekunder</string> + + <string name="profile_write_nfc_tag">Skriv til NFC-tag</string> + <string name="profile_write_touch_tag">Tryk på tag for at skrive</string> + <string name="profile_write_success">Skrivning af tag lykkedes</string> + <string name="profile_write_failed">Skrivning af tag mislykkedes!</string> + <string name="profile_selected">Profil valgt: %1$s</string> + <string name="profile_nfc_text">At skrive en profil til en NFC-tag, giver mulighed for at trykke på tag, for at vælge profilen. At trykke én gang til, vil vælge den tidligere valgte profil.</string> + <string name="profile_unknown_nfc_tag">Ukendt profil</string> + <string name="profile_add_nfc_text">Dette NFC-tag refererer til en ukendt profil. Fastgørelse af denne NFC-tag til en eksisterende profil, vil give mulighed for at vælge profilen i fremtiden.</string> + <string name="profile_select">Vælg profil</string> + + <string name="link_volume_ringtones">Forbind ringe- og meddelelseslydstyrke</string> + <string name="link_volume_mutes">Forbind lydløs ringe- og meddelelseslydstyrke</string> + + <!-- Display settings screen, notification light settings --> + <string name="notification_light_general_title">Generelt</string> + <string name="notification_light_applist_title">Applikationer</string> + <string name="notification_light_phonelist_title">Telefon</string> + <string name="notification_light_use_custom">Anvend egne værdier</string> + <string name="notification_light_enabled">Aktiveret</string> + <string name="notification_light_disabled">Deaktiveret</string> + <string name="notification_light_default_value">Standard</string> + <string name="notification_light_missed_call_title">Ubesvarede opkald</string> + <string name="notification_light_voicemail_title">Telefonsvarer</string> + + <!-- Notification light dialogs --> + <string name="edit_light_settings">Rediger LED-indstillinger</string> + <string name="pulse_speed_title">Blinklængde og hastighed</string> + <string name="picker_arrow">→</string> + <string name="default_time">Normal</string> + <string name="custom_time">Egen</string> + <string name="dialog_test">Test</string> + <string name="dialog_delete_title">Slet</string> + <string name="dialog_delete_message">Fjern valgte element?</string> + <string name="dialog_test_message">Sluk for skærmen for at teste den valgte meddelelse eller afvis denne dialogboks for at stoppe testen</string> + <string name="dialog_test_button">Afvis</string> + + <!-- Values for the notification light pulse spinners --> + <string name="pulse_length_always_on">Altid tændt</string> + <string name="pulse_length_very_short">Meget kort</string> + <string name="pulse_length_short">Kort</string> + <string name="pulse_length_normal">Normal</string> + <string name="pulse_length_long">Lang</string> + <string name="pulse_length_very_long">Meget lang</string> + <string name="pulse_speed_very_fast">Meget hurtig</string> + <string name="pulse_speed_fast">Hurtig</string> + <string name="pulse_speed_normal">Normal</string> + <string name="pulse_speed_slow">Langsom</string> + <string name="pulse_speed_very_slow">Meget langsom</string> + + <!-- Battery light settings --> + <string name="battery_light_title">Batteri-LED</string> + <string name="battery_low_pulse_title">Blink ved lavt batteriniveau</string> + <string name="battery_light_list_title">Farver</string> + <string name="battery_light_low_color_title">Lavt batteriniveau</string> + <string name="battery_light_medium_color_title">Oplader</string> + <string name="battery_light_full_color_title">Fuldt opladt</string> + + <!-- Sound settings screen --> + <string name="volume_overlay_title">Lydstyrkepanel</string> + <string name="volbtn_music_controls_title">Styre musik med lydstyrkeknap</string> + <string name="volbtn_music_controls_summary">Når skærmen er slukket, vil langt tryk på lydstyrkeknapperne søge musiknumre</string> + <string name="headset_connect_player_title">Start musik-app ved tilslutning</string> + <string name="volume_ring_only_description">Ringetoner</string> + <string name="ring_mode_title">Lydtilstande</string> + <string name="ring_mode_normal">Normal</string> + <string name="ring_mode_vibrate">Vibrér</string> + <string name="ring_mode_mute">Lydløs</string> + + <!-- Hardware keys --> + <string name="hardware_keys_title">Hardwareknapper</string> + <string name="hardware_keys_bindings_title">Knap-handlinger</string> + <string name="hardware_keys_enable_custom_title">Aktivér brugerdefinerede handlinger</string> + <string name="hardware_keys_home_long_press_title">Start (langt tryk)</string> + <string name="hardware_keys_menu_press_title">Menu</string> + <string name="hardware_keys_menu_long_press_title">Menu (langt tryk)</string> + <string name="hardware_keys_assist_press_title">Søg</string> + <string name="hardware_keys_assist_long_press_title">Søg (langt tryk)</string> + <string name="hardware_keys_app_switch_press_title">App-skifter</string> + <string name="hardware_keys_app_switch_long_press_title">App-skifter (langt tryk)</string> + <string name="hardware_keys_show_overflow_title">Vis handlingsknap</string> + <string name="hardware_keys_show_overflow_summary">Få vist en 3-punkts handlingsknap i apps</string> + <string name="hardware_keys_show_overflow_toast_enable">Handlingsknappen er muligvis ikke synlig indtil apps genstartes</string> + <string name="hardware_keys_show_overflow_toast_disable">Handlingsknappen er muligvis ikke skjult indtil apps genstartes</string> + <string name="hardware_keys_action_nothing">Ingen handling</string> + <string name="hardware_keys_action_menu">Åbn/luk menu</string> + <string name="hardware_keys_action_app_switch">Seneste apps</string> + <string name="hardware_keys_action_search">Søgeassistent</string> + <string name="hardware_keys_action_voice_search">Stemmesøgning</string> + <string name="hardware_keys_action_in_app_search">Søgning i app</string> + + <!-- Power Widget --> + <string name="power_widget_title">Strømwidget</string> + <string name="title_expanded_widget">Strømwidget</string> + <string name="power_widget_behavior">Widget-adfærd</string> + <string name="title_expanded_hide_onchange">Luk panel ved ændring</string> + <string name="title_expanded_hide_indicator">Skjul indikatorer</string> + <string name="title_expanded_hide_scrollbar">Skjul rullepanel</string> + <string name="title_widget_picker">Widget-knapper</string> + <string name="summary_widget_picker">Se eller ændre de viste knapper</string> + <string name="title_widget_order">Rækkefølge for knapper</string> + <string name="summary_widget_order">Se eller ændre rækkefølgen på knapperne</string> + <string name="title_buttons">Knapper</string> + <string name="title_toggle_wifi">Wi-Fi</string> + <string name="title_toggle_bluetooth">Bluetooth</string> + <string name="title_toggle_gps">GPS</string> + <string name="title_toggle_sound">Lyd</string> + <string name="title_toggle_brightness">Lysstyrke</string> + <string name="title_toggle_sync">Synkronisering</string> + <string name="title_toggle_wifiap">Wi-Fi Hotspot</string> + <string name="title_toggle_screentimeout">Timeout for skærmen</string> + <string name="title_toggle_mobiledata">Mobilt netværk</string> + <string name="title_toggle_lockscreen">Skærmlås</string> + <string name="title_toggle_networkmode">2G/3G</string> + <string name="title_toggle_autorotate">Retning</string> + <string name="title_toggle_airplane">Flytilstand</string> + <string name="title_toggle_flashlight">Lommelygte</string> + <string name="title_toggle_sleep">Dvale</string> + <string name="title_toggle_media_play_pause">Medier: Afspil/Pause</string> + <string name="title_toggle_media_previous">Medier: Gå til forrige</string> + <string name="title_toggle_media_next">Medier: Gå til næste</string> + <string name="title_toggle_lte">LTE</string> + <string name="title_toggle_wimax">WiMax</string> + <string name="title_button_modes">Knap-tilstande</string> + <string name="pref_brightness_mode_title">Lysstyrke-tilstande</string> + <string name="pref_brightness_mode_summary">Se eller ændre lysstyrke-tilstande</string> + <string name="cm_brightness_mode_auto">Automatisk</string> + <string name="cm_brightness_mode_dim">Dæmpet</string> + <string name="pref_network_mode_title">Netværkstilstande</string> + <string name="pref_screentimeout_mode_title">Skærmens timeout-tilstande</string> + <string name="pref_ring_mode_title">Lydtilstande</string> + <string name="pref_ring_mode_summary">Se eller ændre lydtilstande</string> + <string name="cm_sound_mode_silent">Lydløs</string> + <string name="cm_sound_mode_vibrate">Vibrer</string> + <string name="cm_sound_mode_sound">Lyd</string> + <string name="cm_sound_mode_soundVibrate">Lyd + Vibrer</string> + <string name="pref_flash_mode_title">Lommelygte</string> + <string name="expanded_haptic_feedback_title">Berøringsvibration</string> + + <!-- Kill app long-press back --> + <string name="kill_app_longpress_back">Luk app på knappen Tilbage</string> + <string name="kill_app_longpress_back_summary">Luk kørende app ved langt tryk på knappen Tilbage</string> + + <!-- Change Log strings --> + <string name="changelog_title">Vis ændringslog</string> + <string name="changelog_loading">Indlæser ændringslog...</string> + <string name="changelog_error">Kunne ikke indlæse ændringsloggen</string> + <string name="changelog_unknown">Ukendt</string> + <string name="changelog_version">Version</string> + + <!-- Power menu enable disable --> + <string name="power_menu_title">Tænd/sluk-menu</string> + <string name="power_menu_reboot_title">Genstartsmenu</string> + <string name="power_menu_screenshot_title">Skærmbillede</string> + <string name="power_menu_expanded_desktop">Udvidet skrivebord</string> + <string name="power_menu_profiles_title">Profilskifter</string> + <string name="power_menu_airplane_title">Flytilstand</string> + <string name="power_menu_user_title">Brugerskifter</string> + <string name="power_menu_sound_title">Lydpanel</string> + + <!-- CM Updater --> + <string name="cmupdate_settings_title">CyanogenMod-opdateringer</string> + <string name="cmupdate_settings_summary">Tjek for, se eller installér tilgængelige opdateringer</string> + + <!-- Advanced, Device specific (DeviceParts) settings --> + <string name="advanced_settings_title">Avanceret</string> + + <!-- Whether to display IME switcher notifcation --> + <string name="ime_switcher_notify">IME-vælgenotifikation</string> + <string name="ime_switcher_notify_summary">Vis vælgenotifikation for inputmetode</string> + + <!-- Status bar --> + <string name="status_bar_title">Statuslinje</string> + <string name="status_bar_clock_title">Ur</string> + <string name="status_bar_general_title">Generelt</string> + <string name="status_bar_show_clock_title">Vis ur</string> + <string name="status_bar_am_pm_title">AM/PM</string> + <string name="status_bar_am_pm_info">24-timers ur er aktiveret</string> + <string name="status_bar_battery_title">Batteristatus</string> + <string name="status_bar_toggle_brightness">Lysstyrkeregulering</string> + <string name="status_bar_toggle_brightness_summary">Juster lysstyrken ved at glide på tværs af statuslinjen</string> + <string name="status_bar_toggle_info">Automatisk lysstyrke er aktiveret</string> + <string name="status_bar_signal_text_title">Signalstyrke</string> + <string name="status_bar_style_icon">Ikon</string> + <string name="status_bar_style_hidden">Skjult</string> + <string name="status_bar_signal_text_show_text">Tekst</string> + <string name="status_bar_battery_status_percentage">Procent</string> + <string name="status_bar_battery_status_circle">Cirkel</string> + <string name="status_bar_battery_status_circle_percentage">Cirkel med procent</string> + + <!-- Status bar notification count --> + <string name="status_bar_notif_count_title">Vis meddelelsestæller</string> + <string name="status_bar_notif_count_summary">Vis antallet af uafsluttede meddelelser</string> + + <!-- Wakeup options --> + <string name="display_category_wakeup_options_title">Vække-indstillinger</string> + <string name="pref_volume_wake_title">Vække med lydstyrkeknap</string> + <string name="pref_volume_wake_summary">Ved at trykke på lydstyrkeknappen op/ned, vil vække enheden</string> + + <!-- Setting checkbox summary for displaying USB debugging notification --> + <string name="adb_notify">Meddelelse for USB-fejlretning</string> + <string name="adb_notify_summary">Vis en meddelelse, når USB-fejlretning er tilsluttet</string> + + <!-- Launches Dev Tools --> + <string name="development_tools_title">Startværktøjer</string> + + <!-- Warning for Adb over Network --> + <string name="adb_over_network">ADB via netværk</string> + <string name="adb_over_network_summary">Aktivér TCP/IP fejlfinding på netværksenheder (Wi-Fi, USB-netværk). Denne indstilling nulstilles ved genstart</string> + <string name="adb_over_network_warning">ADVARSEL: Når ADB via netværk er aktiveret, er din telefon åben for indtrængen på alle de tilsluttede netværk, herunder GSM-data-netværk!\n\nBrug kun denne funktion, når du er tilsluttet til betroede netværk.\n\nØnsker du virkelig at aktivere denne funktion?</string> + + <!-- Lock screen misc. settings --> + <string name="lockscreen_buttons_title">Knaphandlinger</string> + <string name="lockscreen_buttons_summary">Se eller ændre låseskærmens knaphandlinger</string> + <string name="lockscreen_long_press_back_title">Langt tryk på knappen Tilbage</string> + <string name="lockscreen_long_press_home_title">Langt tryk på knappen Start</string> + <string name="lockscreen_long_press_menu_title">Langt tryk på knappen Menu</string> + <string name="lockscreen_buttons_no_action">Ingen handling</string> + <string name="lockscreen_buttons_flashlight">Lommelygte</string> + <string name="lockscreen_buttons_next">Næste sang</string> + <string name="lockscreen_buttons_previous">Forrige sang</string> + <string name="lockscreen_buttons_playpause">Afspil/Pause musik</string> + <string name="lockscreen_buttons_toggle_sound">Ringetilstand</string> + + <!-- Quick settings panel --> + <string name="quick_settings_panel_title">Hurtige indstillinger-panel</string> + <string name="quick_settings_title">Hurtige indstillinger</string> + <string name="title_static_tiles">Statiske felter</string> + <string name="tile_picker_title">Felter og layout</string> + <string name="tile_picker_summary">Vis, vælg eller skift de viste felters layout</string> + <string name="tile_choose_title">Vælg et felt</string> + + <string name="title_tile_airplane">Flytilstand</string> + <string name="title_tile_battery">Batteristatistik</string> + <string name="title_tile_bluetooth">Bluetooth</string> + <string name="title_tile_brightness">Lysstyrke</string> + <string name="title_tile_sleep">Gå i dvale</string> + <string name="title_tile_gps">GPS</string> + <string name="title_tile_torch">Lommelygte</string> + <string name="title_tile_lockscreen">Skærmlås</string> + <string name="title_tile_lte">LTE</string> + <string name="title_tile_mobiledata">Mobildata</string> + <string name="title_tile_profile">Profil</string> + <string name="title_tile_autorotate">Orientering</string> + <string name="title_tile_settings">Indstillinger</string> + <string name="title_tile_sound">Lyd</string> + <string name="title_tile_sync">Synkronisering</string> + <string name="title_tile_wifiap">Wi-Fi AP</string> + <string name="title_tile_wifi">Wi-Fi</string> + <string name="title_tile_wimax">WiMAX</string> + <string name="title_tile_user">Brugerskifter</string> + <string name="title_tile_networkmode">2G/3G</string> + + <string name="title_tile_nfc">NFC</string> + <string name="title_tile_screen_timeout">Skærm-timeout</string> + <string name="title_tile_usb_tether">Tethering via USB</string> + + <string name="title_dynamic_tiles">Dynamiske felter</string> + <string name="dynamic_tiles_note_title">NB:</string> + <string name="dynamic_tiles_note_summary">Dynamiske felter er ikke altid synlige, og vil kun vises, hvis de udløses af en systembegivenhed</string> + <string name="title_dynamic_alarm">Vækkeur</string> + <string name="title_dynamic_bugreport">Fejlrapport</string> + <string name="title_dynamic_ime">IME-skifter</string> + <string name="title_dynamic_usbtether">Tethering via USB</string> + <string name="title_dynamic_wifi">Wi-Fi-visning</string> + + <string name="title_general">Generelt</string> + <string name="title_quick_pulldown">Hurtigt nedtræk</string> + <string name="summary_quick_pulldown">Vis Hurtige indstillinger, når notifikationsbjælken nær den højre side af skærmen trækkes ned</string> + <string name="quick_pulldown_summary_left">Venstre</string> + <string name="quick_pulldown_summary_right">Højre</string> + <string name="quick_pulldown_off">Fra</string> + <string name="quick_pulldown_left">Venstre</string> + <string name="quick_pulldown_right">Højre</string> + <string name="title_collapse_panel">Luk panel automatisk</string> + <string name="summary_collapse_panel">Luk notifikationspanel ved skift</string> + + <!-- Reset tiles --> + <string name="tiles_reset_title">Nulstil</string> + <string name="tiles_reset_message">Gendan standard for de viste felter og layout?</string> + + <!--- Volume key cursor control --> + <string name="volume_key_cursor_control_title">Markørstyring med lydstyrkeknap</string> + <string name="volume_key_cursor_control_off">Deaktiveret</string> + <string name="volume_key_cursor_control_on">Lydstyrke op/ned flytter markøren til venstre/højre</string> + <string name="volume_key_cursor_control_on_reverse">Lydstyrke op/ned flytter markøren til højre/venstre</string> + + <!-- Wi-Fi Advanced Settings --> + <string name="wifi_setting_countrycode_title">Wi-Fi-regionskode</string> + <string name="wifi_setting_countrycode_summary">Angiv regionskoden for Wi-Fi</string> + <string name="wifi_setting_countrycode_error">Der opstod et problem med indstillingen af regionskoden.</string> + + <!-- Title for application group setting screen --> + <string name="profile_appgroups_title">App-grupper</string> + <string name="profile_applist_title">Apps</string> + <string name="profile_new_appgroup">Ny app-gruppe</string> + <string name="profile_delete_appgroup">Slet denne app-gruppe?</string> + <string name="profile_appgroup_name_prompt">Angiv navn for den nye app-gruppe</string> + <string name="profile_appgroup_name_title">Navn</string> + <string name="profile_add_app">Tilføj app</string> + <string name="profile_delete_app">Fjern app</string> + + <!-- Add application dialog box title --> + <string name="profile_choose_app">Vælg app</string> + <string name="profile_settings_header">Profilindstillinger</string> + + <!-- Wireless display --> + <string name="pref_wifi_disable_hdcp_title">Spring HDCP-forhandling over</string> + <string name="pref_wifi_disable_hdcp_summary">Prøv denne mulighed, hvis du kan tilslutte, men ikke får noget output</string> + + <!--- Sms security limit --> + <string name="app_security_title">App-sikkerhed</string> + <string name="sms_security_check_limit_title">SMS-grænse</string> + <string name="sms_security_check_limit_summary">Vis en advarselsdialog for at forhindre programmer i at sende SMS-beskeder for ofte. Aktuel grænse: %d beskeder på 30 minutter (kræver genstart)</string> + <string name="sms_security_check_limit_default">30 (standard)</string> + + <!--- Lock clock --> + <string name="lock_clock_title">Ur-widget</string> + <string name="lock_clock_summary">Vis eller skift, hvordan Start- og Skærmlås-widgets for \'cLock\' bliver vist</string> + + <!-- Stylus Icon --> + <string name="stylus_icon_enabled_title">Vis ikon ved brug af pen</string> + <string name="stylus_icon_enabled_summary">Vis markøren når pennen benyttes</string> + + <!-- Navigation Bar --> + <string name="navigation_bar_title">Navigationsbjælke</string> + <string name="navigation_bar_help_text">1 - For at begynde redigeringen, skal du trykke på låseikonet\n\n2 - Tryk på en vilkårlig knap for at tildele eller ændre funktionaliteten\n\n3 - Tryk og hold nede på en vilkårlig knap for at ændre rækkefølgen\n\n4 - For at gemme, skal du trykke på låseikonet igen\n\n5 - For at gendanne systemet som standard, skal du trykke på reset-knappen\n\n</string> + <string name="navigation_bar_tips">• Handlinger kan kun tildeles til én knap ad gangen\n\n• Knappen Start kan ikke ændres\n\n• Sideknapper kan ikke kan omplaceres</string> + <string name="navigation_bar_tips_title">Hurtige tips</string> + <string name="navigation_bar_reset_message">Slet de aktuelle indstillinger og gendan standard?</string> + <string name="navigation_bar_save_message">Indstillinger for navigationsbjælken er gemt</string> + <string name="navigation_bar_reset_toast">Indstillinger for navigationsbjælken er gendannet</string> + <string name="navigation_bar_menu_editable">Redigerbar</string> + <string name="navigation_bar_menu_locked">Låst</string> + + <!-- Title for the accessibility preference to home button to answers a call. [CHAR LIMIT=35] --> + <string name="accessibility_home_button_answers_call_prerefence_title">Startknap besvarer opkald</string> + + <string name="lockscreen_maximize_widgets_title">Maksimér widgets</string> + <string name="lockscreen_maximize_widgets_summary">Vis widgets maksimeret og låsen minimeret, når skærmen er tændt</string> + + <!-- Category title for headset specific Settings. + [CHAR LIMIT=40] --> + <string name="headset_category_title">Håndfri</string> + + <!-- Activity label of BluetoothMasPermissionActivity, also used as Strings in the permission dialog [CHAR LIMIT=none] --> + <string name="bluetooth_mas_request">"Anmodning om beskeder"</string> + + <!-- Bluetooth MAS permission Alert Activity text [CHAR LIMIT=none] --> + <string name="bluetooth_mas_acceptance_dialog_text">%1$s vil gerne have adgang til dine beskeder. Vil du give %2$s adgang?</string> + + <!-- Bluetooth MAS permission Alert Activity checkbox text [CHAR LIMIT=none] --> + <string name="bluetooth_mas_remember_choice">Spørg ikke igen</string> + + <!-- Wi-Fi settings screen, advanced, title of the item to set the Wi-Fi priority. --> + <string name="wifi_setting_priority_title">Wi-Fi-prioritet</string> + <!-- Wi-Fi settings screen, setting summary for setting the Wi-Fi priority--> + <string name="wifi_setting_priority_summary">Angiv prioriteten af Wi-Fi-netværkene</string> + + <!-- USB Mass Storage --> + <string name="usb_mass_storage_title">USB-lager</string> + <string name="usb_mass_storage_summary">Aktivér USB-lager</string> + + <!-- Custom lock screen background --> + <string name="lockscreen_custom_background_title">Baggrund</string> + <string name="lockscreen_custom_background_dialog_title">Vælg farve</string> + <string name="lockscreen_background_result_successful">Baggrund blev skiftet med succes</string> + <string name="lockscreen_background_result_not_successful">Baggrund kunne ikke skiftes</string> + <string name="lockscreen_background_color_fill">Fyldfarve</string> + <string name="lockscreen_background_custom_image">Brugerdefineret billede</string> + <string name="lockscreen_background_default_wallpaper">Standardtapet</string> + + <!-- convert sound to vibration toggle --> + <string name="notification_convert_sound_to_vibration_title">Vibrér ved notifikation</string> + <string name="notification_convert_sound_to_vibration_summary">I vibreringstilstand vil alle notifikationer vibrere, uanset individuelle app-indstillinger.</string> + + <!-- **** CYANOGENMOD ADDITIONS END **** --> </resources> diff --git a/res/values-de/arrays.xml b/res/values-de/arrays.xml index 03d0143..19c8f07 100644 --- a/res/values-de/arrays.xml +++ b/res/values-de/arrays.xml @@ -1,298 +1,369 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- -/* -** -** Copyright 2007 The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ - --> +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2007 The Android Open Source Project + 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. +--> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string-array name="timezone_filters"> - <item msgid="5296756001147094692">"Amerika"</item> - <item msgid="3005562397632768392">"Europa"</item> - <item msgid="5696915123093701218">"Afrika"</item> - <item msgid="4439789052790868249">"Asien"</item> - <item msgid="956915953069815961">"Australien"</item> - <item msgid="5345178126174698955">"Pazifik"</item> - <item msgid="8392017019801393511">"Alle"</item> - </string-array> - <string-array name="screen_timeout_entries"> - <item msgid="3342301044271143016">"15 Sekunden"</item> - <item msgid="8881760709354815449">"30 Sekunden"</item> - <item msgid="7589406073232279088">"1 Minute"</item> - <item msgid="7001195990902244174">"2 Minuten"</item> - <item msgid="7489864775127957179">"5 Minuten"</item> - <item msgid="2314124409517439288">"10 Minuten"</item> - <item msgid="6864027152847611413">"30 Minuten"</item> - </string-array> - <string-array name="dream_timeout_entries"> - <item msgid="3149294732238283185">"Nie"</item> - <item msgid="2194151041885903260">"15 Sekunden"</item> - <item msgid="5892295237131074341">"30 Sekunden"</item> - <item msgid="3538441365970038213">"1 Minute"</item> - <item msgid="412343871668955639">"2 Minuten"</item> - <item msgid="5076853889688991690">"5 Minuten"</item> - <item msgid="1903860996174927898">"10 Minuten"</item> - <item msgid="6415509612413178727">"30 Minuten"</item> - </string-array> - <string-array name="lock_after_timeout_entries"> - <item msgid="8929270399652145290">"Sofort"</item> - <item msgid="6736512735606834431">"5 Sekunden"</item> - <item msgid="8044619388267891375">"15 Sekunden"</item> - <item msgid="1822002388249545488">"30 Sekunden"</item> - <item msgid="8538071621211916519">"1 Minute"</item> - <item msgid="5663439580228932882">"2 Minuten"</item> - <item msgid="49888496216106852">"5 Minuten"</item> - <item msgid="9002737361305019353">"10 Minuten"</item> - <item msgid="4322676235684793329">"30 Minuten"</item> - </string-array> - <string-array name="entries_font_size"> - <item msgid="8166647333858618801">"Klein"</item> - <item msgid="1932071435506638315">"Normal"</item> - <item msgid="38373998008112077">"Groß"</item> - <item msgid="7786168277516233536">"Sehr groß"</item> - </string-array> - <string-array name="tts_rate_entries"> - <item msgid="6041212618892492920">"Sehr langsam"</item> - <item msgid="2361722960903353554">"Langsam"</item> - <item msgid="1145554631248513562">"Normal"</item> - <item msgid="7553665153391107454">"Schnell"</item> - <item msgid="2538100882620724753">"Sehr schnell"</item> - </string-array> - <string-array name="tts_pitch_entries"> - <item msgid="7526050907652687351">"Sehr niedrig"</item> - <item msgid="2692137425242433765">"Niedrig"</item> - <item msgid="3332408460740717754">"Normal"</item> - <item msgid="4907380534957572531">"Hoch"</item> - <item msgid="4699640516390840297">"Sehr hoch"</item> - </string-array> - <string-array name="wifi_status"> - <item msgid="1922181315419294640"></item> - <item msgid="8934131797783724664">"Scan läuft…"</item> - <item msgid="8513729475867537913">"Verbindung wird hergestellt..."</item> - <item msgid="515055375277271756">"Authentifizierung..."</item> - <item msgid="1943354004029184381">"IP-Adresse wird abgerufen..."</item> - <item msgid="4221763391123233270">"Verbunden"</item> - <item msgid="624838831631122137">"Angehalten"</item> - <item msgid="7979680559596111948">"Verbindung wird getrennt..."</item> - <item msgid="1634960474403853625">"Nicht verbunden"</item> - <item msgid="746097431216080650">"Nicht erfolgreich"</item> - <item msgid="6367044185730295334">"Blockiert"</item> - <item msgid="503942654197908005">"Schlechte Internetverbindung wird vorübergehend vermieden."</item> - </string-array> - <string-array name="wifi_status_with_ssid"> - <item msgid="7714855332363650812"></item> - <item msgid="8878186979715711006">"Scan läuft…"</item> - <item msgid="355508996603873860">"Verbindung mit <xliff:g id="NETWORK_NAME">%1$s</xliff:g> wird hergestellt..."</item> - <item msgid="554971459996405634">"Authentifizierung mit <xliff:g id="NETWORK_NAME">%1$s</xliff:g>..."</item> - <item msgid="7928343808033020343">"IP-Adresse wird von <xliff:g id="NETWORK_NAME">%1$s</xliff:g> abgerufen..."</item> - <item msgid="8937994881315223448">"Verbunden mit <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</item> - <item msgid="1330262655415760617">"Angehalten"</item> - <item msgid="7698638434317271902">"Verbindung mit <xliff:g id="NETWORK_NAME">%1$s</xliff:g> wird getrennt..."</item> - <item msgid="197508606402264311">"Nicht verbunden"</item> - <item msgid="8578370891960825148">"Nicht erfolgreich"</item> - <item msgid="5660739516542454527">"Blockiert"</item> - <item msgid="1805837518286731242">"Schlechte Internetverbindung wird vorübergehend vermieden."</item> - </string-array> - <!-- no translation found for wifi_security:0 (8491993170197127709) --> - <!-- no translation found for wifi_security:1 (6524315248437318854) --> - <!-- no translation found for wifi_security:2 (1532568756571457140) --> - <!-- no translation found for wifi_security:3 (3620707702811709779) --> - <!-- no translation found for wifi_security_no_eap:0 (2084555984818107151) --> - <!-- no translation found for wifi_security_no_eap:1 (397579322683471524) --> - <!-- no translation found for wifi_security_no_eap:2 (1968820975358150484) --> - <string-array name="wifi_eap_method"> - <item msgid="1160193392455075561">"PEAP"</item> - <item msgid="7981731051382306293">"TLS"</item> - <item msgid="2892994535305020162">"TTLS"</item> - <item msgid="435667726254379514">"PWD"</item> - </string-array> - <string-array name="wifi_p2p_wps_setup"> - <item msgid="5085064298144493867">"Push-Schaltfläche"</item> - <item msgid="1624323946324499595">"PIN von Peer-Gerät"</item> - <item msgid="5366790421523328066">"PIN von diesem Gerät"</item> - </string-array> - <string-array name="wifi_p2p_status"> - <item msgid="1701505390737218306">"Verbunden"</item> - <item msgid="3189211552661432651">"Eingeladen"</item> - <item msgid="3206450250360237549">"Nicht erfolgreich"</item> - <item msgid="7785896708926971207">"Verfügbar"</item> - <item msgid="2330782789550628803">"Außerhalb des Bereichs"</item> - </string-array> - <string-array name="bluetooth_visibility_timeout_entries"> - <item msgid="8151962652413645395">"2 Minuten"</item> - <item msgid="8675215713017289017">"5 Minuten"</item> - <item msgid="477015974247590543">"1 Stunde"</item> - <item msgid="5198271470953124739">"Kein Timeout"</item> - </string-array> - <string-array name="wifi_signal"> - <item msgid="2245412278046491293">"Schwach"</item> - <item msgid="5615082285463430971">"Gut"</item> - <item msgid="3565079809875324621">"OK"</item> - <item msgid="5702329417707689835">"Ausgezeichnet"</item> - </string-array> - <string-array name="wifi_sleep_policy_entries"> - <item msgid="3269131034472904310">"Immer"</item> - <item msgid="844721238536786870">"Nur wenn angeschlossen"</item> - <item msgid="2990218920631468642">"Nie (erhöht den Datenverbrauch)"</item> - </string-array> - <string-array name="wifi_sleep_policy_entries_wifi_only"> - <item msgid="2124319326282651391">"Immer"</item> - <item msgid="7433294150916905997">"Nur wenn angeschlossen"</item> - <item msgid="1390404486722375028">"Nie"</item> - </string-array> - <string-array name="wifi_frequency_band_entries"> - <item msgid="624340809384223320">"Automatisch"</item> - <item msgid="6670588712989942178">"Nur 5 GHz"</item> - <item msgid="2715516524973207876">"Nur 2,4 GHz"</item> - </string-array> - <string-array name="usage_stats_display_order_types"> - <item msgid="2100172576767439288">"Nutzungszeit"</item> - <item msgid="3703676222230317933">"Startzähler"</item> - <item msgid="2502754479975776899">"App-Name"</item> - </string-array> - <string-array name="wifi_eap_entries"> - <item msgid="8615575908717909498">"PEAP"</item> - <item msgid="8667872640594311615">"TLS"</item> - <item msgid="7182812872984827322">"TTLS"</item> - <item msgid="2318274046749286642">"PWD"</item> - </string-array> - <string-array name="wifi_phase2_entries"> - <item msgid="1818786254010764570">"Keine"</item> - <item msgid="6189918678874123056">"PAP"</item> - <item msgid="1524112260493662517">"MSCHAP"</item> - <item msgid="5923246669412752932">"MSCHAPV2"</item> - <item msgid="8651992560135239389">"GTC"</item> - </string-array> - <string-array name="wifi_ip_settings"> - <item msgid="3906714200993111074">"DHCP"</item> - <item msgid="628395202971532382">"Statisch"</item> - </string-array> - <string-array name="wifi_proxy_settings"> - <item msgid="4473276491748503377">"Keiner"</item> - <item msgid="8673874894887358090">"Manuell"</item> - </string-array> - <string-array name="emergency_tone_entries"> - <item msgid="5165439859689033665">"Aus"</item> - <item msgid="3165868966179561687">"Benachrichtigung"</item> - <item msgid="6038758039030476855">"Vibration"</item> - </string-array> - <string-array name="apn_auth_entries"> - <item msgid="3856896061242872146">"Keine"</item> - <item msgid="5756844015743664882">"PAP"</item> - <item msgid="535934025797984365">"CHAP"</item> - <item msgid="8383098660619805783">"PAP oder CHAP"</item> - </string-array> - <string-array name="apn_protocol_entries"> - <item msgid="4852355456199302715">"IPv4"</item> - <item msgid="4394161344888484571">"IPv6"</item> - <item msgid="8084938354605535381">"IPv4/IPv6"</item> - </string-array> - <string-array name="bearer_entries"> - <item msgid="1770285336669531300">"LTE"</item> - <item msgid="3044323519470167625">"eHRPD"</item> - <item msgid="6848428671997893147">"Keine Angabe"</item> - </string-array> - <string-array name="app_install_location_entries"> - <item msgid="8151497958991952759">"Interner Gerätespeicher"</item> - <item msgid="3738430123799803530">"Austauschbare SD-Karte"</item> - <item msgid="4498124044785815005">"Auswahl durch das System"</item> - </string-array> - <string-array name="long_press_timeout_selector_titles"> - <item msgid="3511504869290423954">"Kurz"</item> - <item msgid="2560532955514699713">"Mittel"</item> - <item msgid="2372711992605524591">"Lang"</item> - </string-array> - <string-array name="hdcp_checking_titles"> - <item msgid="441827799230089869">"Nie prüfen"</item> - <item msgid="6042769699089883931">"Nur auf DRM-Inhalte prüfen"</item> - <item msgid="9174900380056846820">"Immer prüfen"</item> - </string-array> - <string-array name="hdcp_checking_summaries"> - <item msgid="505558545611516707">"HDCP-Prüfung nie verwenden"</item> - <item msgid="3878793616631049349">"HDCP-Prüfung nur für DRM-Inhalte verwenden"</item> - <item msgid="45075631231212732">"HDCP-Prüfung immer verwenden"</item> - </string-array> - <string-array name="window_animation_scale_entries"> - <item msgid="8134156599370824081">"Animation aus"</item> - <item msgid="6624864048416710414">"Animationsmaßstab: 0,5x"</item> - <item msgid="2219332261255416635">"Animationsmaßstab: 1x"</item> - <item msgid="3544428804137048509">"Animationsmaßstab: 1,5x"</item> - <item msgid="3110710404225974514">"Animationsmaßstab: 2x"</item> - <item msgid="4402738611528318731">"Animationsmaßstab: 5x"</item> - <item msgid="6189539267968330656">"Animationsmaßstab: 10x"</item> - </string-array> - <string-array name="transition_animation_scale_entries"> - <item msgid="8464255836173039442">"Animation aus"</item> - <item msgid="3375781541913316411">"Animationsmaßstab: 0,5x"</item> - <item msgid="1991041427801869945">"Animationsmaßstab: 1x"</item> - <item msgid="4012689927622382874">"Animationsmaßstab: 1,5x"</item> - <item msgid="3289156759925947169">"Animationsmaßstab: 2x"</item> - <item msgid="7705857441213621835">"Animationsmaßstab: 5x"</item> - <item msgid="6660750935954853365">"Animationsmaßstab: 10x"</item> - </string-array> - <string-array name="animator_duration_scale_entries"> - <item msgid="6039901060648228241">"Animation aus"</item> - <item msgid="1138649021950863198">"Animationsmaßstab: 0,5x"</item> - <item msgid="4394388961370833040">"Animationsmaßstab: 1x"</item> - <item msgid="8125427921655194973">"Animationsmaßstab: 1,5x"</item> - <item msgid="3334024790739189573">"Animationsmaßstab: 2x"</item> - <item msgid="3170120558236848008">"Animationsmaßstab: 5x"</item> - <item msgid="1069584980746680398">"Animationsmaßstab: 10x"</item> - </string-array> - <string-array name="overlay_display_devices_entries"> - <item msgid="1606809880904982133">"Keine"</item> - <item msgid="688482401508173818">"720 x 480 mdpi"</item> - <item msgid="1725473474827398815">"1280 x 720 tvdpi"</item> - <item msgid="6813511923592083251">"1920 x 1080 xhdpi"</item> - <item msgid="3646519549495410112">"1280 x 720 tvdpi und 1920 x 1080 xhdpi"</item> - </string-array> - <string-array name="enable_opengl_traces_entries"> - <item msgid="3191973083884253830">"Keine"</item> - <item msgid="9089630089455370183">"Logcat"</item> - <item msgid="5397807424362304288">"Systrace (Grafik)"</item> - <item msgid="1340692776955662664">"Aufrufliste für glGetError"</item> - </string-array> - <string-array name="app_process_limit_entries"> - <item msgid="3401625457385943795">"Standardlimit"</item> - <item msgid="4071574792028999443">"Keine Hintergrundprozesse"</item> - <item msgid="4810006996171705398">"Höchstens ein Prozess"</item> - <item msgid="8586370216857360863">"Höchstens zwei Prozesse"</item> - <item msgid="836593137872605381">"Höchstens drei Prozesse"</item> - <item msgid="7899496259191969307">"Höchstens vier Prozesse"</item> - </string-array> - <string-array name="vpn_types_long"> - <item msgid="2732002039459078847">"PPTP-VPN"</item> - <item msgid="3799752201662127867">"L2TP-/IPSec-VPN mit vorinstallierten Schlüsseln"</item> - <item msgid="4725504331295252103">"L2TP-/IPSec-VPN mit Zertifikaten"</item> - <item msgid="7526551163264034377">"IPSec-VPN mit vorinstallierten Schlüsseln und Xauth-Authentifizierung"</item> - <item msgid="8064740940687465039">"IPSec-VPN mit Zertifikaten und Xauth-Authentifizierung"</item> - <item msgid="4946199982372391490">"IPSec-VPN mit Zertifikaten und Hybrid-Authentifizierung"</item> - </string-array> - <string-array name="vpn_states"> - <item msgid="8621078286418985762">"Verbindung getrennt"</item> - <item msgid="6692305604213080515">"Initialisierung läuft..."</item> - <item msgid="8001704909356800092">"Verbindung wird hergestellt..."</item> - <item msgid="4039737283841672166">"Verbunden"</item> - <item msgid="4042143101664725090">"Timeout"</item> - <item msgid="7664124146786465092">"Nicht erfolgreich"</item> - </string-array> - <string-array name="security_settings_premium_sms_values"> - <item msgid="7389829271787670252">"Fragen"</item> - <item msgid="5077768429488260031">"Nie zulassen"</item> - <item msgid="1417929597727989746">"Immer zulassen"</item> - </string-array> + <string-array name="timezone_filters"> + <item msgid="5296756001147094692">"Amerika"</item> + <item msgid="3005562397632768392">"Europa"</item> + <item msgid="5696915123093701218">"Afrika"</item> + <item msgid="4439789052790868249">"Asien"</item> + <item msgid="956915953069815961">"Australien"</item> + <item msgid="5345178126174698955">"Pazifik"</item> + <item msgid="8392017019801393511">"Alle"</item> + </string-array> + <string-array name="screen_timeout_entries"> + <item msgid="3342301044271143016">"15 Sekunden"</item> + <item msgid="8881760709354815449">"30 Sekunden"</item> + <item msgid="7589406073232279088">"1 Minute"</item> + <item msgid="7001195990902244174">"2 Minuten"</item> + <item msgid="7489864775127957179">"5 Minuten"</item> + <item msgid="2314124409517439288">"10 Minuten"</item> + <item msgid="6864027152847611413">"30 Minuten"</item> + </string-array> + <string-array name="dream_timeout_entries"> + <item msgid="3149294732238283185">"Nie"</item> + <item msgid="2194151041885903260">"15 Sekunden"</item> + <item msgid="5892295237131074341">"30 Sekunden"</item> + <item msgid="3538441365970038213">"1 Minute"</item> + <item msgid="412343871668955639">"2 Minuten"</item> + <item msgid="5076853889688991690">"5 Minuten"</item> + <item msgid="1903860996174927898">"10 Minuten"</item> + <item msgid="6415509612413178727">"30 Minuten"</item> + </string-array> + <string-array name="lock_after_timeout_entries"> + <item msgid="8929270399652145290">"Sofort"</item> + <item msgid="6736512735606834431">"5 Sekunden"</item> + <item msgid="8044619388267891375">"15 Sekunden"</item> + <item msgid="1822002388249545488">"30 Sekunden"</item> + <item msgid="8538071621211916519">"1 Minute"</item> + <item msgid="5663439580228932882">"2 Minuten"</item> + <item msgid="49888496216106852">"5 Minuten"</item> + <item msgid="9002737361305019353">"10 Minuten"</item> + <item msgid="4322676235684793329">"30 Minuten"</item> + </string-array> + <string-array name="entries_font_size"> + <item msgid="8166647333858618801">"Klein"</item> + <item msgid="1932071435506638315">"Normal"</item> + <item msgid="38373998008112077">"Groß"</item> + <item msgid="7786168277516233536">"Sehr groß"</item> + </string-array> + <string-array name="tts_rate_entries"> + <item msgid="6041212618892492920">"Sehr langsam"</item> + <item msgid="2361722960903353554">"Langsam"</item> + <item msgid="1145554631248513562">"Normal"</item> + <item msgid="7553665153391107454">"Schnell"</item> + <item msgid="2538100882620724753">"Sehr schnell"</item> + </string-array> + <string-array name="tts_pitch_entries"> + <item msgid="7526050907652687351">"Sehr niedrig"</item> + <item msgid="2692137425242433765">"Niedrig"</item> + <item msgid="3332408460740717754">"Normal"</item> + <item msgid="4907380534957572531">"Hoch"</item> + <item msgid="4699640516390840297">"Sehr hoch"</item> + </string-array> + <string-array name="wifi_status"> + <item msgid="1922181315419294640"></item> + <item msgid="8934131797783724664">"Scan läuft\u2026"</item> + <item msgid="8513729475867537913">"Verbindung wird hergestellt\u2026"</item> + <item msgid="515055375277271756">"Authentifizierung\u2026"</item> + <item msgid="1943354004029184381">"IP-Adresse wird abgerufen\u2026"</item> + <item msgid="4221763391123233270">"Verbunden"</item> + <item msgid="624838831631122137">"Angehalten"</item> + <item msgid="7979680559596111948">"Verbindung wird getrennt\u2026"</item> + <item msgid="1634960474403853625">"Nicht verbunden"</item> + <item msgid="746097431216080650">"Nicht erfolgreich"</item> + <item msgid="6367044185730295334">"Blockiert"</item> + <item msgid="503942654197908005">"Schlechte Internetverbindung wird vorübergehend vermieden."</item> + </string-array> + <string-array name="wifi_status_with_ssid"> + <item msgid="7714855332363650812"></item> + <item msgid="8878186979715711006">"Scan läuft…"</item> + <item msgid="355508996603873860">"Verbindung mit <xliff:g id="NETWORK_NAME">%1$s</xliff:g> wird hergestellt\u2026"</item> + <item msgid="554971459996405634">"Authentifizierung mit <xliff:g id="NETWORK_NAME">%1$s</xliff:g>\u2026"</item> + <item msgid="7928343808033020343">"IP-Adresse wird von <xliff:g id="NETWORK_NAME">%1$s</xliff:g> abgerufen\u2026"</item> + <item msgid="8937994881315223448">"Verbunden mit <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</item> + <item msgid="1330262655415760617">"Angehalten"</item> + <item msgid="7698638434317271902">"Verbindung mit <xliff:g id="NETWORK_NAME">%1$s</xliff:g> wird getrennt\u2026"</item> + <item msgid="197508606402264311">"Nicht verbunden"</item> + <item msgid="8578370891960825148">"Nicht erfolgreich"</item> + <item msgid="5660739516542454527">"Blockiert"</item> + <item msgid="1805837518286731242">"Schlechte Internetverbindung wird vorübergehend vermieden."</item> + </string-array> + <string-array name="wifi_eap_method"> + <item msgid="1160193392455075561">"PEAP"</item> + <item msgid="7981731051382306293">"TLS"</item> + <item msgid="2892994535305020162">"TTLS"</item> + <item msgid="435667726254379514">"PWD"</item> + </string-array> + <string-array name="wifi_p2p_wps_setup"> + <item msgid="5085064298144493867">"Push-Schaltfläche"</item> + <item msgid="1624323946324499595">"PIN von Peer-Gerät"</item> + <item msgid="5366790421523328066">"PIN von diesem Gerät"</item> + </string-array> + <string-array name="wifi_p2p_status"> + <item msgid="1701505390737218306">"Verbunden"</item> + <item msgid="3189211552661432651">"Eingeladen"</item> + <item msgid="3206450250360237549">"Nicht erfolgreich"</item> + <item msgid="7785896708926971207">"Verfügbar"</item> + <item msgid="2330782789550628803">"Außerhalb des Bereichs"</item> + </string-array> + <string-array name="bluetooth_visibility_timeout_entries"> + <item msgid="8151962652413645395">"2 Minuten"</item> + <item msgid="8675215713017289017">"5 Minuten"</item> + <item msgid="477015974247590543">"1 Stunde"</item> + <item msgid="5198271470953124739">"Kein Timeout"</item> + </string-array> + <string-array name="wifi_signal"> + <item msgid="2245412278046491293">"Schwach"</item> + <item msgid="5615082285463430971">"Gut"</item> + <item msgid="3565079809875324621">"OK"</item> + <item msgid="5702329417707689835">"Ausgezeichnet"</item> + </string-array> + <string-array name="wifi_sleep_policy_entries"> + <item msgid="3269131034472904310">"Immer"</item> + <item msgid="844721238536786870">"Nur wenn angeschlossen"</item> + <item msgid="2990218920631468642">"Nie (erhöht den Datenverbrauch)"</item> + </string-array> + <string-array name="wifi_sleep_policy_entries_wifi_only"> + <item msgid="2124319326282651391">"Immer"</item> + <item msgid="7433294150916905997">"Nur wenn angeschlossen"</item> + <item msgid="1390404486722375028">"Nie"</item> + </string-array> + <string-array name="wifi_frequency_band_entries"> + <item msgid="624340809384223320">"Automatisch"</item> + <item msgid="6670588712989942178">"Nur 5 GHz"</item> + <item msgid="2715516524973207876">"Nur 2,4 GHz"</item> + </string-array> + <string-array name="usage_stats_display_order_types"> + <item msgid="2100172576767439288">"Nutzungszeit"</item> + <item msgid="3703676222230317933">"Startzähler"</item> + <item msgid="2502754479975776899">"App-Name"</item> + </string-array> + <string-array name="wifi_eap_entries"> + <item msgid="8615575908717909498">"PEAP"</item> + <item msgid="8667872640594311615">"TLS"</item> + <item msgid="7182812872984827322">"TTLS"</item> + <item msgid="2318274046749286642">"PWD"</item> + </string-array> + <string-array name="wifi_phase2_entries"> + <item msgid="1818786254010764570">"Keine"</item> + <item msgid="6189918678874123056">"PAP"</item> + <item msgid="1524112260493662517">"MSCHAP"</item> + <item msgid="5923246669412752932">"MSCHAPV2"</item> + <item msgid="8651992560135239389">"GTC"</item> + </string-array> + <string-array name="wifi_ip_settings"> + <item msgid="3906714200993111074">"DHCP"</item> + <item msgid="628395202971532382">"Statisch"</item> + </string-array> + <string-array name="wifi_proxy_settings"> + <item msgid="4473276491748503377">"Keiner"</item> + <item msgid="8673874894887358090">"Manuell"</item> + </string-array> + <string-array name="emergency_tone_entries"> + <item msgid="5165439859689033665">"Aus"</item> + <item msgid="3165868966179561687">"Benachrichtigung"</item> + <item msgid="6038758039030476855">"Vibration"</item> + </string-array> + <string-array name="apn_auth_entries"> + <item msgid="3856896061242872146">"Keine"</item> + <item msgid="5756844015743664882">"PAP"</item> + <item msgid="535934025797984365">"CHAP"</item> + <item msgid="8383098660619805783">"PAP oder CHAP"</item> + </string-array> + <string-array name="apn_protocol_entries"> + <item msgid="4852355456199302715">"IPv4"</item> + <item msgid="4394161344888484571">"IPv6"</item> + <item msgid="8084938354605535381">"IPv4/IPv6"</item> + </string-array> + <string-array name="bearer_entries"> + <item msgid="1770285336669531300">"LTE"</item> + <item msgid="3044323519470167625">"eHRPD"</item> + <item msgid="6848428671997893147">"Keine Angabe"</item> + </string-array> + <string-array name="app_install_location_entries"> + <item msgid="8151497958991952759">"Interner Gerätespeicher"</item> + <item msgid="3738430123799803530">"Austauschbare SD-Karte"</item> + <item msgid="4498124044785815005">"Auswahl durch das System"</item> + </string-array> + <string-array name="long_press_timeout_selector_titles"> + <item msgid="3511504869290423954">"Kurz"</item> + <item msgid="2560532955514699713">"Mittel"</item> + <item msgid="2372711992605524591">"Lang"</item> + </string-array> + <string-array name="hdcp_checking_titles"> + <item msgid="441827799230089869">"Nie prüfen"</item> + <item msgid="6042769699089883931">"Nur auf DRM-Inhalte prüfen"</item> + <item msgid="9174900380056846820">"Immer prüfen"</item> + </string-array> + <string-array name="hdcp_checking_summaries"> + <item msgid="505558545611516707">"HDCP-Prüfung nie verwenden"</item> + <item msgid="3878793616631049349">"HDCP-Prüfung nur für DRM-Inhalte verwenden"</item> + <item msgid="45075631231212732">"HDCP-Prüfung immer verwenden"</item> + </string-array> + <string-array name="window_animation_scale_entries"> + <item msgid="8134156599370824081">"Animation aus"</item> + <item msgid="6624864048416710414">"Animationsmaßstab: 0,5x"</item> + <item msgid="2219332261255416635">"Animationsmaßstab: 1x"</item> + <item msgid="3544428804137048509">"Animationsmaßstab: 1,5x"</item> + <item msgid="3110710404225974514">"Animationsmaßstab: 2x"</item> + <item msgid="4402738611528318731">"Animationsmaßstab: 5x"</item> + <item msgid="6189539267968330656">"Animationsmaßstab: 10x"</item> + </string-array> + <string-array name="transition_animation_scale_entries"> + <item msgid="8464255836173039442">"Animation aus"</item> + <item msgid="3375781541913316411">"Animationsmaßstab: 0,5x"</item> + <item msgid="1991041427801869945">"Animationsmaßstab: 1x"</item> + <item msgid="4012689927622382874">"Animationsmaßstab: 1,5x"</item> + <item msgid="3289156759925947169">"Animationsmaßstab: 2x"</item> + <item msgid="7705857441213621835">"Animationsmaßstab: 5x"</item> + <item msgid="6660750935954853365">"Animationsmaßstab: 10x"</item> + </string-array> + <string-array name="animator_duration_scale_entries"> + <item msgid="6039901060648228241">"Animation aus"</item> + <item msgid="1138649021950863198">"Animationsmaßstab: 0,5x"</item> + <item msgid="4394388961370833040">"Animationsmaßstab: 1x"</item> + <item msgid="8125427921655194973">"Animationsmaßstab: 1,5x"</item> + <item msgid="3334024790739189573">"Animationsmaßstab: 2x"</item> + <item msgid="3170120558236848008">"Animationsmaßstab: 5x"</item> + <item msgid="1069584980746680398">"Animationsmaßstab: 10x"</item> + </string-array> + <string-array name="overlay_display_devices_entries"> + <item msgid="1606809880904982133">"Keine"</item> + <item msgid="688482401508173818">"720 x 480 mdpi"</item> + <item msgid="1725473474827398815">"1280 x 720 tvdpi"</item> + <item msgid="6813511923592083251">"1920 x 1080 xhdpi"</item> + <item msgid="3646519549495410112">"1280 x 720 tvdpi und 1920 x 1080 xhdpi"</item> + </string-array> + <string-array name="enable_opengl_traces_entries"> + <item msgid="3191973083884253830">"Keine"</item> + <item msgid="9089630089455370183">"Logcat"</item> + <item msgid="5397807424362304288">"Systrace (Grafik)"</item> + <item msgid="1340692776955662664">"Aufrufliste für glGetError"</item> + </string-array> + <string-array name="app_process_limit_entries"> + <item msgid="3401625457385943795">"Standardlimit"</item> + <item msgid="4071574792028999443">"Keine Hintergrundprozesse"</item> + <item msgid="4810006996171705398">"Höchstens ein Prozess"</item> + <item msgid="8586370216857360863">"Höchstens zwei Prozesse"</item> + <item msgid="836593137872605381">"Höchstens drei Prozesse"</item> + <item msgid="7899496259191969307">"Höchstens vier Prozesse"</item> + </string-array> + <string-array name="vpn_types_long"> + <item msgid="2732002039459078847">"PPTP-VPN"</item> + <item msgid="3799752201662127867">"L2TP-/IPSec-VPN mit vorinstallierten Schlüsseln"</item> + <item msgid="4725504331295252103">"L2TP-/IPSec-VPN mit Zertifikaten"</item> + <item msgid="7526551163264034377">"IPSec-VPN mit vorinstallierten Schlüsseln und Xauth-Authentifizierung"</item> + <item msgid="8064740940687465039">"IPSec-VPN mit Zertifikaten und Xauth-Authentifizierung"</item> + <item msgid="4946199982372391490">"IPSec-VPN mit Zertifikaten und Hybrid-Authentifizierung"</item> + </string-array> + <string-array name="vpn_states"> + <item msgid="8621078286418985762">"Verbindung getrennt"</item> + <item msgid="6692305604213080515">"Initialisierung läuft\u2026"</item> + <item msgid="8001704909356800092">"Verbindung wird hergestellt\u2026"</item> + <item msgid="4039737283841672166">"Verbunden"</item> + <item msgid="4042143101664725090">"Timeout"</item> + <item msgid="7664124146786465092">"Nicht erfolgreich"</item> + </string-array> + <string-array name="security_settings_premium_sms_values"> + <item msgid="7389829271787670252">"Fragen"</item> + <item msgid="5077768429488260031">"Nie zulassen"</item> + <item msgid="1417929597727989746">"Immer zulassen"</item> + </string-array> + + <!-- **** CYANOGENMOD ADDITIONS START **** --> + + <!-- Volume overlay options --> + <string-array name="volume_overlay_entries"> + <item>Einzeln</item> + <item>Erweiterbar</item> + <item>Erweitert</item> + <item>Keine</item> + </string-array> + + <!-- Performance options --> + <string-array name="pref_zram_size_entries"> + <item>Deaktiviert</item> + <item>10 %</item> + <item>18 % (Standard)</item> + <item>26 %</item> + </string-array> + + <!-- Profile mode options --> + <string-array name="profile_entries"> + <item>Aktivieren</item> + <item>Deaktivieren</item> + <item>Nicht ändern</item> + </string-array> + + <!-- Profile mode options --> + <string-array name="profile_connection_entries"> + <item>Deaktivieren</item> + <item>Aktivieren</item> + </string-array> + + <!-- Network widget options --> + <string-array name="entries_network_widget"> + <item>2G | 2G+3G</item> + <item>2G | 3G</item> + <item>2G | 3G | 2G+3G</item> + </string-array> + + <!-- Screen timeout options --> + <string-array name="entries_screentimeout_widget"> + <item>15 Sek. | 1 Min. | 5 Min.</item> + <item>30 Sek. | 2 Min. | 5 Min.</item> + </string-array> + + <!-- Flash widget options --> + <string-array name="entries_flash_widget"> + <item>Normal</item> + <item>Hell</item> + </string-array> + + <!-- Haptic feedback options --> + <string-array name="haptic_feedback_entries"> + <item>Globale Einstellungen verwenden</item> + <item>Aktiviert</item> + <item>Deaktiviert</item> + </string-array> + + <!-- Status bar clock options (AM/PM) --> + <string-array name="entries_status_bar_am_pm"> + <item>Normal</item> + <item>Klein</item> + <item>Aus (Standard)</item> + </string-array> + + <!-- Wi-Fi countrycode entries --> + <string-array name="wifi_countrycode_entries"> + <item>USA</item> + <item>Kanada, Taiwan</item> + <item>Deutschland</item> + <item>Europa</item> + <item>Japan, Russland</item> + <item>Australien</item> + <item>China</item> + <item>Korea</item> + <item>Türkei</item> + <item>Singapur</item> + <item>Brasilien</item> + </string-array> + + <!-- **** CYANOGENMOD ADDITIONS END **** --> </resources> diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml index f1ea62e..db6329f 100644 --- a/res/values-de/strings.xml +++ b/res/values-de/strings.xml @@ -1,5 +1,6 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2007 The Android Open Source Project +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2007 The Android Open Source Project + 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. @@ -12,7 +13,7 @@ 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:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> @@ -26,8 +27,8 @@ <item quantity="one" msgid="5295687242294085452">"In <xliff:g id="STEP_COUNT">%1$d</xliff:g> Schritt sind Sie ein Entwickler."</item> <item quantity="other" msgid="6722953419953594148">"In <xliff:g id="STEP_COUNT">%1$d</xliff:g> Schritten sind Sie ein Entwickler."</item> </plurals> - <string name="show_dev_on" msgid="1110711554982716293">"Sie sind jetzt ein Entwickler!"</string> - <string name="show_dev_already" msgid="2151632240145446227">"Okay, sind Sie bereits ein Entwickler."</string> + <string name="show_dev_on" msgid="1110711554982716293">"Sie haben die Entwickleroptionen aktiviert!"</string> + <string name="show_dev_already" msgid="2151632240145446227">"Die Entwickleroptionen sind bereits aktiviert."</string> <string name="header_category_wireless_networks" msgid="4944823405420438623">"Drahtlos & Netzwerke"</string> <string name="header_category_device" msgid="5781174212691167553">"Gerät"</string> <string name="header_category_personal" msgid="6225932173498802187">"Nutzer"</string> @@ -77,7 +78,7 @@ <string name="battery_info_status_label" msgid="8109155295509700309">"Akkustatus:"</string> <string name="battery_info_power_label" msgid="7465140230991349382">"Stromanschluss:"</string> <string name="battery_info_scale_label" msgid="3649763192389778437">"Akkuanzeige:"</string> - <string name="battery_info_level_label" msgid="8706526709307788737">"Akkuladung:"</string> + <string name="battery_info_level_label" msgid="8706526709307788737">"Akkustand:"</string> <string name="battery_info_health_label" msgid="6416051542741886958">"Akkuzustand:"</string> <string name="battery_info_technology_label" msgid="788304533220748681">"Akkutechnologie:"</string> <string name="battery_info_voltage_label" msgid="8971764146757637863">"Akkuspannung:"</string> @@ -135,8 +136,8 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Verbunden (außer Audiomedien)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Verbunden (außer Telefon- und Audiomedien)"</string> <string name="bluetooth_disconnected" msgid="6557104142667339895">"Nicht verbunden"</string> - <string name="bluetooth_disconnecting" msgid="8913264760027764974">"Verbindung wird getrennt..."</string> - <string name="bluetooth_connecting" msgid="8555009514614320497">"Verbindung wird hergestellt..."</string> + <string name="bluetooth_disconnecting" msgid="8913264760027764974">"Verbindung wird getrennt\u2026"</string> + <string name="bluetooth_connecting" msgid="8555009514614320497">"Verbindung wird hergestellt\u2026"</string> <string name="bluetooth_unknown" msgid="644716244548801421"></string> <string name="bluetooth_pairing" msgid="1426882272690346242">"Pairing…"</string> <string name="bluetooth_device" msgid="5291950341750186887">"Unbenanntes Bluetooth-Gerät"</string> @@ -228,7 +229,7 @@ <string name="radio_info_toggle_dns_check_label" msgid="8292252930563286858">"DNS-Überprüfung ein-/ausschalten"</string> <string name="oem_radio_info_label" msgid="6163141792477958941">"OEM-spezifische Infos/Einstellungen"</string> <string name="band_mode_title" msgid="954174198903776205">"GSM-/UMTS-Band festlegen"</string> - <string name="band_mode_loading" msgid="548764766363847336">"Bandliste wird geladen..."</string> + <string name="band_mode_loading" msgid="548764766363847336">"Bandliste wird geladen\u2026"</string> <string name="band_mode_set" msgid="5730560180249458484">"Festlegen"</string> <string name="band_mode_failed" msgid="1495968863884716379">"Fehlgeschlagen"</string> <string name="band_mode_succeeded" msgid="2701016190055887575">"Erfolgreich"</string> @@ -246,7 +247,7 @@ <string name="sdcard_settings_bad_removal_status" product="default" msgid="5145797653495907970">"Die SD-Karte wurde während der Verwendung entfernt!"</string> <string name="sdcard_settings_used_bytes_label" msgid="8820289486001170836">"Verwendete Bytes:"</string> <string name="sdcard_settings_scanning_status" product="nosdcard" msgid="7503429447676219564">"USB-Sp. auf Medien scannen"</string> - <string name="sdcard_settings_scanning_status" product="default" msgid="2763464949274455656">"SD-Karte wird auf Medien gescannt..."</string> + <string name="sdcard_settings_scanning_status" product="default" msgid="2763464949274455656">"SD-Karte wird auf Medien gescannt\u2026"</string> <string name="sdcard_settings_read_only_status" product="nosdcard" msgid="3624143937437417788">"USB-Speicher schreibgeschützt"</string> <string name="sdcard_settings_read_only_status" product="default" msgid="4518291824764698112">"Die bereitgestellte SD-Karte ist schreibgeschützt."</string> <string name="skip_label" msgid="47510779345218297">"Ohne"</string> @@ -266,7 +267,7 @@ <string name="settings_label_launcher" msgid="8344735489639482340">"Einstellungen"</string> <string name="settings_shortcut" msgid="3936651951364030415">"Einstellungsverknüpfung"</string> <string name="airplane_mode" msgid="8837269988154128601">"Flugmodus"</string> - <string name="radio_controls_title" msgid="6889937359495515769">"Mehr..."</string> + <string name="radio_controls_title" msgid="6889937359495515769">"Mehr\u2026"</string> <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Drahtlos & Netzwerke"</string> <string name="radio_controls_summary" msgid="2998818677094465517">"WLAN, Bluetooth, Flugmodus, Mobilfunknetze und VPNs verwalten"</string> <string name="roaming" msgid="3596055926335478572">"Daten-Roaming"</string> @@ -306,7 +307,7 @@ <string name="show_owner_info_on_lockscreen_label" msgid="5074906168357568434">"Inhaberinformationen auf Sperrbildschirm anzeigen"</string> <string name="owner_info_settings_title" msgid="2723190010708381889">"Info zum Eigentümer"</string> <string name="owner_info_settings_summary" msgid="3800834657847339570"></string> - <string name="owner_info_settings_edit_text_hint" msgid="4608681417960923911">"Text für Display-Sperre eingeben"</string> + <string name="owner_info_settings_edit_text_hint" msgid="4608681417960923911">"Text für Bildschirmsperre eingeben"</string> <string name="show_user_info_on_lockscreen_label" msgid="8408914624925608365">"Nutzerinformationen bei Bildschirmsperre anzeigen"</string> <string name="user_info_settings_title" msgid="1195015434996724736">"Nutzerinformationen"</string> <string name="location_settings_title" msgid="4483843407328665068">"Standortzugriff"</string> @@ -326,8 +327,8 @@ <string name="crypt_keeper_button_text" product="default" msgid="2008346408473255519">"Telefon verschlüsseln"</string> <string name="crypt_keeper_low_charge_text" msgid="2029407131227814893">"Laden Sie Ihren Akku auf und versuchen Sie es erneut."</string> <string name="crypt_keeper_unplugged_text" msgid="4785376766063053901">"Schließen Sie Ihr Ladegerät an und versuchen Sie es erneut."</string> - <string name="crypt_keeper_dialog_need_password_title" msgid="4058971800557767">"Keine PIN oder kein Passwort für Display-Sperre"</string> - <string name="crypt_keeper_dialog_need_password_message" msgid="4071395977297369642">"Sie müssen eine PIN oder ein Passwort für die Display-Sperre festlegen, bevor Sie die Verschlüsselung starten können."</string> + <string name="crypt_keeper_dialog_need_password_title" msgid="4058971800557767">"Keine PIN oder kein Passwort für Bildschirmsperre"</string> + <string name="crypt_keeper_dialog_need_password_message" msgid="4071395977297369642">"Sie müssen eine PIN oder ein Passwort für die Bildschirmsperre festlegen, bevor Sie die Verschlüsselung starten können."</string> <string name="crypt_keeper_confirm_title" msgid="5100339496381875522">"Verschlüsseln?"</string> <string name="crypt_keeper_final_desc" product="tablet" msgid="4453629424172409792">"Dieser Vorgang ist nicht umkehrbar und jede Unterbrechung ist mit einem Datenverlust verbunden. Die Verschlüsselung dauert mindestens eine Stunde. In dieser Zeit wird das Tablet mehrfach neu gestartet."</string> <string name="crypt_keeper_final_desc" product="default" msgid="5682944380460921880">"Dieser Vorgang ist nicht umkehrbar und jede Unterbrechung ist mit einem Datenverlust verbunden. Die Verschlüsselung dauert mindestens eine Stunde. In dieser Zeit wird das Telefon mehrfach neu gestartet."</string> @@ -340,10 +341,10 @@ <string name="crypt_keeper_failed_summary" product="tablet" msgid="4478225241476039013">"Die Verschlüsselung wurde unterbrochen und kann nicht abgeschlossen werden. Daher ist der Zugriff auf die Daten auf Ihrem Tablet nicht mehr möglich. "\n\n"Damit Sie Ihr Tablet wieder verwenden können, müssen Sie es auf die Werkseinstellungen zurücksetzen. Wenn Sie Ihr Tablet nach dem Zurücksetzen wieder einrichten, können Sie gegebenenfalls Daten, die gesichert wurden, in Ihrem Google-Konto wiederherstellen."</string> <string name="crypt_keeper_failed_summary" product="default" msgid="3083477162766772532">"Die Verschlüsselung wurde unterbrochen und kann nicht abgeschlossen werden. Daher ist der Zugriff auf die Daten auf Ihrem Telefon nicht mehr möglich. "\n\n"Damit Sie Ihr Telefon wieder verwenden können, müssen Sie es auf die Werkseinstellungen zurücksetzen. Wenn Sie Ihr Telefon nach dem Zurücksetzen wieder einrichten, können Sie gegebenenfalls Daten, die gesichert wurden, in Ihrem Google-Konto wiederherstellen."</string> <string name="crypt_keeper_switch_input_method" msgid="4168332125223483198">"Eingabemethode wechseln"</string> - <string name="lock_settings_picker_title" msgid="1095755849152582712">"Display-Sperre wählen"</string> + <string name="lock_settings_picker_title" msgid="1095755849152582712">"Bildschirmsperre wählen"</string> <string name="backup_lock_settings_picker_title" msgid="8530380598637963916">"Ersatzsperre wählen"</string> - <string name="unlock_set_unlock_launch_picker_title" msgid="2084576942666016993">"Display-Sperre"</string> - <string name="unlock_set_unlock_launch_picker_change_title" msgid="5045866882028324941">"Display-Sperre ändern"</string> + <string name="unlock_set_unlock_launch_picker_title" msgid="2084576942666016993">"Bildschirmsperre"</string> + <string name="unlock_set_unlock_launch_picker_change_title" msgid="5045866882028324941">"Bildschirmsperre ändern"</string> <string name="unlock_set_unlock_launch_picker_change_summary" msgid="2790960639554590668">"Sperre (Muster, PIN, Passwort) ändern oder deaktivieren"</string> <string name="unlock_set_unlock_launch_picker_enable_summary" msgid="4791110798817242301">"Methode zum Sperren des Bildschirms wählen"</string> <string name="unlock_backup_info_summary" msgid="108524727803788172">"Wie soll die Entsperrung erfolgen, wenn Sie für Face Unlock nicht erkennbar sind?"</string> @@ -366,7 +367,7 @@ <string name="unlock_set_unlock_mode_pattern" msgid="7837270780919299289">"Muster"</string> <string name="unlock_set_unlock_mode_pin" msgid="3541326261341386690">"PIN"</string> <string name="unlock_set_unlock_mode_password" msgid="1203938057264146610">"Passwort"</string> - <string name="unlock_disable_lock_title" msgid="1427036227416979120">"Display-Sperre deaktivieren"</string> + <string name="unlock_disable_lock_title" msgid="1427036227416979120">"Bildschirmsperre deaktivieren"</string> <string name="unlock_disable_lock_pattern_summary" msgid="6801602880568869201">"Entsperrungsmuster entfernen"</string> <string name="unlock_disable_lock_pin_summary" msgid="8856842745366993387">"Entsperrungs-PIN entfernen"</string> <string name="unlock_disable_lock_password_summary" msgid="192161194564577025">"Entsperrungspasswort entfernen"</string> @@ -444,7 +445,7 @@ <string name="bluetooth_connecting_error_message" msgid="229861986106185022">"Keine Verbindung zu <xliff:g id="DEVICE_NAME">%1$s</xliff:g> möglich"</string> <string name="bluetooth_preference_scan_title" msgid="2277464653118896016">"Scan nach Geräten"</string> <string name="bluetooth_search_for_devices" msgid="5957007154213560390">"Nach Geräten suchen"</string> - <string name="bluetooth_searching_for_devices" msgid="9203739709307871727">"Suche läuft..."</string> + <string name="bluetooth_searching_for_devices" msgid="9203739709307871727">"Suche läuft\u2026"</string> <string name="bluetooth_preference_device_settings" msgid="907776049862799122">"Geräteeinstellungen"</string> <string name="bluetooth_preference_paired_devices" msgid="1970524193086791964">"Pairing-Geräte"</string> <string name="bluetooth_preference_found_devices" msgid="1647983835063249680">"Verfügbar"</string> @@ -453,11 +454,11 @@ <string name="bluetooth_device_context_pair_connect" msgid="7611522504813927727">"Kopplung durchführen und verbinden"</string> <string name="bluetooth_device_context_unpair" msgid="662992425948536144">"Pairing aufheben"</string> <string name="bluetooth_device_context_disconnect_unpair" msgid="7644014238070043798">"Verbindung trennen und Pairing aufheben"</string> - <string name="bluetooth_device_context_connect_advanced" msgid="2643129703569788771">"Optionen..."</string> + <string name="bluetooth_device_context_connect_advanced" msgid="2643129703569788771">"Optionen\u2026"</string> <string name="bluetooth_menu_advanced" msgid="8572178316357220524">"Erweitert"</string> <string name="bluetooth_advanced_titlebar" msgid="2142159726881547669">"Bluetooth - Erweitert"</string> <string name="bluetooth_empty_list_bluetooth_off" msgid="4793562956642282639">"Bluetooth aktivieren, um verfügbare Geräte abzurufen"</string> - <string name="bluetooth_connect_specific_profiles_title" msgid="6952214406025825164">"Verbinden mit..."</string> + <string name="bluetooth_connect_specific_profiles_title" msgid="6952214406025825164">"Verbinden mit\u2026"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Media-Audio"</string> <string name="bluetooth_profile_headset" msgid="8658779596261212609">"Telefon-Audio"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"Dateiübertragung"</string> @@ -501,7 +502,7 @@ <string name="wifi_display_no_devices_found" msgid="8180582698282377626">"Keine kabellose Übertragung in der Nähe"</string> <string name="wifi_display_paired_devices" msgid="7395326840730024303">"Gekoppelte Displays"</string> <string name="wifi_display_available_devices" msgid="4558314642853513487">"Verfügbare Geräte"</string> - <string name="wifi_display_status_connecting" msgid="5688608834000748607">"Verbindung wird hergestellt..."</string> + <string name="wifi_display_status_connecting" msgid="5688608834000748607">"Verbindung wird hergestellt\u2026"</string> <string name="wifi_display_status_connected" msgid="8364125226376985558">"Verbunden"</string> <string name="wifi_display_status_available" msgid="1924167525172207067">"Verfügbar"</string> <string name="wifi_display_details" msgid="7791118209992162698">"Display-Einstellungen"</string> @@ -532,8 +533,8 @@ <string name="wifi_settings_title" msgid="4351120897298124250">"WLAN"</string> <string name="wifi_settings_summary" msgid="668767638556052820">"WLAN-Zugangspunkte festlegen und verwalten"</string> <string name="wifi_setup_wizard_title" msgid="70277346338812325">"WLAN auswählen"</string> - <string name="wifi_starting" msgid="6716593470710880000">"WLAN wird aktiviert..."</string> - <string name="wifi_stopping" msgid="244864762599017659">"WLAN wird deaktiviert..."</string> + <string name="wifi_starting" msgid="6716593470710880000">"WLAN wird aktiviert\u2026"</string> + <string name="wifi_stopping" msgid="244864762599017659">"WLAN wird deaktiviert\u2026"</string> <string name="wifi_error" msgid="3207971103917128179">"Fehler"</string> <string name="wifi_in_airplane_mode" msgid="8652520421778203796">"Im Flugmodus"</string> <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Netzwerkscan nicht möglich"</string> @@ -678,7 +679,7 @@ <string name="dock_settings_summary" msgid="455802113668982481">"Audioeinstellungen für angeschlossenes Dock"</string> <string name="dtmf_tone_enable_title" msgid="8533399267725365088">"Wähltastentöne"</string> <string name="sound_effects_enable_title" msgid="1171590821131077296">"Töne bei Berührung"</string> - <string name="lock_sounds_enable_title" msgid="450098505659399520">"Ton bei Displaysperre"</string> + <string name="lock_sounds_enable_title" msgid="450098505659399520">"Ton bei Bildschirmsperre"</string> <string name="haptic_feedback_enable_title" msgid="2438293710530828760">"Bei Berührung vibrieren"</string> <string name="audio_record_proc_title" msgid="4271091199976457534">"Geräuschunterdrückung"</string> <string name="volume_media_description" msgid="7949355934788807863">"Musik, Video, Spiele und andere Medien"</string> @@ -710,7 +711,7 @@ <string name="search_settings" msgid="1910951467596035063">"Suche"</string> <string name="search_settings_summary" msgid="9205656546570654169">"Sucheinstellungen und Suchverlauf verwalten"</string> <string name="display_settings" msgid="7965901687241669598">"Display"</string> - <string name="accelerometer_title" msgid="7854608399547349157">"Display autom. drehen"</string> + <string name="accelerometer_title" msgid="7854608399547349157">"Automatisch drehen"</string> <string name="accelerometer_summary_on" product="tablet" msgid="429982132339828942">"Ausrichtung beim Drehen des Tablets automatisch ändern"</string> <string name="accelerometer_summary_on" product="default" msgid="1133737282813048021">"Ausrichtung beim Drehen des Telefons automatisch ändern"</string> <string name="accelerometer_summary_off" product="tablet" msgid="4781734213242521682">"Ausrichtung beim Drehen des Tablets automatisch ändern"</string> @@ -803,7 +804,7 @@ <string name="memory_available" msgid="5052397223077021181">"Verfügbar"</string> <string name="memory_available_read_only" msgid="6497534390167920206">"Verfügbar (schreibgeschützt)"</string> <string name="memory_size" msgid="6629067715017232195">"Gesamtspeicher"</string> - <string name="memory_calculating_size" msgid="2188358544203768588">"Wird berechnet..."</string> + <string name="memory_calculating_size" msgid="2188358544203768588">"Wird berechnet\u2026"</string> <string name="memory_apps_usage" msgid="2348501997988663688">"Apps (App-Daten und Medieninhalte)"</string> <string name="memory_media_usage" msgid="3738830697707880405">"Medien"</string> <string name="memory_downloads_usage" msgid="3755173051677533027">"Downloads"</string> @@ -838,8 +839,8 @@ <string name="dlg_error_unmount_text" product="default" msgid="3073562815631781894">"SD-Karte kann nicht entfernt werden. Bitte versuchen Sie es später erneut."</string> <string name="unmount_inform_text" product="nosdcard" msgid="7120241136790744265">"USB-Speicher wird getrennt."</string> <string name="unmount_inform_text" product="default" msgid="1904212716075458402">"SD-Karte wird getrennt."</string> - <string name="sd_ejecting_title" msgid="8824572198034365468">"Trennen..."</string> - <string name="sd_ejecting_summary" msgid="2028753069184908491">"Trennung..."</string> + <string name="sd_ejecting_title" msgid="8824572198034365468">"Trennen\u2026"</string> + <string name="sd_ejecting_summary" msgid="2028753069184908491">"Wird getrennt\u2026"</string> <string name="storage_low_title" msgid="1388569749716225155">"Der Speicherplatz wird knapp"</string> <string name="storage_low_summary" msgid="7737465774892563129">"Einige Systemfunktionen wie die Synchronisierung funktionieren möglicherweise nicht korrekt. Versuchen Sie, Speicherplatz freizugeben, indem Sie Elemente wie Apps oder Medieninhalte löschen oder ihre Offline-Verfügbarkeit aufheben."</string> <string name="storage_menu_usb" msgid="5708207885333243384">"USB-Verbindung (PC)"</string> @@ -852,7 +853,7 @@ <string name="usb_label_installer_cd" msgid="4331173824920630215">"Dateiübertragungstools installieren"</string> <string name="storage_other_users" msgid="808708845102611856">"Andere Nutzer"</string> <string name="battery_status_title" msgid="9159414319574976203">"Akkustatus"</string> - <string name="battery_level_title" msgid="2965679202786873272">"Akkuladung"</string> + <string name="battery_level_title" msgid="2965679202786873272">"Akkustand"</string> <string name="apn_settings" msgid="3743170484827528406">"APNs"</string> <string name="apn_edit" msgid="1354715499708424718">"Zugangspunkt bearbeiten"</string> <string name="apn_not_set" msgid="4974192007399968164">"Nicht definiert"</string> @@ -981,11 +982,11 @@ <string name="terms_title" msgid="7697580845616764642">"Nutzungsbedingungen"</string> <string name="settings_license_activity_title" msgid="7553683406244228650">"Open-Source-Lizenzen"</string> <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Beim Laden der Lizenzen ist ein Problem aufgetreten."</string> - <string name="settings_license_activity_loading" msgid="3337535809093591740">"Wird geladen..."</string> + <string name="settings_license_activity_loading" msgid="3337535809093591740">"Wird geladen\u2026"</string> <string name="settings_safetylegal_title" msgid="1289483965535937431">"Sicherheitsinformationen"</string> <string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"Sicherheitsinformationen"</string> <string name="settings_safetylegal_activity_unreachable" msgid="232523852222964470">"Es ist keine Datenverbindung vorhanden. Rufen Sie %s von einem beliebigen, mit dem Internet verbundenen Computer auf, um diese Informationen jetzt anzuzeigen."</string> - <string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"Wird geladen..."</string> + <string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"Wird geladen\u2026"</string> <string name="lockpassword_choose_your_password_header" msgid="8624900666929394990">"Passwort festlegen"</string> <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Muster wählen"</string> <string name="lockpassword_choose_your_pin_header" msgid="7598849519816138302">"PIN festlegen"</string> @@ -1092,8 +1093,8 @@ <string name="no_applications" msgid="7336588977497084921">"Keine Apps"</string> <string name="internal_storage" msgid="1584700623164275282">"Interner Speicher"</string> <string name="sd_card_storage" product="nosdcard" msgid="2673203150465132465">"USB-Speicher"</string> - <string name="sd_card_storage" product="default" msgid="7623513618171928235">"SD-Kartensp."</string> - <string name="recompute_size" msgid="7722567982831691718">"Größe wird neu berechnet..."</string> + <string name="sd_card_storage" product="default" msgid="7623513618171928235">"SD-Karte"</string> + <string name="recompute_size" msgid="7722567982831691718">"Größe wird neu berechnet\u2026"</string> <string name="clear_data_dlg_title" msgid="5605258400134511197">"App-Daten löschen?"</string> <string name="clear_data_dlg_text" msgid="8847257251846779938">"Alle Daten dieser App werden endgültig gelöscht. Dazu zählen alle Dateien, Einstellungen, Konten, Datenbanken."</string> <string name="dlg_ok" msgid="2402639055725653590">"OK"</string> @@ -1115,7 +1116,7 @@ <string name="join_many_items_middle" msgid="7556692394478220814">"<xliff:g id="ADDED_ITEM">%1$s</xliff:g>, <xliff:g id="REST_OF_ITEMS">%2$s</xliff:g>"</string> <string name="security_settings_billing_desc" msgid="8061019011821282358">"Für diese App können Gebühren anfallen:"</string> <string name="security_settings_premium_sms_desc" msgid="8734171334263713717">"Premium-SMS senden?"</string> - <string name="computing_size" msgid="1599186977475211186">"Berechnung..."</string> + <string name="computing_size" msgid="1599186977475211186">"Berechnung\u2026"</string> <string name="invalid_size_value" msgid="7563537715280712285">"Paketgröße konnte nicht berechnet werden."</string> <string name="empty_list_msg" msgid="5993162337235907160">"Sie haben keine Apps von Drittanbietern installiert."</string> <string name="version_text" msgid="9189073826278676425">"Version <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string> @@ -1226,7 +1227,7 @@ <string name="user_dict_settings_context_menu_delete_title" msgid="9140703913776549054">"Löschen"</string> <string name="user_dict_settings_empty_text" msgid="8165273379942105271">"Es sind noch keine Wörter in Ihrem Wörterbuch vorhanden. Sie können Wörter hinzufügen, indem Sie das \"+\"-Symbol berühren."</string> <string name="user_dict_settings_all_languages" msgid="6742000040975959247">"Für alle Sprachen"</string> - <string name="user_dict_settings_more_languages" msgid="7316375944684977910">"Weitere Sprachen..."</string> + <string name="user_dict_settings_more_languages" msgid="7316375944684977910">"Weitere Sprachen\u2026"</string> <string name="testing" msgid="6584352735303604146">"Test"</string> <string name="testing_phone_info" product="tablet" msgid="193561832258534798">"Tablet-Informationen"</string> <string name="testing_phone_info" product="default" msgid="8656693364332840056">"Telefoninformation"</string> @@ -1307,7 +1308,7 @@ <string name="accessibility_global_gesture_preference_title" msgid="6752037184140789970">"Bedienungshilfenverknüpfung"</string> <string name="accessibility_global_gesture_preference_summary_on" msgid="6180927399052022181">"An"</string> <string name="accessibility_global_gesture_preference_summary_off" msgid="8102103337813609849">"Aus"</string> - <string name="accessibility_global_gesture_preference_description" msgid="750438015254396963">"Wenn diese Funktion aktiviert ist, können Sie Bedienungshilfen schnell in zwei Schritten aktivieren:"\n\n"1. Schritt: Drücken und halten Sie die Ein-/Austaste, bis Sie einen Ton hören oder eine Vibration spüren."\n\n"2. Schritt: Berühren und halten Sie mit zwei Fingern, bis Sie eine Audiobestätigung hören."\n\n"Falls das Gerät mehrere Nutzer hat, werden die Bedienungshilfen durch Verwendung dieser Verknüpfung in der Bildschirmsperre solange aktiviert, bis das Gerät entsperrt ist."</string> + <string name="accessibility_global_gesture_preference_description" msgid="750438015254396963">"Wenn diese Funktion aktiviert ist, können Sie Bedienungshilfen schnell in zwei Schritten aktivieren:"\n\n"1. Schritt: Drücken und halten Sie die Ein/Aus-Taste, bis Sie einen Ton hören oder eine Vibration spüren."\n\n"2. Schritt: Berühren und halten Sie mit zwei Fingern, bis Sie eine Audiobestätigung hören."\n\n"Falls das Gerät mehrere Nutzer hat, werden die Bedienungshilfen durch Verwendung dieser Verknüpfung in der Bildschirmsperre solange aktiviert, bis das Gerät entsperrt ist."</string> <string name="accessibility_toggle_large_text_preference_title" msgid="6307247527580207161">"Großer Text"</string> <string name="accessibility_toggle_screen_magnification_preference_title" msgid="2472285215737820469">"Bildschirmvergrößerung"</string> <string name="accessibility_toggle_screen_magnification_auto_update_preference_title" msgid="7218498768415430963">"Vergrößerung autom. aktualisieren"</string> @@ -1342,7 +1343,7 @@ <string name="battery_since_reset" msgid="7464546661121187045">"Akkuverbrauch seit dem Zurücksetzen"</string> <string name="battery_stats_on_battery" msgid="4970762168505236033">"<xliff:g id="TIME">%1$s</xliff:g> mit Akku"</string> <string name="battery_stats_duration" msgid="7464501326709469282">"<xliff:g id="TIME">%1$s</xliff:g> seit dem Ausstecken"</string> - <string name="battery_stats_charging_label" msgid="4223311142875178785">"Wird geladen..."</string> + <string name="battery_stats_charging_label" msgid="4223311142875178785">"Wird geladen\u2026"</string> <string name="battery_stats_screen_on_label" msgid="7150221809877509708">"Bildschirm an"</string> <string name="battery_stats_gps_on_label" msgid="1193657533641951256">"GPS aktiv"</string> <string name="battery_stats_wifi_running_label" msgid="3093545080361658269">"WLAN"</string> @@ -1461,8 +1462,8 @@ <string name="gadget_state_template" msgid="5156935629902649932">"<xliff:g id="ID_1">%1$s</xliff:g> <xliff:g id="ID_2">%2$s</xliff:g>"</string> <string name="gadget_state_on" msgid="6909119593004937688">"an"</string> <string name="gadget_state_off" msgid="5220212352953066317">"aus"</string> - <string name="gadget_state_turning_on" msgid="3395992057029439039">"Wird aktiviert..."</string> - <string name="gadget_state_turning_off" msgid="2395546048102176157">"Wird deaktiviert..."</string> + <string name="gadget_state_turning_on" msgid="3395992057029439039">"Wird aktiviert\u2026"</string> + <string name="gadget_state_turning_off" msgid="2395546048102176157">"Wird deaktiviert\u2026"</string> <string name="gadget_wifi" msgid="5960290421313061434">"WLAN"</string> <string name="gadget_bluetooth" msgid="8998572807378694410">"Bluetooth"</string> <string name="gadget_gps" msgid="1558173602059236567">"GPS"</string> @@ -1495,7 +1496,7 @@ <string name="credentials_erased" msgid="2907836028586342969">"Speicher wurde gelöscht."</string> <string name="credentials_not_erased" msgid="93461830775441220">"Anmeldedaten nicht gelöscht"</string> <string name="credentials_enabled" msgid="7588607413349978930">"Der Anmeldeinformationsspeicher ist aktiviert."</string> - <string name="credentials_configure_lock_screen_hint" msgid="6757119179588664966">"Zur Verwendung des Anmeldeinformationsspeichers müssen Sie eine PIN oder ein Passwort für die Display-Sperre festlegen."</string> + <string name="credentials_configure_lock_screen_hint" msgid="6757119179588664966">"Zur Verwendung des Anmeldeinformationsspeichers müssen Sie eine PIN oder ein Passwort für die Bildschirmsperre festlegen."</string> <string name="emergency_tone_title" msgid="1055954530111587114">"Notfallsignal"</string> <string name="emergency_tone_summary" msgid="722259232924572153">"Verhalten bei einem Notruf festlegen"</string> <string name="privacy_settings" msgid="5446972770562918934">"Sichern & zurücksetzen"</string> @@ -1533,7 +1534,7 @@ <string name="sound_category_system_title" msgid="1480844520622721141">"System"</string> <string name="wifi_setup_title" msgid="661074868726906436">"WLAN-Einrichtung"</string> <string name="wifi_setup_title_editing_network" msgid="7304321031985059969">"Mit WLAN-Netzwerk verbinden: <xliff:g id="NETWORK_NAME">%s</xliff:g>"</string> - <string name="wifi_setup_title_connecting_network" msgid="3747859666621319757">"Verbinden mit WLAN <xliff:g id="NETWORK_NAME">%s</xliff:g>..."</string> + <string name="wifi_setup_title_connecting_network" msgid="3747859666621319757">"Verbinden mit WLAN <xliff:g id="NETWORK_NAME">%s</xliff:g>\u2026"</string> <string name="wifi_setup_title_connected_network" msgid="209755856836003839">"Mit WLAN-Netzwerk <xliff:g id="NETWORK_NAME">%s</xliff:g> verbunden"</string> <string name="wifi_setup_title_add_network" msgid="6932651000151032301">"Netzwerk hinzufügen"</string> <string name="wifi_setup_not_connected" msgid="6997432604664057052">"Nicht verbunden"</string> @@ -1547,13 +1548,13 @@ <string name="wifi_setup_forget" msgid="2562847595567347526">"Entfernen"</string> <string name="wifi_setup_save" msgid="3659235094218508211">"Speichern"</string> <string name="wifi_setup_cancel" msgid="3185216020264410239">"Abbrechen"</string> - <string name="wifi_setup_status_scanning" msgid="5317003416385428036">"Netzwerke werden überprüft..."</string> + <string name="wifi_setup_status_scanning" msgid="5317003416385428036">"Netzwerke werden überprüft\u2026"</string> <string name="wifi_setup_status_select_network" msgid="7519563569903137003">"Berühren Sie ein Netzwerk, um eine Verbindung herzustellen."</string> <string name="wifi_setup_status_existing_network" msgid="6394925174802598186">"Mit vorhandenem Netzwerk verbinden"</string> <string name="wifi_setup_status_unsecured_network" msgid="8143046977328718252">"Mit ungesich. Netzwerk verbinden"</string> <string name="wifi_setup_status_edit_network" msgid="4765340816724760717">"Netzwerkkonfiguration eingeben"</string> <string name="wifi_setup_status_new_network" msgid="7468952850452301083">"Mit neuem Netzwerk verbinden"</string> - <string name="wifi_setup_status_connecting" msgid="4971421484401530740">"Verbindung wird hergestellt..."</string> + <string name="wifi_setup_status_connecting" msgid="4971421484401530740">"Verbindung wird hergestellt\u2026"</string> <string name="wifi_setup_status_proceed_to_next" msgid="6708250000342940031">"Weiter zum nächsten Schritt"</string> <string name="wifi_setup_status_eap_not_supported" msgid="5335338851032315905">"EAP wird nicht unterstützt."</string> <string name="wifi_setup_eap_not_supported" msgid="595556546597351489">"Während der Einrichtung können Sie keine EAP-WLAN-Verbindung konfigurieren. Sie können dies anschließend in den Einstellungen unter \"Drahtlos & Netzwerke\" vornehmen."</string> @@ -1678,7 +1679,7 @@ <string name="data_usage_menu_show_ethernet" msgid="5181361208532314097">"Ethernet-Nutzung anzeigen"</string> <string name="data_usage_menu_metered" msgid="5056695223222541863">"Mobile Hotspots"</string> <string name="data_usage_menu_auto_sync" msgid="8203999775948778560">"Daten automatisch synchronisieren"</string> - <string name="data_usage_change_cycle" msgid="7776556448920114866">"Zyklus ändern..."</string> + <string name="data_usage_change_cycle" msgid="7776556448920114866">"Zyklus ändern\u2026"</string> <string name="data_usage_pick_cycle_day" msgid="4470796861757050966">"Tag, an dem Datenverbrauchszyklus zurückgesetzt wird:"</string> <string name="data_usage_empty" msgid="8621855507876539282">"Kein Datenverbrauch in diesem Zeitraum"</string> <string name="data_usage_label_foreground" msgid="4938034231928628164">"Vordergrund"</string> @@ -1831,4 +1832,745 @@ <string name="user_picture_title" msgid="7297782792000291692">"Foto-ID"</string> <string name="cell_broadcast_settings" msgid="8415582011920085222">"Cell Broadcasts"</string> <string name="cell_broadcast_settings_summary" msgid="3301339398950905913">"Wählen Sie aus, welche Notfallbenachrichtigungen angezeigt werden sollen."</string> + + <!-- **** CYANOGENMOD ADDITIONS START **** --> + + <string name="ok">OK</string> + + <!-- Quiet hours --> + <string name="quiet_hours_title">Ruhige Stunden</string> + <string name="quiet_hours_summary">Benachrichtigungen in einem vorgegebenen Zeitraum ändern</string> + <string name="quiet_hours_note_title">Hinweis</string> + <string name="quiet_hours_note_summary">Ankommende Anrufe werden während der ruhigen Stunden normal signalisiert</string> + <string name="quiet_hours_enabled">Ruhige Stunden aktiv</string> + <string name="quiet_hours_enabled_on">Ruhige Stunden sind aktiviert</string> + <string name="quiet_hours_enabled_off">Benachrichtigungen werden normal signalisiert</string> + <string name="quiet_hours_start">Beginn der ruhigen Stunden</string> + <string name="quiet_hours_start_summary">Uhrzeit, zu der die ruhigen Stunden beginnen</string> + <string name="quiet_hours_end">Ende der ruhigen Stunden</string> + <string name="quiet_hours_end_summary">Uhrzeit, zu der die ruhigen Stunden enden</string> + <string name="quiet_hours_mute">Benachrichtigungston</string> + <string name="quiet_hours_mute_on">Deaktivieren</string> + <string name="quiet_hours_mute_off">Nicht ändern</string> + <string name="quiet_hours_still">Vibration</string> + <string name="quiet_hours_still_on">Deaktivieren</string> + <string name="quiet_hours_still_off">Nicht ändern</string> + <string name="quiet_hours_dim">Benachrichtigungslicht</string> + <string name="quiet_hours_dim_on">Deaktivieren</string> + <string name="quiet_hours_dim_off">Nicht ändern</string> + <string name="quiet_hours_haptic">Haptisches Feedback</string> + <string name="quiet_hours_haptic_on">Deaktivieren</string> + <string name="quiet_hours_haptic_off">Nicht ändern</string> + <string name="quiet_hours_active_from">Aktiv von</string> + <string name="quiet_hours_active_to">bis</string> + + <!-- Time range preference --> + <string name="start_time_title">Beginn</string> + <string name="end_time_title">Ende</string> + + <!-- convert sound to vibration toggle --> + <string name="notification_convert_sound_to_vibration_title">Bei Benachrichtigungen vibrieren</string> + <string name="notification_convert_sound_to_vibration_summary">Im Vibrationsmodus erfolgt unabhängig von in Apps gesetzten Einstellungen bei jeder Benachrichtigung eine Vibration</string> + + <!-- Hostname setting --> + <string name="device_hostname">Hostname des Geräts</string> + + <!-- About phone scree - Setting option name --> + <string name="mod_version">CyanogenMod-Version</string> + <string name="mod_version_default">Unbekannt</string> + + <!-- About phone screen - Build date of ROM --> + <string name="build_date">Build-Datum</string> + + <!-- About device screen - CPU info --> + <string name="cpu_info">Prozessor</string> + + <!-- About phone screen - Free memory info --> + <string name="mem_info">Arbeitsspeicher</string> + + <!-- Anonymous statistics --> + <string name="anonymous_statistics_title">Anonyme Statistiken</string> + <string name="anonymous_statistics_summary">Helfen, CyanogenMod durch anonyme Gerätestatistiken zu verbessern</string> + <string name="anonymous_statistics_warning_title">ACHTUNG</string> + <string name="anonymous_statistics_warning">Die bei jedem Neustart des Gerätes übermittelten Daten beeinträchtigen nicht die Privatsphäre, da sie keinerlei Rückschlüsse auf den Benutzer zulassen.\n\nFür ein Beispiel der gesendeten Daten bitte auf Vorschau klicken.</string> + <string name="enable_reporting_title">Berichte einschalten</string> + <string name="preview_data_title">Vorschau</string> + <string name="preview_data_summary">%s</string> + <string name="view_stats_title">Statistiken ansehen</string> + <string name="anonymous_learn_more">Mehr erfahren</string> + + <!-- Anonymous statistics - Notification --> + <string name="anonymous_notification_desc">Anonyme Statistiken ein- oder ausschalten</string> + + <!-- Anonymous statistics - Preview --> + <string name="preview_id_title">Eindeutige ID</string> + <string name="preview_device_title">Gerät</string> + <string name="preview_version_title">Version</string> + <string name="preview_country_title">Land</string> + <string name="preview_carrier_title">Anbieter</string> + + <!-- Settings main menu category heading --> + <string name="header_category_interface">Benutzeroberfläche</string> + + <!-- Launcher settings --> + <string name="launcher_settings_title">Launcher</string> + + <!-- Themes settings --> + <string name="themes_settings_title">Designs</string> + + <!-- System interface settings --> + <string name="system_settings_title">System</string> + <string name="system_interface_title">Systemoberfläche</string> + + <!-- Notification drawer --> + <string name="notification_drawer_title">Benachrichtigungsanzeige</string> + + <!-- Lock Screen title --> + <string name="lock_screen_title">Bildschirmsperre</string> + + <!-- Lock screen shortcuts --> + <string name="lockscreen_target_info">Schieber zur gewünschten Position ziehen, um dort eine Anwendung zu platzieren</string> + <string name="lockscreen_target_title">Sperrbildschirm-Anwendungen</string> + <string name="lockscreen_target_summary">Anwendungen zum Sperrbildschirm hinzufügen</string> + <string name="lockscreen_target_reset">Sperrbildschirm-Anwendungen auf Standard zurückgesetzt</string> + <string name="lockscreen_target_save">Sperrbildschirm-Anwendungen gespeichert</string> + <string name="lockscreen_target_reset_title">Zurücksetzen</string> + <string name="lockscreen_target_reset_message">Anwendungen vom Sperrbildschirm löschen und auf Standard zurücksetzen?</string> + <string name="lockscreen_target_empty">Nicht zugewiesen</string> + <string name="lockscreen_target_edit_title">Zuordnung bearbeiten</string> + <string name="lockscreen_target_edit_msg">Anwendung oder Symbol zum Ändern berühren</string> + + <!-- Lock screen vibrate settings --> + <string name="lockscreen_vibrate_enabled_title">Vibrieren</string> + <string name="lockscreen_vibrate_enabled_head">Beim Entsperren vibrieren</string> + + <!-- Lock screen misc. settings --> + <string name="lockscreen_battery_status_title">Batteriestatus anzeigen</string> + <string name="lockscreen_battery_status_charging">Nur beim Laden</string> + <string name="lockscreen_battery_status_alwayson">Immer</string> + + <!-- Profiles settings --> + <string name="profiles_settings_title">Profile</string> + <string name="profiles_general_title">Allgemein</string> + <string name="profiles_add">Hinzufügen</string> + <string name="profile_menu_delete">Löschen</string> + <string name="profile_settings_title">Profil</string> + <string name="profile_empty_list_profiles_off">Profile zum Konfigurieren zuerst einschalten.</string> + + <!-- Add profile --> + <string name="add_profile_dialog_title">Neues Profil anlegen</string> + <string name="profile_name_title">Name</string> + <string name="profile_profile_name_prompt">Name des neuen Profils</string> + <string name="menu_new_profile">Neues Profil</string> + <string name="menu_new_profile_summary">Neues Profil hinzufügen und ändern</string> + <string name="new_profile_name"><Neues Profil></string> + + <!-- Rename dialog --> + <string name="rename_dialog_title">Umbenennen</string> + <string name="rename_dialog_message">Neuen Namen eingeben</string> + <string name="duplicate_profile_name">Doppelter Profilname!</string> + <string name="duplicate_appgroup_name">Doppelter App-Gruppen-Name!</string> + + <!-- Reset profiles --> + <string name="profile_reset_title">Zurücksetzen</string> + <string name="profile_reset_message">Standardeinstellungen wiederherstellen?\n\nAlle benutzerdefinierten Profile und App-Gruppen werden gelöscht.</string> + + <!-- Delete confimation messages --> + <string name="profile_delete_confirm">Dieses Profil wirklich löschen?</string> + <string name="profile_app_delete_confirm">Diese App wirklich aus der App-Gruppe entfernen?</string> + <string name="profile_cannot_delete">Das aktive Profil kann nicht gelöscht werden</string> + + <!-- Profile config screen PreferenceGroup titles --> + <string name="profile_connectionoverrides_title">Verbindungen festlegen</string> + <string name="profile_volumeoverrides_title">Lautstärke festlegen</string> + <string name="profile_vibratoroverrides_title">Vibration festlegen</string> + <string name="connection_state_disabled">Deaktivieren</string> + <string name="connection_state_enabled">Aktivieren</string> + <string name="volume_override_summary">Gesetzt auf</string> + <string name="vibrator_state_disabled">Deaktivieren</string> + <string name="vibrator_state_enabled">Aktivieren</string> + <string name="vibrator_state_silent">Nur wenn lautlos</string> + + <!-- Menu item for managing profiles --> + <string name="profile_profiles_manage">Profile</string> + <string name="profile_profile_manage">Profil bearbeiten</string> + <string name="profile_applist_manage">App-Liste</string> + <string name="profile_appgroups_manage">App-Gruppen</string> + <string name="profile_appgroup_manage">App-Gruppe bearbeiten</string> + + <!-- Profile settings screen --> + <string name="profile_settings">Profileinstellungen</string> + <string name="profile_name">Profilname</string> + + <!-- Profile settings sound modes labels --> + <string name="sound_mode">Benachrichtigungston</string> + <string name="ringer_mode">Klingelton</string> + <string name="lights_mode">Benachrichtigungslicht</string> + <string name="vibrate_mode">Vibration</string> + <string name="choose_soundtone">Benachrichtigungston wählen</string> + <string name="choose_ringtone">Klingelton wählen</string> + + <!-- Sound settings screen --> + <string name="soundtone_title">Benachrichtigungston wählen</string> + <string name="soundtone_summary">""</string> + + <!-- Title for application group setting screen --> + <string name="profile_appgroups_title">App-Gruppen</string> + <string name="profile_applist_title">Apps</string> + <string name="profile_new_appgroup">Neue App-Gruppe</string> + <string name="profile_delete_appgroup">App-Gruppe wirklich komplett löschen?</string> + <string name="profile_appgroup_name_prompt">Name der neuen App-Gruppe</string> + <string name="profile_appgroup_name_title">Name</string> + <string name="profile_add_app">App hinzufügen</string> + <string name="profile_delete_app">App entfernen</string> + + <!-- Add application dialog box title --> + <string name="profile_choose_app">App auswählen</string> + <string name="profile_settings_header">Profileinstellungen</string> + + <!-- Profiles - System settings --> + <string name="profile_system_settings_title">Systemeinstellungen</string> + <string name="profile_lockmode_title">Bildschirmsperre</string> + <string name="profile_lockmode_default">Nicht ändern</string> + <string name="profile_lockmode_insecure">Unsicher sperren</string> + <string name="profile_lockmode_disabled">Nicht sperren</string> + <string name="profile_lockmode_default_summary">Nicht ändern</string> + <string name="profile_lockmode_insecure_summary">Unsichere Sperre</string> + <string name="profile_lockmode_disabled_summary">Nicht sperren</string> + <string name="profile_airplanemode_title">Flugmodus</string> + <string name="profile_disable_screen_lock_summary">Bildschirmsperre deaktivieren, solange dieses Profil aktiv ist</string> + + <string name="vibrator_type_ringer">Anrufe</string> + <string name="vibrator_type_notification">Benachrichtigungen</string> + + <!-- Connection override toggles --> + <string name="possibleButtons">Mögliche Tasten</string> + <string name="toggleWifi">WLAN</string> + <string name="toggleWifiAp">WLAN-Hotspot</string> + <string name="toggleBluetooth">Bluetooth</string> + <string name="toggleGPS">GPS</string> + <string name="toggleData">Mobilfunkdaten</string> + <string name="toggleSync">Synchronisierung</string> + <string name="toggle2g3g">Netzmodus</string> + <string name="toggleSound">Klingelmodus</string> + <string name="toggleBrightness">Helligkeit</string> + <string name="toggleAutoRotate">Bildschirmausrichtung</string> + <string name="toggleScreenTimeout">Bildschirm-Timeout</string> + <string name="toggleAirplane">Flugmodus</string> + <string name="toggleFlashlight">Taschenlampe</string> + <string name="toggleLockScreen">Bildschirmsperre</string> + <string name="toggleWimax">WiMAX</string> + + <!-- Screen security --> + <string name="screen_security_category">Bildschirmsicherheit</string> + <string name="screen_security_title">Sicherheitssperre</string> + <string name="screen_security_summary">Einstellungen zur Sicherheitssperre, Timeouts und Abschaltverzögerungen anzeigen und ändern</string> + <string name="additional_options_title">Weitere Optionen</string> + <string name="unlock_menu_unlock_title">Mit Menü entsperren</string> + <string name="unlock_menu_unlock_summary">Entsperren durch Drücken der Menü-Taste</string> + <string name="unlock_home_unlock_title">Mit Home entsperren</string> + <string name="unlock_home_unlock_summary">Entsperren durch Drücken der Home-Taste</string> + <string name="unlock_quick_unlock_control_title">Schnelles Entsperren</string> + <string name="unlock_quick_unlock_control_summary">Entsperren durch korrekte PIN- oder Passworteingabe</string> + + <!-- Slide lock delay --> + <string name="delay_and_timeout_title">Sperrverzögerung</string> + <string name="slide_lock_delay_title">Bildschirmsperre verzögern</string> + <string name="slide_lock_timeout_delay_title">Verzögerung nach Timeout</string> + <string name="slide_lock_screenoff_delay_title">Verzögerung nach Abschalten</string> + <string name="slide_lock_delay_none">Keine</string> + <string name="slide_lock_delay_1s">1 Sekunde</string> + <string name="slide_lock_delay_5s">5 Sekunden</string> + <string name="slide_lock_delay_10s">10 Sekunden</string> + <string name="slide_lock_delay_15s">15 Sekunden</string> + <string name="slide_lock_delay_30s">30 Sekunden</string> + <string name="slide_lock_delay_1m">1 Minute</string> + <string name="slide_lock_delay_5m">5 Minuten</string> + <string name="slide_lock_delay_10m">10 Minuten</string> + <string name="slide_lock_delay_30m">30 Minuten</string> + + <!-- Performance settings --> + <string name="performance_settings_title">Leistung</string> + + <!-- Performance settings - Warning dialog --> + <string name="performance_settings_warning_title">VORSICHT</string> + <string name="performance_settings_warning">Diese Optionen beeinflussen die Leistung des Systems. Die Optionen sind zum Experimentieren gedacht - bitte keine Fehler melden, wenn die Standardeinstellungen geändert wurden.</string> + + <!-- Performance settings - Processor settings title --> + <string name="processor_title">Prozessor</string> + + <!-- Performance settings - Processor settings summary --> + <string name="processor_summary">Governor und Taktfrequenzen ändern</string> + + <!-- Performance settings - Processor settings sub items --> + <string name="cpu_cur_freq_title">Aktuelle Taktfrequenz</string> + <string name="cpu_governors_title">Governor</string> + <string name="cpu_governors_summary">%S</string> + <string name="cpu_min_freq_title">Minimale Taktfrequenz</string> + <string name="cpu_min_freq_summary">%s</string> + <string name="cpu_max_freq_title">Maximale Taktfrequenz</string> + <string name="cpu_max_freq_summary">%s</string> + <string name="cpu_set_on_boot">Beim Booten einstellen</string> + <string name="cpu_set_on_boot_summary">Prozessoreinstellungen beim Bootvorgang wiederherstellen</string> + + <!-- Performance settings - I/O scheduler settings title --> + <string name="io_scheds_title">I/O-Scheduler</string> + + <!-- Performance settings - I/O scheduler settings summary --> + <string name="io_scheds_summary">I/O-Scheduler wechseln</string> + + <!-- Performance settings - I/O scheduler settings sub items --> + <string name="io_sched_title">I/O-Scheduler</string> + <string name="io_sched_summary">%S</string> + <string name="io_sched_set_on_boot">Beim Booten einstellen</string> + <string name="io_sched_set_on_boot_summary">I/O-Scheduler beim Bootvorgang wiederherstellen</string> + + <!-- Memory management --> + <string name="memory_management_title">Speicherverwaltung</string> + <string name="memory_management_summary">Speichernutzung anpassen, um Systemleistung zu ändern</string> + + <!-- zRam --> + <string name="pref_zram_title">zRam</string> + <string name="pref_zram_summary">Speicherinhalte für mehr virtuellen Speicher mit zRAM komprimieren (Neustart erforderlich)</string> + + <!-- KSM --> + <string name="pref_ksm_title">Kernel Samepage Merging</string> + <string name="pref_ksm_summary">KSM verringert den Speicherbedarf, benötigt aber Rechenleistung</string> + + <!-- Purgeable assets --> + <string name="pref_purgeable_assets_title">Freigabe von Ressourcen</string> + <string name="pref_purgeable_assets_summary">Erlaubt dem System, Speicherbereiche von nicht mehr benutzten Bildern freizugeben, um mehr RAM bereitzustellen (Neustart erforderlich)</string> + + <!-- Performance settings - Dithering --> + <string name="pref_use_dithering_title">Grafik-Verbesserung</string> + <string name="dithering_no_dither">Dithering deaktivieren</string> + <string name="dithering_color_banding">Streifige Farbverläufe beheben (Standard)</string> + <string name="dithering_blur_effect">Streifige Farbverläufe und Unschärfe beheben</string> + + <!-- Performance settings - 16bpp Alpha --> + <string name="pref_use_16bpp_alpha_title">16-Bit-Transparenz</string> + <string name="pref_use_16bpp_alpha_summary">Kann die Performance beim Scrollen verbessern, aber Grafikfehler verursachen (Neustart erforderlich)</string> + + <!-- Display - Rotation --> + <string name="display_rotation_title">Bildschirmausrichtung</string> + <string name="display_rotation_disabled">Deaktiviert</string> + <string name="display_rotation_unit">Grad</string> + <string name="display_rotation_category_title">Bei Drehung um</string> + <string name="display_rotation_0_title">0 Grad</string> + <string name="display_rotation_90_title">90 Grad</string> + <string name="display_rotation_180_title">180 Grad</string> + <string name="display_rotation_270_title">270 Grad</string> + + <!-- Lock screen shortcuts --> + <string name="picker_activities">Aktivitäten</string> + <string name="select_custom_app_title">Anwendung wählen</string> + <string name="select_custom_activity_title">Aktivität wählen</string> + <string name="icon_picker_choose_icon_title">Symbol wählen</string> + <string name="icon_picker_alarm">Wecker</string> + <string name="icon_picker_browser">Browser</string> + <string name="icon_picker_calendar">Kalender</string> + <string name="icon_picker_camera">Kamera</string> + <string name="icon_picker_chrome">Chrome</string> + <string name="icon_picker_email">E-Mail</string> + <string name="icon_picker_email2">E-Mail (Holo)</string> + <string name="icon_picker_facebook">Facebook</string> + <string name="icon_picker_gallery">Galerie</string> + <string name="icon_picker_google_small">Google (klein)</string> + <string name="icon_picker_googleplus">Google+</string> + <string name="icon_picker_googletalk">Google Talk</string> + <string name="icon_picker_maps">Maps</string> + <string name="icon_picker_movie">Film</string> + <string name="icon_picker_music">Musik</string> + <string name="icon_picker_nav_normal">Navigation</string> + <string name="icon_picker_phone">Telefon</string> + <string name="icon_picker_podcast">Podcast</string> + <string name="icon_picker_rss">RSS</string> + <string name="icon_picker_search">Suche</string> + <string name="icon_picker_sms">SMS/MMS</string> + <string name="icon_picker_twitter">Twitter</string> + + <!-- String for IconPicker --> + <string name="icon_picker_title">Symbolquelle wählen</string> + <string name="icon_picker_system_icons_title">Systemsymbole</string> + <string name="icon_picker_gallery_title">Galerie</string> + <string name="icon_picker_pack_title">Symbolbibliothek</string> + + <!-- Increasing ring volume --> + <string name="increasing_ring_title">Ansteigender Klingelton</string> + + <!-- Incoming calls increase in volume --> + <string name="checkbox_increasing_ring">Aktivieren</string> + + <!-- Adjust the minimum increasing ring volume --> + <string name="increasing_ring_min_volume_title">Anfangslautstärke</string> + <string name="increasing_ring_volume_notice">Hinweis:\nDa die Anfangslautstärke größer als die Klingeltonlautstärke ist, wird der Klingelton mit der Klingeltonlautstärke abgespielt.</string> + <string name="increasing_ring_interval_title">Intervall ändern</string> + <string name="increasing_ring_interval_eachring">Bei jedem Klingelton</string> + <string name="increasing_ring_interval_half_second">0,5 Sekunden</string> + <string name="increasing_ring_interval_1second">1 Sekunde</string> + <string name="increasing_ring_interval_2seconds">2 Sekunden</string> + <string name="increasing_ring_interval_3seconds">3 Sekunden</string> + <string name="increasing_ring_interval_5seconds">5 Sekunden</string> + <string name="increasing_ring_interval_10seconds">10 Sekunden</string> + + <!-- Write on NFC tag settings --> + <string name="profile_write_nfc_tag">NFC-Tag beschreiben</string> + <string name="profile_write_touch_tag">Zum Beschreiben Gerät mit NFC-Tag berühren</string> + <string name="profile_write_success">Tag wurde erfolgreich beschrieben</string> + <string name="profile_write_failed">Beschreiben des Tags fehlgeschlagen!</string> + <string name="profile_selected">Profil %1$s aktiviert</string> + <string name="profile_nfc_text">Durch das Schreiben eines Profils auf einen NFC-Tag aktiviert eine Berührung des Geräts mit diesem Tag das entsprechende Profil. Eine weitere Berührung aktiviert das vorherige Profil.</string> + <string name="profile_unknown_nfc_tag">Unbekanntes Profil</string> + <string name="profile_add_nfc_text">Der NFC-Tag verweist auf ein unbekanntes Profil. Das Verknüpfen des NFC-Tags mit einem existierenden Profil ermöglicht es, das entsprechende Profil in Zukunft durch eine Berührung zu aktivieren.</string> + <string name="profile_select">Profil auswählen</string> + + <!-- Display settings screen, notification light settings --> + <string name="notification_light_general_title">Allgemein</string> + <string name="notification_light_applist_title">Apps</string> + <string name="notification_light_phonelist_title">Telefon</string> + <string name="notification_light_use_custom">App-Anpassung</string> + <string name="notification_light_enabled">Aktiviert</string> + <string name="notification_light_disabled">Deaktiviert</string> + <string name="notification_light_default_value">Standard</string> + <string name="notification_light_missed_call_title">Verpasster Anruf</string> + <string name="notification_light_voicemail_title">Sprachnachricht</string> + + <!-- Notification light dialogs --> + <string name="edit_light_settings">Farbeinstellungen ändern</string> + <string name="pulse_speed_title">Pulsdauer und Geschwindigkeit</string> + <string name="picker_arrow">\u2192</string> + <string name="default_time">Normal</string> + <string name="custom_time">Angepasst</string> + <string name="dialog_test">Test</string> + <string name="dialog_delete_title">Löschen</string> + <string name="dialog_delete_message">Anpassung für diese App entfernen?</string> + <string name="dialog_test_message">Display abschalten, um diese Einstellung zu testen.</string> + <string name="dialog_test_button">Abbrechen</string> + + <!-- Values for the notification light pulse spinners --> + <string name="pulse_length_always_on">Immer an</string> + <string name="pulse_length_very_short">Sehr kurz</string> + <string name="pulse_length_short">Kurz</string> + <string name="pulse_length_normal">Normal</string> + <string name="pulse_length_long">Lang</string> + <string name="pulse_length_very_long">Sehr lang</string> + <string name="pulse_speed_very_fast">Sehr schnell</string> + <string name="pulse_speed_fast">Schnell</string> + <string name="pulse_speed_normal">Normal</string> + <string name="pulse_speed_slow">Langsam</string> + <string name="pulse_speed_very_slow">Sehr langsam</string> + + <!-- Battery light settings --> + <string name="battery_light_title">Akkulicht</string> + <string name="battery_low_pulse_title">Bei schwachem Akku pulsieren</string> + <string name="battery_light_list_title">Farben</string> + <string name="battery_light_low_color_title">Akku schwach</string> + <string name="battery_light_medium_color_title">Laden</string> + <string name="battery_light_full_color_title">Aufgeladen</string> + + <!-- Sound settings screen --> + <string name="volume_overlay_title">Lautstärkeregler</string> + <string name="volbtn_music_controls_title">Lautstärketasten und Musik</string> + <string name="volbtn_music_controls_summary">Bei abgeschaltetem Bildschirm durch langen Druck auf Lautstärketasten zum nächsten / vorherigen Titel springen</string> + <string name="volume_ring_only_description">Klingelton</string> + <string name="ring_mode_title">Klingelmodus</string> + <string name="ring_mode_normal">Normal</string> + <string name="ring_mode_vibrate">Vibration</string> + <string name="ring_mode_mute">Lautlos</string> + + <!-- Link volume to settings --> + <string name="link_volume_ringtones">Gleiche Lautstärke für Klingelton und Benachrichtigungen</string> + <string name="link_volume_mutes">Klingelton und Benachrichtigungen gemeinsam stummschalten</string> + + <!-- Hardware keys --> + <string name="hardware_keys_title">Hardware-Tasten</string> + <string name="hardware_keys_bindings_title">Tastenaktionen</string> + <string name="hardware_keys_enable_custom_title">Benutzerdefinierte Aktionen aktivieren</string> + <string name="hardware_keys_home_long_press_title">Home (gedrückt halten)</string> + <string name="hardware_keys_menu_press_title">Menü</string> + <string name="hardware_keys_menu_long_press_title">Menü (gedrückt halten)</string> + <string name="hardware_keys_assist_press_title">Suche</string> + <string name="hardware_keys_assist_long_press_title">Suche (gedrückt halten)</string> + <string name="hardware_keys_app_switch_press_title">Letze Apps</string> + <string name="hardware_keys_app_switch_long_press_title">Letze Apps (gedrückt halten)</string> + <string name="hardware_keys_show_overflow_title">Zeige In-App Menü-Taste</string> + <string name="hardware_keys_show_overflow_summary">Die virtuelle Menü-Taste dauerhaft innerhalb von Apps anzeigen</string> + <string name="hardware_keys_show_overflow_toast_enable">Die virtuelle Menü-Taste wird vermutlich erst nach einem Neustart der App sichtbar.</string> + <string name="hardware_keys_show_overflow_toast_disable">Die virtuelle Menü-Taste wird vermutlich erst nach einem Neustart der App unsichtbar.</string> + <string name="hardware_keys_action_nothing">Keine Aktion</string> + <string name="hardware_keys_action_menu">Öffne/Schließe Menü</string> + <string name="hardware_keys_action_app_switch">Letzte Apps</string> + <string name="hardware_keys_action_search">Suchassistent</string> + <string name="hardware_keys_action_voice_search">Sprachsuche</string> + <string name="hardware_keys_action_in_app_search">In-App-Suche</string> + + <!-- Power widget --> + <string name="power_widget_title">Energie-Widget</string> + <string name="title_expanded_widget">Energiesteuerung</string> + <string name="power_widget_behavior">Widget-Verhalten</string> + <string name="title_expanded_hide_onchange">Nach Änd. schließen</string> + <string name="title_expanded_hide_indicator">Indikator verbergen</string> + <string name="title_expanded_hide_scrollbar">Scrollbar verbergen</string> + <string name="title_widget_picker">Schaltflächen</string> + <string name="summary_widget_picker">Schaltflächen auswählen</string> + <string name="title_widget_order">Reihenfolge</string> + <string name="summary_widget_order">Anordnung der Schaltflächen ändern</string> + <string name="title_buttons">Schaltflächen</string> + <string name="title_toggle_wifi">WLAN</string> + <string name="title_toggle_bluetooth">Bluetooth</string> + <string name="title_toggle_gps">GPS</string> + <string name="title_toggle_sound">Klingelmodus</string> + <string name="title_toggle_brightness">Helligkeit</string> + <string name="title_toggle_sync">Synchronisierung</string> + <string name="title_toggle_wifiap">WLAN-Hotspot</string> + <string name="title_toggle_screentimeout">Bildschirm-Timeout</string> + <string name="title_toggle_mobiledata">Mobilfunkdaten</string> + <string name="title_toggle_lockscreen">Bildschirmsperre</string> + <string name="title_toggle_networkmode">Netzmodus</string> + <string name="title_toggle_autorotate">Autom. Ausrichtung</string> + <string name="title_toggle_airplane">Flugmodus</string> + <string name="title_toggle_flashlight">Taschenlampe</string> + <string name="title_toggle_sleep">Standby</string> + <string name="title_toggle_media_play_pause">Medien: Play/Pause</string> + <string name="title_toggle_media_previous">Medien: Vorheriger Titel</string> + <string name="title_toggle_media_next">Medien: Nächster Titel</string> + <string name="title_toggle_lte">LTE</string> + <string name="title_toggle_wimax">WiMAX</string> + <string name="title_button_modes">Schaltflächenfunktionen</string> + <string name="pref_brightness_mode_title">Helligkeitsstufen</string> + <string name="pref_brightness_mode_summary">Helligkeitsstufen, zwischen denen umgeschaltet wird</string> + <string name="cm_brightness_mode_auto">Automatisch</string> + <string name="cm_brightness_mode_dim">Dunkel</string> + <string name="pref_network_mode_title">Netzmodi</string> + <string name="pref_screentimeout_mode_title">Bildschirm-Timeout</string> + <string name="pref_ring_mode_title">Klingelmodi</string> + <string name="pref_ring_mode_summary">Klingelmodi, zwischen denen umgeschaltet wird</string> + <string name="cm_sound_mode_silent">Lautlos</string> + <string name="cm_sound_mode_vibrate">Vibration</string> + <string name="cm_sound_mode_sound">Ton</string> + <string name="cm_sound_mode_soundVibrate">Ton + Vibration</string> + <string name="pref_flash_mode_title">Taschenlampe</string> + <string name="expanded_haptic_feedback_title">Haptisches Feedback</string> + + <!-- Kill app long-press back --> + <string name="kill_app_longpress_back">App beenden</string> + <string name="kill_app_longpress_back_summary">Gedrückt halten der Zurück-Taste beendet die Anwendung im Vordergrund</string> + + <!-- Change log strings --> + <string name="changelog_title">Changelog anzeigen</string> + <string name="changelog_loading">Changelog wird geladen\u2026</string> + <string name="changelog_error">Changelog kann nicht geladen werden</string> + <string name="changelog_unknown">Unbekannt</string> + <string name="changelog_version">Version</string> + + <!-- Power menu enable disable --> + <string name="power_menu_title">Ein/Aus-Taste</string> + <string name="power_menu_reboot_title">Neustart-Menü</string> + <string name="power_menu_screenshot_title">Bildschirmfoto</string> + <string name="power_menu_expanded_desktop">Erweiterter Desktop</string> + <string name="power_menu_profiles_title">Profilwechsel</string> + <string name="power_menu_airplane_title">Flugmodus</string> + <string name="power_menu_user_title">Benutzer</string> + <string name="power_menu_sound_title">Lautlos</string> + + <!-- CM Updater --> + <string name="cmupdate_settings_title">CyanogenMod-Updates</string> + <string name="cmupdate_settings_summary">Auf neue Versionen prüfen und diese installieren</string> + + <!-- Advanced - Device specific settings --> + <string name="advanced_settings_title">Erweitert</string> + + <!-- IME switcher notifcation --> + <string name="ime_switcher_notify">Auswahl-Benachrichtigung</string> + <string name="ime_switcher_notify_summary">Benachrichtigung zur Auswahl der Eingabemethode in der Statusleiste anzeigen</string> + + <!-- Status bar --> + <string name="status_bar_title">Statusleiste</string> + <string name="status_bar_clock_title">Uhrzeit</string> + <string name="status_bar_general_title">Allgemein</string> + <string name="status_bar_show_clock_title">Uhr anzeigen</string> + <string name="status_bar_am_pm_title">Tageszeitanzeige</string> + <string name="status_bar_am_pm_info">24-Stunden-Modus ist aktiviert</string> + <string name="status_bar_battery_title">Akkustand</string> + <string name="status_bar_toggle_brightness">Helligkeitssteuerung</string> + <string name="status_bar_toggle_brightness_summary">Helligkeit durch Wischen über die Statusleiste ändern</string> + <string name="status_bar_toggle_info">Automatische Helligkeit ist aktiviert</string> + <string name="status_bar_signal_text_title">Signalstärke</string> + <string name="status_bar_style_icon">Symbol</string> + <string name="status_bar_style_hidden">Versteckt</string> + <string name="status_bar_signal_text_show_text">Wert (dBm)</string> + <string name="status_bar_battery_status_percentage">Symbol & Prozent</string> + <string name="status_bar_battery_status_circle">Kreis</string> + <string name="status_bar_battery_status_circle_percentage">Kreis & Prozent</string> + + <!-- Status bar notification count --> + <string name="status_bar_notif_count_title">Benachrichtigungszähler</string> + <string name="status_bar_notif_count_summary">Anzahl der ungelesenen Benachrichtigungen in der Statusleiste anzeigen</string> + + <!-- Wakeup options --> + <string name="display_category_wakeup_options_title">Aufwecken</string> + <string name="pref_volume_wake_title">Lautstärketaste</string> + <string name="pref_volume_wake_summary">Lautstärketasten wecken das Gerät und aktivieren den Bildschirm</string> + + <!-- Setting checkbox title for root access --> + <string name="root_access">Root-Zugriff</string> + <string name="root_access_warning_title">Root-Zugriff erlauben?</string> + <string name="root_access_warning_message">Apps den Root-Zugriff zu ermöglichen kann gefährlich sein und die Sicherheit des Gerätes beeinträchtigen!</string> + <string name="root_access_none">Ausgeschaltet</string> + <string name="root_access_apps">Nur Apps</string> + <string name="root_access_adb">Nur ADB</string> + <string name="root_access_all">Apps & ADB</string> + + <!-- Setting checkbox summary for displaying USB debugging notification --> + <string name="adb_notify">USB-Debugging-Info</string> + <string name="adb_notify_summary">Eine Benachrichtigung zeigen, wenn USB-Debugging verbunden ist</string> + + <!-- Launches dev tools --> + <string name="development_tools_title">Entwickler-Werkzeuge</string> + + <!-- Android debugging over WiFi --> + <string name="adb_over_network">ADB über Netzwerk</string> + <string name="adb_over_network_summary">TCP/IP-Debugging über Netzwerkschnittstellen (WLAN, USB-Netzwerke, \u2026) aktivieren. Diese Einstellung wird beim Neustart zurückgesetzt.</string> + + <!-- Warning for ADB over network --> + <string name="adb_over_network_warning">WARNUNG:\n\nWenn ADB über Netzwerk eingeschaltet wird, ist das Gerät anfällig für das Eindringen Fremder aus allen verbundenen Netzwerken - auch Mobilfunknetzwerken.\n\nEine Verbindung sollte nur mit einem vertrauenswürdigen Netzwerk hergestellt werden.\n\nTrotzdem aktivieren?</string> + + <!-- Lock screen button actions --> + <string name="lockscreen_buttons_title">Hardwaretasten-Aktionen</string> + <string name="lockscreen_buttons_summary">Hardwaretasten-Aktionen anzeigen oder ändern</string> + <string name="lockscreen_long_press_back_title">Zurück (gedrückt halten)</string> + <string name="lockscreen_long_press_home_title">Home (gedrückt halten)</string> + <string name="lockscreen_long_press_menu_title">Menü (gedrückt halten)</string> + <string name="lockscreen_buttons_no_action">Keine Aktion</string> + <string name="lockscreen_buttons_flashlight">Taschenlampe</string> + <string name="lockscreen_buttons_next">Medien: Nächster Titel</string> + <string name="lockscreen_buttons_previous">Medien: Vorheriger Titel</string> + <string name="lockscreen_buttons_playpause">Medien: Play/Pause</string> + <string name="lockscreen_buttons_toggle_sound">Klingelmodus</string> + + <!-- Quick settings panel --> + <string name="quick_settings_panel_title">Schnelleinstellungen</string> + <string name="quick_settings_title">Schnelleinstellungen</string> + <string name="title_static_tiles">Statische Kacheln</string> + <string name="tile_picker_title">Kacheln anordnen</string> + <string name="tile_picker_summary">Kacheln auswählen oder ihre Reihenfolge ändern</string> + <string name="tile_choose_title">Kachel auswählen</string> + + <string name="title_tile_airplane">Flugmodus</string> + <string name="title_tile_battery">Akkustand</string> + <string name="title_tile_bluetooth">Bluetooth</string> + <string name="title_tile_brightness">Helligkeit</string> + <string name="title_tile_sleep">Standby</string> + <string name="title_tile_gps">GPS</string> + <string name="title_tile_torch">Taschenlampe</string> + <string name="title_tile_lockscreen">Bildschirmsperre</string> + <string name="title_tile_lte">LTE</string> + <string name="title_tile_mobiledata">Mobilfunkdaten</string> + <string name="title_tile_profile">Profile</string> + <string name="title_tile_autorotate">Bildschirmausrichtung</string> + <string name="title_tile_settings">Einstellungen</string> + <string name="title_tile_sound">Klingelmodus</string> + <string name="title_tile_sync">Sync</string> + <string name="title_tile_wifiap">WLAN-Hotspot</string> + <string name="title_tile_wifi">WLAN</string> + <string name="title_tile_wimax">WiMAX</string> + <string name="title_tile_user">Benutzer wechseln</string> + <string name="title_tile_networkmode">Netzmodus</string> + <string name="title_tile_nfc">NFC</string> + <string name="title_tile_screen_timeout">Bildschirm-Timeout</string> + <string name="title_tile_usb_tether">USB-Tethering</string> + + <string name="title_dynamic_tiles">Dynamische Kacheln</string> + <string name="dynamic_tiles_note_title">Hinweis</string> + <string name="dynamic_tiles_note_summary">Dynamische Kacheln werden nur angezeigt, wenn das entsprechende Systemereignis eintritt</string> + <string name="title_dynamic_alarm">Wecker</string> + <string name="title_dynamic_bugreport">Fehlerprotokollierung</string> + <string name="title_dynamic_ime">Eingabemethode wählen</string> + <string name="title_dynamic_usbtether">USB-Tethering</string> + <string name="title_dynamic_wifi">Kabellose Übertragung</string> + + <string name="title_general">Allgemein</string> + <string name="title_quick_pulldown">Schnelles Öffnen</string> + <string name="summary_quick_pulldown">Herunterziehen der Benachrichtigungsleiste am %1$s Rand öffnet die Schnelleinstellungen</string> + <string name="quick_pulldown_summary_left">linken</string> + <string name="quick_pulldown_summary_right">rechten</string> + <string name="quick_pulldown_off">Deaktiviert</string> + <string name="quick_pulldown_left">Linke Seite</string> + <string name="quick_pulldown_right">Rechte Seite</string> + <string name="title_collapse_panel">Automatisch schließen</string> + <string name="summary_collapse_panel">Schnelleinstellungen nach Auswahl automatisch schließen</string> + + <!-- Reset tiles --> + <string name="tiles_reset_title">Zurücksetzen</string> + <string name="tiles_reset_message">Auf Standard zurücksetzen?</string> + + <!-- Volume key cursor control --> + <string name="volume_key_cursor_control_title">Bewegung des Cursors mithilfe der Lautstärkewippe</string> + <string name="volume_key_cursor_control_off">Deaktiviert</string> + <string name="volume_key_cursor_control_on">Lautstärkewippe oben/unten bewegt den Cursor nach links/rechts</string> + <string name="volume_key_cursor_control_on_reverse">Lautstärkewippe oben/unten bewegt den Cursor nach rechts/links</string> + + <!-- Wi-Fi countrycode --> + <string name="wifi_setting_countrycode_title">Ländercode</string> + <string name="wifi_setting_countrycode_summary">WLAN-Ländercode festlegen</string> + <string name="wifi_setting_countrycode_error">Beim Festlegen des WLAN-Ländercodes ist ein Problem aufgetreten.</string> + + <!-- Wi-Fi priority --> + <string name="wifi_setting_priority_title">WLAN-Priorität</string> + <string name="wifi_setting_priority_summary">Priorität der gespeicherten Netzwerke festlegen</string> + + <!-- Wireless display --> + <string name="pref_wifi_disable_hdcp_title">HDCP-Aushandlung überspringen</string> + <string name="pref_wifi_disable_hdcp_summary">Diese Option kann helfen, falls bei bestehender Verbindung keine Ausgabe erfolgt</string> + + <!-- Sms security limit --> + <string name="app_security_title">App-Sicherheit</string> + <string name="sms_security_check_limit_title">SMS-Begrenzung</string> + <string name="sms_security_check_limit_summary">Apps können %d Nachrichten in 30 Minuten senden, bevor eine Bestätigung erforderlich ist</string> + <string name="sms_security_check_limit_default">30 (Standard)</string> + + <!-- Lock clock --> + <string name="lock_clock_title">Uhr-Widget</string> + <string name="lock_clock_summary">\'cLock-Widget\' konfigurieren</string> + + <!-- Stylus icon --> + <string name="stylus_icon_enabled_title">Stift-Symbol</string> + <string name="stylus_icon_enabled_summary">Zeiger einblenden, wenn ein Stift verwendet wird</string> + + <!-- Awnser call with home button --> + <string name="accessibility_home_button_answers_call_prerefence_title">Anruf mit Home-Taste annehmen</string> + + <!-- Navigation bar --> + <string name="navigation_bar_title">Navigationsleiste</string> + <string name="navigation_bar_help_text">1 - Schloss-Icon berühren, um zu beginnen\n\n2 - Eine Schaltfläche berühren, um ihr eine Funktion zuzuweisen oder diese zu ändern\n\n3 - Eine Schaltfläche gedrückt halten, um sie zu verschieben\n\n4 - Schloss-Icon erneut berühren, um die Änderungen zu speichern\n\n5 - Reset-Icon berühren, um die Vorgaben wiederherzustellen\n\n</string> + <string name="navigation_bar_tips">\u2022 Eine Funktion kann nur einer Schaltfläche gleichzeitig zugewiesen werden\n\n\u2022 Die Funktion der Home-Schaltfläche kann nicht verändert werden\n\n\u2022 Die seitlichen Schaltflächen können nicht verschoben werden</string> + <string name="navigation_bar_tips_title">Schnellhilfe</string> + <string name="navigation_bar_reset_message">Vorgaben wiederherstellen?</string> + <string name="navigation_bar_save_message">Die Einstellungen der Navigationsleiste wurden gespeichert</string> + <string name="navigation_bar_reset_toast">Die Vorgaben der Navigationsleiste wurden wiederhergestellt</string> + <string name="navigation_bar_menu_editable">Änderbar</string> + <string name="navigation_bar_menu_locked">Gesperrt</string> + + <!-- Maximize lock screen widgets --> + <string name="lockscreen_maximize_widgets_title">Widgets maximieren</string> + <string name="lockscreen_maximize_widgets_summary">Beim Einschalten Widgets maximiert und Bildschirmsperre minimiert anzeigen</string> + + <!-- Start music player when headset is connected --> + <string name="headset_category_title">Kopfhörer</string> + <string name="headset_connect_player_title">Beim Verbinden Musik-App starten</string> + + <!-- Storage settings - USB mass storage --> + <string name="usb_mass_storage_title">Massenspeicher</string> + <string name="usb_mass_storage_summary">USB-Massenspeicher aktivieren</string> + + <!-- Custom lock screen background --> + <string name="lockscreen_custom_background_title">Hintergrund</string> + <string name="lockscreen_custom_background_dialog_title">Farbe auswählen</string> + <string name="lockscreen_background_result_successful">Hintergrund wurde geändert</string> + <string name="lockscreen_background_result_not_successful">Hintergrund wurde nicht geändert</string> + <string name="lockscreen_background_color_fill">Farbfüllung</string> + <string name="lockscreen_background_custom_image">Benutzerdefiniertes Bild</string> + <string name="lockscreen_background_default_wallpaper">Standardhintergrund</string> + + <!-- **** CYANOGENMOD ADDITIONS END **** --> </resources> diff --git a/res/values-el/arrays.xml b/res/values-el/arrays.xml index f59025a..c535e7e 100644 --- a/res/values-el/arrays.xml +++ b/res/values-el/arrays.xml @@ -81,13 +81,13 @@ </string-array> <string-array name="wifi_status"> <item msgid="1922181315419294640"></item> - <item msgid="8934131797783724664">"Σάρωση..."</item> - <item msgid="8513729475867537913">"Σύνδεση..."</item> - <item msgid="515055375277271756">"Έλεγχος ταυτότητας..."</item> - <item msgid="1943354004029184381">"Λήψη διεύθυνσης IP…"</item> + <item msgid="8934131797783724664">"Σάρωση\u2026"</item> + <item msgid="8513729475867537913">"Σύνδεση\u2026"</item> + <item msgid="515055375277271756">"Έλεγχος ταυτότητας\u2026"</item> + <item msgid="1943354004029184381">"Λήψη διεύθυνσης IP\u2026"</item> <item msgid="4221763391123233270">"Συνδεδεμένο"</item> <item msgid="624838831631122137">"Σε αναστολή"</item> - <item msgid="7979680559596111948">"Αποσύνδεση..."</item> + <item msgid="7979680559596111948">"Αποσύνδεση\u2026"</item> <item msgid="1634960474403853625">"Αποσυνδέθηκε"</item> <item msgid="746097431216080650">"Ανεπιτυχής"</item> <item msgid="6367044185730295334">"Αποκλεισμένο"</item> @@ -95,31 +95,18 @@ </string-array> <string-array name="wifi_status_with_ssid"> <item msgid="7714855332363650812"></item> - <item msgid="8878186979715711006">"Σάρωση..."</item> - <item msgid="355508996603873860">"Σύνδεση σε <xliff:g id="NETWORK_NAME">%1$s</xliff:g>..."</item> - <item msgid="554971459996405634">"Έλεγχος ταυτότητας με <xliff:g id="NETWORK_NAME">%1$s</xliff:g>…"</item> - <item msgid="7928343808033020343">"Λήψη διεύθυνσης IP από <xliff:g id="NETWORK_NAME">%1$s</xliff:g>..."</item> + <item msgid="8878186979715711006">"Σάρωση\u2026"</item> + <item msgid="355508996603873860">"Σύνδεση σε <xliff:g id="NETWORK_NAME">%1$s</xliff:g>\u2026"</item> + <item msgid="554971459996405634">"Έλεγχος ταυτότητας με <xliff:g id="NETWORK_NAME">%1$s</xliff:g>\u2026"</item> + <item msgid="7928343808033020343">"Λήψη διεύθυνσης IP από <xliff:g id="NETWORK_NAME">%1$s</xliff:g>\u2026"</item> <item msgid="8937994881315223448">"Συνδεδεμένο σε <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</item> <item msgid="1330262655415760617">"Σε αναστολή"</item> - <item msgid="7698638434317271902">"Αποσύνδεση από <xliff:g id="NETWORK_NAME">%1$s</xliff:g>…"</item> + <item msgid="7698638434317271902">"Αποσύνδεση από <xliff:g id="NETWORK_NAME">%1$s</xliff:g>\u2026"</item> <item msgid="197508606402264311">"Αποσυνδέθηκε"</item> <item msgid="8578370891960825148">"Ανεπιτυχής"</item> <item msgid="5660739516542454527">"Αποκλεισμένο"</item> <item msgid="1805837518286731242">"Προσωρινή αποφυγή αδύναμης σύνδεσης"</item> </string-array> - <!-- no translation found for wifi_security:0 (8491993170197127709) --> - <!-- no translation found for wifi_security:1 (6524315248437318854) --> - <!-- no translation found for wifi_security:2 (1532568756571457140) --> - <!-- no translation found for wifi_security:3 (3620707702811709779) --> - <!-- no translation found for wifi_security_no_eap:0 (2084555984818107151) --> - <!-- no translation found for wifi_security_no_eap:1 (397579322683471524) --> - <!-- no translation found for wifi_security_no_eap:2 (1968820975358150484) --> - <string-array name="wifi_eap_method"> - <item msgid="1160193392455075561">"PEAP"</item> - <item msgid="7981731051382306293">"TLS"</item> - <item msgid="2892994535305020162">"TTLS"</item> - <item msgid="435667726254379514">"PWD"</item> - </string-array> <string-array name="wifi_p2p_wps_setup"> <item msgid="5085064298144493867">"Πάτημα κουμπιού"</item> <item msgid="1624323946324499595">"PIN από ομότιμη συσκευή"</item> @@ -159,17 +146,24 @@ <item msgid="6670588712989942178">"Μόνο 5 GHz"</item> <item msgid="2715516524973207876">"Μόνο 2,4 GHz"</item> </string-array> + <string-array name="wifi_countrycode_entries"> + <item>Ηνωμένες Πολιτείες</item> + <item>Καναδάς, Ταϊβάν</item> + <item>Γερμανία</item> + <item>Ευρώπη</item> + <item>Ιαπωνία, Ρωσία</item> + <item>Αυστραλία</item> + <item>Κίνα</item> + <item>Κορέα</item> + <item>Τουρκία</item> + <item>Σιγκαπούρη</item> + <item>Βραζιλία</item> + </string-array> <string-array name="usage_stats_display_order_types"> <item msgid="2100172576767439288">"Χρόνος χρήσης"</item> <item msgid="3703676222230317933">"Εκκίνηση καταμέτρησης"</item> <item msgid="2502754479975776899">"Όνομα εφαρμογής"</item> </string-array> - <string-array name="wifi_eap_entries"> - <item msgid="8615575908717909498">"PEAP"</item> - <item msgid="8667872640594311615">"TLS"</item> - <item msgid="7182812872984827322">"TTLS"</item> - <item msgid="2318274046749286642">"PWD"</item> - </string-array> <string-array name="wifi_phase2_entries"> <item msgid="1818786254010764570">"Κανένα"</item> <item msgid="6189918678874123056">"PAP"</item> @@ -179,11 +173,11 @@ </string-array> <string-array name="wifi_ip_settings"> <item msgid="3906714200993111074">"DHCP"</item> - <item msgid="628395202971532382">"Στατικό"</item> + <item msgid="628395202971532382">"Στατική"</item> </string-array> <string-array name="wifi_proxy_settings"> <item msgid="4473276491748503377">"Κανένας"</item> - <item msgid="8673874894887358090">"Μη αυτόματες"</item> + <item msgid="8673874894887358090">"Μη αυτόματος"</item> </string-array> <string-array name="emergency_tone_entries"> <item msgid="5165439859689033665">"Απενεργοποιημένο"</item> @@ -196,11 +190,6 @@ <item msgid="535934025797984365">"CHAP"</item> <item msgid="8383098660619805783">"PAP ή CHAP"</item> </string-array> - <string-array name="apn_protocol_entries"> - <item msgid="4852355456199302715">"IPv4"</item> - <item msgid="4394161344888484571">"IPv6"</item> - <item msgid="8084938354605535381">"IPv4/IPv6"</item> - </string-array> <string-array name="bearer_entries"> <item msgid="1770285336669531300">"LTE"</item> <item msgid="3044323519470167625">"eHRPD"</item> @@ -227,22 +216,22 @@ <item msgid="45075631231212732">"Να χρησιμοποιείται πάντα έλεγχος HDCP"</item> </string-array> <string-array name="window_animation_scale_entries"> - <item msgid="8134156599370824081">"Κινούμ.εικόνες απενεργοποιημένες"</item> - <item msgid="6624864048416710414">"Κλίμ. κινούμ. εικ. 0,5x"</item> - <item msgid="2219332261255416635">"Κλίμ. κινούμ. εικ. 1x"</item> - <item msgid="3544428804137048509">"Κλίμ. κινούμ. εικ. 1,5x"</item> - <item msgid="3110710404225974514">"Κλίμ. κινούμ. εικ. 2x"</item> - <item msgid="4402738611528318731">"Κλίμ. κινούμ. εικ. 5x"</item> - <item msgid="6189539267968330656">"Κλίμ. κινούμ. εικ. 10x"</item> + <item msgid="8134156599370824081">"Κινούμ. εικόνες απενεργοποιημένες"</item> + <item msgid="6624864048416710414">"Κλίμακα κινούμενων εικόνων 0,5x"</item> + <item msgid="2219332261255416635">"Κλίμακα κινούμενων εικόνων 1x"</item> + <item msgid="3544428804137048509">"Κλίμακα κινούμενων εικόνων 1,5x"</item> + <item msgid="3110710404225974514">"Κλίμακα κινούμενων εικόνων 2x"</item> + <item msgid="4402738611528318731">"Κλίμακα κινούμενων εικόνων 5x"</item> + <item msgid="6189539267968330656">"Κλίμακα κινούμενων εικόνων 10x"</item> </string-array> <string-array name="transition_animation_scale_entries"> - <item msgid="8464255836173039442">"Κινούμ.εικόνες απενεργοποιημένες"</item> - <item msgid="3375781541913316411">"Κλίμ. κινούμ. εικ. 0,5x"</item> - <item msgid="1991041427801869945">"Κλίμ. κινούμ. εικ. 1x"</item> - <item msgid="4012689927622382874">"Κλίμ. κινούμ. εικ. 1,5x"</item> - <item msgid="3289156759925947169">"Κλίμ. κινούμ. εικ. 2x"</item> - <item msgid="7705857441213621835">"Κλίμ. κινούμ. εικ. 5x"</item> - <item msgid="6660750935954853365">"Κλίμ. κινούμ. εικ. 10x"</item> + <item msgid="8464255836173039442">"Κινούμ. εικόνες απενεργοποιημένες"</item> + <item msgid="3375781541913316411">"Κλίμακα κινούμενων εικόνων 0,5x"</item> + <item msgid="1991041427801869945">"Κλίμακα κινούμενων εικόνων 1x"</item> + <item msgid="4012689927622382874">"Κλίμακα κινούμενων εικόνων 1,5x"</item> + <item msgid="3289156759925947169">"Κλίμακα κινούμενων εικόνων 2x"</item> + <item msgid="7705857441213621835">"Κλίμακα κινούμενων εικόνων 5x"</item> + <item msgid="6660750935954853365">"Κλίμακα κινούμενων εικόνων 10x"</item> </string-array> <string-array name="animator_duration_scale_entries"> <item msgid="6039901060648228241">"Κινούμ. εικόνες απενεργοποιημένες"</item> @@ -284,8 +273,8 @@ </string-array> <string-array name="vpn_states"> <item msgid="8621078286418985762">"Αποσυνδέθηκε"</item> - <item msgid="6692305604213080515">"Προετοιμασία..."</item> - <item msgid="8001704909356800092">"Γίνεται σύνδεση..."</item> + <item msgid="6692305604213080515">"Προετοιμασία\u2026"</item> + <item msgid="8001704909356800092">"Γίνεται σύνδεση\u2026"</item> <item msgid="4039737283841672166">"Σε σύνδεση"</item> <item msgid="4042143101664725090">"Λήξη ορίου χρόνου"</item> <item msgid="7664124146786465092">"Ανεπιτυχής"</item> @@ -295,4 +284,60 @@ <item msgid="5077768429488260031">"Να μην επιτρέπεται ποτέ"</item> <item msgid="1417929597727989746">"Να επιτρέπεται πάντα"</item> </string-array> + + <!-- CYANOGENMOD ADDITIONS START --> + + <!-- Volume Overlay options. --> + <string-array name="volume_overlay_entries"> + <item>Μονό</item> + <item>Επεκτάσιμο</item> + <item>Ανεπτυγμένο</item> + <item>Κανένα</item> + </string-array> + + <string-array name="pref_zram_size_entries"> + <item>Ανενεργό</item> + <item>10%</item> + <item>18% (προεπιλογή)</item> + <item>26%</item> + </string-array> + + <!-- Profile mode options. --> + <string-array name="profile_entries"> + <item>Ενεργό</item> + <item>Ανενεργό</item> + <item>Να μην παρακαμφθεί</item> + </string-array> + + <!-- Profile mode options. --> + <string-array name="profile_connection_entries"> + <item>Ανενεργό</item> + <item>Ενεργό</item> + </string-array> + + <!-- Arrays required by Notification Widgets. --> + + <string-array name="entries_network_widget"> + <item>2G | 3G+2G</item> + <item>2G | Μόνο 3G</item> + <item>2G | Μόνο 3G | 3G+2G</item> + </string-array> + + <string-array name="entries_screentimeout_widget"> + <item>15δ | 1λ | 5λ</item> + <item>30δ | 2λ | 5λ</item> + </string-array> + + <string-array name="entries_flash_widget"> + <item>Κανονικό</item> + <item>Υψηλό</item> + </string-array> + + <string-array name="haptic_feedback_entries"> + <item>Χρήση ρύθμισης συστήματος</item> + <item>Ενεργοποιημένη</item> + <item>Απενεργοποιημένη</item> + </string-array> + + <!-- CYANOGENMOD ADDITIONS END --> </resources> diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml index e8ed41a..35ff0ac 100644 --- a/res/values-el/strings.xml +++ b/res/values-el/strings.xml @@ -26,11 +26,11 @@ <item quantity="one" msgid="5295687242294085452">"Απομένουν <xliff:g id="STEP_COUNT">%1$d</xliff:g> βήματα για να γίνετε προγραμματιστής."</item> <item quantity="other" msgid="6722953419953594148">"Απομένουν <xliff:g id="STEP_COUNT">%1$d</xliff:g> βήματα για να γίνετε προγραμματιστής."</item> </plurals> - <string name="show_dev_on" msgid="1110711554982716293">"Είστε πλέον προγραμματιστής!"</string> - <string name="show_dev_already" msgid="2151632240145446227">"Δεν χρειάζεται, είστε ήδη προγραμματιστής."</string> + <string name="show_dev_on">Ενεργοποιήσατε τις ρυθμίσεις για προγραμματιστές!</string> + <string name="show_dev_already">Δεν χρειάζεται, έχετε ήδη ενεργοποιήσει τις ρυθμίσεις για προγραμματιστές.</string> <string name="header_category_wireless_networks" msgid="4944823405420438623">"ΑΣΥΡΜΑΤΟ και ΔΙΚΤΥΑ"</string> <string name="header_category_device" msgid="5781174212691167553">"ΣΥΣΚΕΥΗ"</string> - <string name="header_category_personal" msgid="6225932173498802187">"ΠΡΟΣΩΠΙΚΟΣ"</string> + <string name="header_category_personal">ΠΡΟΣΩΠΙΚΕΣ</string> <string name="header_category_system" msgid="2073558547468647128">"ΣΥΣΤΗΜΑ"</string> <string name="turn_on_radio" msgid="8706561489788373676">"Ενεργοποίηση πομπού"</string> <string name="turn_off_radio" msgid="1820294552893884115">"Απενεργοποίηση πομπού"</string> @@ -135,10 +135,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Συνδεδεμένο (όχι μέσα)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Συνδεδεμένο (χωρίς τηλέφωνο ή πολυμέσα)"</string> <string name="bluetooth_disconnected" msgid="6557104142667339895">"Αποσυνδέθηκε"</string> - <string name="bluetooth_disconnecting" msgid="8913264760027764974">"Αποσύνδεση..."</string> - <string name="bluetooth_connecting" msgid="8555009514614320497">"Σύνδεση..."</string> + <string name="bluetooth_disconnecting" msgid="8913264760027764974">"Αποσύνδεση\u2026"</string> + <string name="bluetooth_connecting" msgid="8555009514614320497">"Σύνδεση\u2026"</string> <string name="bluetooth_unknown" msgid="644716244548801421"></string> - <string name="bluetooth_pairing" msgid="1426882272690346242">"Σύζευξη..."</string> + <string name="bluetooth_pairing" msgid="1426882272690346242">"Σύζευξη\u2026"</string> <string name="bluetooth_device" msgid="5291950341750186887">"Συσκευή Bluetooth χωρίς όνομα"</string> <string name="progress_scanning" msgid="192587958424295789">"Αναζήτηση"</string> <string name="bluetooth_no_devices_found" msgid="1085232930277181436">"Δεν βρέθηκαν συσκευές Bluetooth κοντά."</string> @@ -171,8 +171,6 @@ <string name="normal_date_format" msgid="7636406984925498359">"Τοπική (<xliff:g id="DATE">%s</xliff:g>)"</string> <string name="display_preview_label" msgid="1127597250917274792">"Προεπισκόπηση:"</string> <string name="display_font_size_label" msgid="8941851418397475389">"Μέγεθος γραμματοσειράς:"</string> - <!-- no translation found for intent_sender_data_label (6332324780477289261) --> - <skip /> <string name="intent_sender_sendbroadcast_text" msgid="1415735148895872715">"Αποστολή <xliff:g id="BROADCAST">broadcast</xliff:g>"</string> <string name="intent_sender_action_label" msgid="616458370005452389">"<xliff:g id="ACTION">Action</xliff:g>:"</string> <string name="intent_sender_startactivity_text" msgid="5080516029580421895">"Εκκίνηση <xliff:g id="ACTIVITY">activity</xliff:g>"</string> @@ -228,7 +226,7 @@ <string name="radio_info_toggle_dns_check_label" msgid="8292252930563286858">"Αλλαγή ελέγχου DNS"</string> <string name="oem_radio_info_label" msgid="6163141792477958941">"Πληροφορίες/ρυθμίσεις για OEM"</string> <string name="band_mode_title" msgid="954174198903776205">"Ορισμός ζώνης GSM/UMTS"</string> - <string name="band_mode_loading" msgid="548764766363847336">"Φόρτωση λίστας ζωνών..."</string> + <string name="band_mode_loading" msgid="548764766363847336">"Φόρτωση λίστας ζωνών\u2026"</string> <string name="band_mode_set" msgid="5730560180249458484">"Ορισμός"</string> <string name="band_mode_failed" msgid="1495968863884716379">"Ανεπιτυχής"</string> <string name="band_mode_succeeded" msgid="2701016190055887575">"Επιτυχής"</string> @@ -246,7 +244,7 @@ <string name="sdcard_settings_bad_removal_status" product="default" msgid="5145797653495907970">"Η κάρτα SD αφαιρέθηκε ενώ βρισκόταν σε χρήση!"</string> <string name="sdcard_settings_used_bytes_label" msgid="8820289486001170836">"Αριθμός bytes που χρησιμοποιήθηκαν:"</string> <string name="sdcard_settings_scanning_status" product="nosdcard" msgid="7503429447676219564">"Σάρ. αποθ. χώρ. USB για πολυμ."</string> - <string name="sdcard_settings_scanning_status" product="default" msgid="2763464949274455656">"Σάρωση κάρτας SD για πολυμέσα..."</string> + <string name="sdcard_settings_scanning_status" product="default" msgid="2763464949274455656">"Σάρωση κάρτας SD για πολυμέσα\u2026"</string> <string name="sdcard_settings_read_only_status" product="nosdcard" msgid="3624143937437417788">"Χώρος αποθ. USB μόνο για ανάγ."</string> <string name="sdcard_settings_read_only_status" product="default" msgid="4518291824764698112">"Η κάρτα SD που προσαρτήθηκε είναι μόνο για ανάγνωση."</string> <string name="skip_label" msgid="47510779345218297">"Παράλ"</string> @@ -266,7 +264,7 @@ <string name="settings_label_launcher" msgid="8344735489639482340">"Ρυθμίσεις"</string> <string name="settings_shortcut" msgid="3936651951364030415">"Συντόμευση ρυθμίσεων"</string> <string name="airplane_mode" msgid="8837269988154128601">"Λειτουργία πτήσης"</string> - <string name="radio_controls_title" msgid="6889937359495515769">"Περισσότερα ..."</string> + <string name="radio_controls_title" msgid="6889937359495515769">"Περισσότερα\u2026"</string> <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Ασύρματο και δίκτυα"</string> <string name="radio_controls_summary" msgid="2998818677094465517">"Διαχείριση Wi-Fi, Bluetooth, λειτουργίας πτήσης, δικτύων κινητής τηλεφωνίας και VPN"</string> <string name="roaming" msgid="3596055926335478572">"Περιαγωγή δεδομένων"</string> @@ -366,6 +364,10 @@ <string name="unlock_set_unlock_mode_pattern" msgid="7837270780919299289">"Μοτίβο"</string> <string name="unlock_set_unlock_mode_pin" msgid="3541326261341386690">"PIN"</string> <string name="unlock_set_unlock_mode_password" msgid="1203938057264146610">"Κωδικός πρόσβασης"</string> + <string name="lock_pattern_size_3">3x3</string> + <string name="lock_pattern_size_4">4x4</string> + <string name="lock_pattern_size_5">5x5</string> + <string name="lock_pattern_size_6">6x6</string> <string name="unlock_disable_lock_title" msgid="1427036227416979120">"Απενεργοποίηση κλειδώματος οθόνης"</string> <string name="unlock_disable_lock_pattern_summary" msgid="6801602880568869201">"Κατάργηση μοτίβου ξεκλειδώματος"</string> <string name="unlock_disable_lock_pin_summary" msgid="8856842745366993387">"Κατάργηση αριθμού PIN ξεκλειδώματος"</string> @@ -443,7 +445,7 @@ <string name="bluetooth_connecting_error_message" msgid="229861986106185022">"Δεν ήταν δυνατή η σύνδεση με τη συσκευή <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string> <string name="bluetooth_preference_scan_title" msgid="2277464653118896016">"Ανίχνευση για συσκευές"</string> <string name="bluetooth_search_for_devices" msgid="5957007154213560390">"Αναζήτηση συσκευών"</string> - <string name="bluetooth_searching_for_devices" msgid="9203739709307871727">"Αναζήτηση..."</string> + <string name="bluetooth_searching_for_devices" msgid="9203739709307871727">"Αναζήτηση\u2026"</string> <string name="bluetooth_preference_device_settings" msgid="907776049862799122">"Ρυθμίσεις συσκευής"</string> <string name="bluetooth_preference_paired_devices" msgid="1970524193086791964">"Συσκευές σε ζεύγη"</string> <string name="bluetooth_preference_found_devices" msgid="1647983835063249680">"Διαθέσιμες συσκευές"</string> @@ -452,11 +454,11 @@ <string name="bluetooth_device_context_pair_connect" msgid="7611522504813927727">"Σύζευξη και σύνδεση"</string> <string name="bluetooth_device_context_unpair" msgid="662992425948536144">"Διακοπή σύζευξης"</string> <string name="bluetooth_device_context_disconnect_unpair" msgid="7644014238070043798">"Αποσύνδεση & διακοπή σύζευξης"</string> - <string name="bluetooth_device_context_connect_advanced" msgid="2643129703569788771">"Επιλογές..."</string> + <string name="bluetooth_device_context_connect_advanced" msgid="2643129703569788771">"Επιλογές\u2026"</string> <string name="bluetooth_menu_advanced" msgid="8572178316357220524">"Για προχωρημένους"</string> <string name="bluetooth_advanced_titlebar" msgid="2142159726881547669">"Προηγμένες ρυθμίσεις Bluetooth"</string> <string name="bluetooth_empty_list_bluetooth_off" msgid="4793562956642282639">"Για να δείτε τις συσκευές, ενεργοποιήστε το Bluetooth."</string> - <string name="bluetooth_connect_specific_profiles_title" msgid="6952214406025825164">"Σύνδεση σε..."</string> + <string name="bluetooth_connect_specific_profiles_title" msgid="6952214406025825164">"Σύνδεση σε\u2026"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Ήχος πολυμέσων"</string> <string name="bluetooth_profile_headset" msgid="8658779596261212609">"Ήχος τηλεφώνου"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"Μεταφορά αρχείου"</string> @@ -496,7 +498,7 @@ <string name="wifi_display_settings_empty_list_wifi_display_off" msgid="1225626898926363100">"Για να δείτε τις συσκευές, ενεργοποιήστε την ασύρματη οθόνη."</string> <string name="wifi_display_settings_empty_list_wifi_display_disabled" msgid="7363832031876872257">"Η ασύρματη οθόνη έχει απενεργοποιηθεί επειδή το Wi-Fi είναι ανενεργό."</string> <string name="wifi_display_search_for_devices" msgid="5065526281193354502">"Αναζήτηση για οθόνες"</string> - <string name="wifi_display_searching_for_devices" msgid="5172373825348672137">"Αναζήτηση…"</string> + <string name="wifi_display_searching_for_devices" msgid="5172373825348672137">"Αναζήτηση\u2026"</string> <string name="wifi_display_no_devices_found" msgid="8180582698282377626">"Δεν βρέθηκαν κοντινές ασύρματες οθόνες."</string> <string name="wifi_display_paired_devices" msgid="7395326840730024303">"Συζευγμένες οθόνες"</string> <string name="wifi_display_available_devices" msgid="4558314642853513487">"Διαθέσιμες συσκευές"</string> @@ -531,8 +533,8 @@ <string name="wifi_settings_title" msgid="4351120897298124250">"Wi-Fi"</string> <string name="wifi_settings_summary" msgid="668767638556052820">"Ορισμός & διαχείριση ασύρματων σημείων πρόσβασης"</string> <string name="wifi_setup_wizard_title" msgid="70277346338812325">"Επιλογή Wi-Fi"</string> - <string name="wifi_starting" msgid="6716593470710880000">"Ενεργοποίηση του Wi-Fi…"</string> - <string name="wifi_stopping" msgid="244864762599017659">"Απενεργοποίηση του Wi-Fi..."</string> + <string name="wifi_starting" msgid="6716593470710880000">"Ενεργοποίηση του Wi-Fi\u2026"</string> + <string name="wifi_stopping" msgid="244864762599017659">"Απενεργοποίηση του Wi-Fi\u2026"</string> <string name="wifi_error" msgid="3207971103917128179">"Σφάλμα"</string> <string name="wifi_in_airplane_mode" msgid="8652520421778203796">"Σε λειτουργία πτήσης"</string> <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Δεν είναι δυνατή η σάρωση για δίκτυα"</string> @@ -556,14 +558,14 @@ <string name="wifi_menu_forget" msgid="8736964302477327114">"Διαγραφή δικτύου από τη μνήμη"</string> <string name="wifi_menu_modify" msgid="2068554918652440105">"Τροποποίηση δικτύου"</string> <string name="wifi_empty_list_wifi_off" msgid="4722299515264875943">"Για να δείτε τα διαθέσιμα δίκτυα, ενεργοποιήστε το Wi-Fi."</string> - <string name="wifi_empty_list_wifi_on" msgid="3354911729026237372">"Αναζήτηση για δίκτυα Wi-Fi…"</string> - <string name="wifi_other_network" msgid="1048006316504242214">"Άλλο δίκτυο…"</string> + <string name="wifi_empty_list_wifi_on" msgid="3354911729026237372">"Αναζήτηση για δίκτυα Wi-Fi\u2026"</string> + <string name="wifi_other_network" msgid="1048006316504242214">"Άλλο δίκτυο\u2026"</string> <string name="wifi_more" msgid="3195296805089107950">"Περισσότερα"</string> <string name="wifi_setup_wps" msgid="8128702488486283957">"Αυτόματη ρύθμιση (WPS)"</string> <string name="wifi_required_info_text" msgid="9014073093293520112">"Για να ολοκληρώσετε τη ρύθμιση, το tablet σας χρειάζεται πρόσβαση σε δίκτυο Wi-Fi. Μετά τη ρύθμιση, μπορείτε να κάνετε εναλλαγή μεταξύ δεδομένων κινητής τηλεφωνίας και δικτύου Wi-Fi."</string> <string name="wifi_show_advanced" msgid="1793703023711426246">"Εμφάνιση σύνθετων επιλογών"</string> <string name="wifi_wps_setup_title" msgid="6034518116333042484">"Ρύθμιση προστατευόμενου Wi-Fi"</string> - <string name="wifi_wps_setup_msg" msgid="315174329121275092">"Έναρξη WPS…"</string> + <string name="wifi_wps_setup_msg" msgid="315174329121275092">"Έναρξη WPS\u2026"</string> <string name="wifi_wps_onstart_pbc" msgid="7204827509934892103">"Πατήστε ο κουμπί ρύθμισης προστατευόμενου Wi-Fi στον δρομολογητή σας. Ενδέχεται να ονομάζεται \"WPS\" ή να περιέχει αυτό το σύμβολο:"</string> <string name="wifi_wps_onstart_pin" msgid="8067502591043979939">"Εισαγάγετε το PIN <xliff:g id="NUMBER">%1$s</xliff:g> στον δρομολογητή σας Wi-Fi. Η ρύθμιση μπορεί να διαρκέσει έως και δύο λεπτά."</string> <string name="wifi_wps_complete" msgid="2388138550456729134">"Επιτυχία WPS. Σύνδεση στο δίκτυο…"</string> @@ -574,7 +576,7 @@ <string name="wifi_wps_failed_tkip" msgid="4282401586860713349">"Δεν υποστηρίζεται η ρύθμιση ασφάλειας ασύρματου δρομολογητή (TKIP)"</string> <string name="wifi_wps_failed_auth" msgid="1174614355181181958">"Αποτυχία ελέγχου ταυτότητας. Προσπαθήστε ξανά."</string> <string name="wifi_wps_failed_overlap" msgid="5159533685596844778">"Έχει εντοπιστεί μια άλλη συνεδρία WPS. Προσπαθήστε ξανά σε λίγα λεπτά."</string> - <string name="wifi_ssid" msgid="641393708309146745">"Δίκτυο SSID"</string> + <string name="wifi_ssid">SSID Δικτύου</string> <string name="wifi_security" msgid="6603611185592956936">"Ασφάλεια"</string> <string name="wifi_signal" msgid="5514120261628065287">"Ισχύς σήματος"</string> <string name="wifi_status" msgid="4824568012414605414">"Κατάσταση"</string> @@ -620,6 +622,9 @@ <string name="wifi_setting_frequency_band_title" msgid="7493768705046080060">"Ζώνη συχνοτήτων Wi-Fi"</string> <string name="wifi_setting_frequency_band_summary" msgid="3250740757118009784">"Προσδιορίστε το εύρος συχνότητας της λειτουργίας"</string> <string name="wifi_setting_frequency_band_error" msgid="837281974489794378">"Πρόβλημα κατά τη ρύθμιση της ζώνης συχνότητας."</string> + <string name="wifi_setting_countrycode_title">Κωδικός περιοχής Wi-Fi</string> + <string name="wifi_setting_countrycode_summary">Προσδιορίστε τον κωδικό περιοχής για το Wi-Fi</string> + <string name="wifi_setting_countrycode_error">Πρόβλημα κατά τη ρύθμιση του κωδικού περιοχής.</string> <string name="wifi_advanced_mac_address_title" msgid="6571335466330978393">"Διεύθυνση MAC"</string> <string name="wifi_advanced_ip_address_title" msgid="6215297094363164846">"Διεύθυνση IP"</string> <string name="wifi_advanced_settings_label" msgid="3654366894867838338">"Ρυθμίσεις IP"</string> @@ -637,7 +642,7 @@ <string name="wifi_p2p_device_info" msgid="3191876744469364173">"Στοιχεία συσκευής"</string> <string name="wifi_p2p_persist_network" msgid="1646424791818168590">"Απομνημόνευση αυτής της σύνδεσης"</string> <string name="wifi_p2p_menu_search" msgid="3436429984738771974">"Αναζήτηση συσκευών"</string> - <string name="wifi_p2p_menu_searching" msgid="2396704492143633876">"Αναζήτηση…"</string> + <string name="wifi_p2p_menu_searching" msgid="2396704492143633876">"Αναζήτηση\u2026"</string> <string name="wifi_p2p_menu_rename" msgid="8448896306960060415">"Μετονομασία συσκευής"</string> <string name="wifi_p2p_peer_devices" msgid="299526878463303432">"Ομότιμες συσκευές"</string> <string name="wifi_p2p_remembered_groups" msgid="3847022927914068230">"Ομάδες που έχουν διατηρηθεί"</string> @@ -650,8 +655,8 @@ <string name="wifi_p2p_cancel_connect_message" msgid="7477756213423749402">"Θέλετε να ακυρώσετε την πρόσκληση για τη σύνδεση με τη συσκευή <xliff:g id="PEER_NAME">%1$s</xliff:g>;"</string> <string name="wifi_p2p_delete_group_message" msgid="834559380069647086">"Διαγραφή αυτής της ομάδας;"</string> <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Φορητό σημείο πρόσβασης Wi-Fi"</string> - <string name="wifi_tether_starting" msgid="1322237938998639724">"Ενεργοποίηση σημείου πρόσβασης…"</string> - <string name="wifi_tether_stopping" msgid="4835852171686388107">"Απενεργοποίηση σημείου πρόσβασης…"</string> + <string name="wifi_tether_starting" msgid="1322237938998639724">"Ενεργοποίηση σημείου πρόσβασης\u2026"</string> + <string name="wifi_tether_stopping" msgid="4835852171686388107">"Απενεργοποίηση σημείου πρόσβασης\u2026"</string> <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Το φορητό σημείο πρόσβασης <xliff:g id="NETWORK_SSID">%1$s</xliff:g> είναι ενεργό"</string> <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Σφάλμα φορητού σημείου πρόσβασης Wi-Fi"</string> <string name="wifi_tether_configure_ap_text" msgid="61237027772641155">"Ρύθμιση φορητού σημείου πρόσβασης Wi-Fi"</string> @@ -666,7 +671,6 @@ <string name="ring_volume_title" msgid="7938706566797464165">"Ένταση ήχου ειδοποίησης"</string> <string name="vibrate_in_silent_title" msgid="3897968069156767036">"Δόνηση στο αθόρυβο"</string> <string name="notification_sound_title" msgid="5137483249425507572">"Προεπιλεγμένος ήχος ειδοποίησης"</string> - <string name="notification_pulse_title" msgid="1247988024534030629">"Φωτεινός παλμός ειδοποίησης"</string> <string name="incoming_call_volume_title" msgid="8073714801365904099">"Ήχος κλήσης"</string> <string name="notification_volume_title" msgid="2012640760341080408">"Ειδοποίηση"</string> <string name="checkbox_notification_same_as_incoming_call" msgid="1073644356290338921">"Χρήση έντασης ήχου εισερχόμενης κλήσης για ειδοποιήσεις"</string> @@ -771,7 +775,7 @@ <string name="device_status_activity_title" msgid="1411201799384697904">"Κατάσταση"</string> <string name="device_status" msgid="607405385799807324">"Κατάσταση"</string> <string name="device_status_summary" product="tablet" msgid="3292717754497039686">"Η κατάσταση της μπαταρίας και του δικτύου, καθώς και άλλες πληροφορίες"</string> - <string name="device_status_summary" product="default" msgid="2599162787451519618">"Τηλεφωνικός αριθμός, σήμα κ.λπ."</string> + <string name="device_status_summary" product="default" msgid="2599162787451519618">"Τηλεφωνικός αριθμός, σήμα κλπ."</string> <string name="storage_settings" msgid="4211799979832404953">"Αποθηκευτικός χώρος"</string> <string name="storage_settings_title" msgid="8746016738388094064">"Ρυθμίσεις αποθηκευτικού χώρου"</string> <string name="storage_settings_summary" product="nosdcard" msgid="3543813623294870759">"Αποπροσάρτηση αποθηκευτικού χώρου USB, προβολή διαθέσιμου αποθηκευτικού χώρου"</string> @@ -802,7 +806,7 @@ <string name="memory_available" msgid="5052397223077021181">"Διαθέσιμο"</string> <string name="memory_available_read_only" msgid="6497534390167920206">"Διαθέσιμος (μόνος για ανάγνωση)"</string> <string name="memory_size" msgid="6629067715017232195">"Συνολικός χώρος"</string> - <string name="memory_calculating_size" msgid="2188358544203768588">"Υπολογισμός..."</string> + <string name="memory_calculating_size" msgid="2188358544203768588">"Υπολογισμός\u2026"</string> <string name="memory_apps_usage" msgid="2348501997988663688">"Εφαρμογές (δεδομένα εφαρμογών και περιεχόμενο μέσων)"</string> <string name="memory_media_usage" msgid="3738830697707880405">"Μέσα"</string> <string name="memory_downloads_usage" msgid="3755173051677533027">"Λήψεις"</string> @@ -980,7 +984,7 @@ <string name="terms_title" msgid="7697580845616764642">"Όροι και προϋποθέσεις"</string> <string name="settings_license_activity_title" msgid="7553683406244228650">"Άδειες λογισμ.ανοικτ.κώδ."</string> <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Παρουσιάστηκε ένα πρόβλημα κατά τη φόρτωση των αδειών."</string> - <string name="settings_license_activity_loading" msgid="3337535809093591740">"Φόρτωση..."</string> + <string name="settings_license_activity_loading" msgid="3337535809093591740">"Φόρτωση\u2026"</string> <string name="settings_safetylegal_title" msgid="1289483965535937431">"Πληροφορίες ασφάλειας"</string> <string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"Πληροφορίες ασφάλειας"</string> <string name="settings_safetylegal_activity_unreachable" msgid="232523852222964470">"Δεν είστε συνδεδεμένοι σε υπηρεσία δεδομένων. Για να προβάλετε αυτές τις πληροφορίες τώρα, μεταβείτε στο %s από οποιονδήποτε υπολογιστή με σύνδεση στο Διαδίκτυο."</string> @@ -1089,10 +1093,10 @@ <string name="disabled" msgid="9206776641295849915">"Απενεργοποιημένο"</string> <string name="not_installed" msgid="1475144352069281880">"Δεν έχει εγκατασταθεί"</string> <string name="no_applications" msgid="7336588977497084921">"Δεν υπάρχουν εφαρμογές."</string> - <string name="internal_storage" msgid="1584700623164275282">"Εσ. αποθ. χώρος"</string> + <string name="internal_storage" msgid="1584700623164275282">"Εσωτερικός αποθ. χώρος"</string> <string name="sd_card_storage" product="nosdcard" msgid="2673203150465132465">"Αποθ. χώρος USB"</string> <string name="sd_card_storage" product="default" msgid="7623513618171928235">"Κάρ. χώρ. απ. SD"</string> - <string name="recompute_size" msgid="7722567982831691718">"Εκ νέου υπολογισμός μεγέθους..."</string> + <string name="recompute_size" msgid="7722567982831691718">"Εκ νέου υπολογισμός μεγέθους\u2026"</string> <string name="clear_data_dlg_title" msgid="5605258400134511197">"Διαγραφή δεδομένων εφαρμογής;"</string> <string name="clear_data_dlg_text" msgid="8847257251846779938">"Όλα τα δεδομένα της εφαρμογής θα διαγραφούν μόνιμα. Αυτό περιλαμβάνει όλα τα αρχεία, τις ρυθμίσεις, τους λογαριασμούς, τις βάσεις δεδομένων κλπ."</string> <string name="dlg_ok" msgid="2402639055725653590">"OK"</string> @@ -1114,7 +1118,7 @@ <string name="join_many_items_middle" msgid="7556692394478220814">"<xliff:g id="ADDED_ITEM">%1$s</xliff:g>, <xliff:g id="REST_OF_ITEMS">%2$s</xliff:g>"</string> <string name="security_settings_billing_desc" msgid="8061019011821282358">"Ενδέχεται να χρεωθείτε από αυτήν την εφαρμογή:"</string> <string name="security_settings_premium_sms_desc" msgid="8734171334263713717">"Να σταλεί SMS ειδικής χρέωσης;"</string> - <string name="computing_size" msgid="1599186977475211186">"Υπολογισμός..."</string> + <string name="computing_size" msgid="1599186977475211186">"Υπολογισμός\u2026"</string> <string name="invalid_size_value" msgid="7563537715280712285">"Δεν ήταν δυνατός ο υπολογισμός του μεγέθους του πακέτου."</string> <string name="empty_list_msg" msgid="5993162337235907160">"Δεν έχετε εγκαταστήσει εφαρμογές τρίτων μερών."</string> <string name="version_text" msgid="9189073826278676425">"έκδοση <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string> @@ -1149,13 +1153,9 @@ <string name="cached" msgid="1059590879740175019">"Διαδικασία προσωρινά αποθηκευμένου φόντου"</string> <string name="no_running_services" msgid="2059536495597645347">"Τίποτα σε εξέλιξη."</string> <string name="service_started_by_app" msgid="818675099014723551">"Εκκινήθηκε από εφαρμογή"</string> - <!-- no translation found for service_client_name (4037193625611815517) --> - <skip /> <string name="service_background_processes" msgid="6844156253576174488">"<xliff:g id="MEMORY">%1$s</xliff:g> δωρ."</string> <string name="service_foreground_processes" msgid="7583975676795574276">"<xliff:g id="MEMORY">%1$s</xliff:g> μετ."</string> <string name="memory" msgid="6609961111091483458">"RAM"</string> - <!-- no translation found for service_process_name (4098932168654826656) --> - <skip /> <string name="running_process_item_user_label" msgid="3129887865552025943">"Χρήστης: <xliff:g id="USER_NAME">%1$s</xliff:g>"</string> <string name="running_process_item_removed_user_label" msgid="8250168004291472959">"Χρήστης που αφαιρέθηκε"</string> <string name="running_processes_item_description_s_s" msgid="5790575965282023145">"<xliff:g id="NUMPROCESS">%1$d</xliff:g> διεργασία και <xliff:g id="NUMSERVICES">%2$d</xliff:g> υπηρεσία"</string> @@ -1225,7 +1225,7 @@ <string name="user_dict_settings_context_menu_delete_title" msgid="9140703913776549054">"Διαγραφή"</string> <string name="user_dict_settings_empty_text" msgid="8165273379942105271">"Δεν υπάρχουν λέξεις καταχωρισμένες στο λεξικό χρήστη. Προσθέστε μια λέξη πατώντας το κουμπί Προσθήκη ( + )."</string> <string name="user_dict_settings_all_languages" msgid="6742000040975959247">"Για όλες τις γλώσσες"</string> - <string name="user_dict_settings_more_languages" msgid="7316375944684977910">"Περισσότερες γλώσσες..."</string> + <string name="user_dict_settings_more_languages" msgid="7316375944684977910">"Περισσότερες γλώσσες\u2026"</string> <string name="testing" msgid="6584352735303604146">"Δοκιμή"</string> <string name="testing_phone_info" product="tablet" msgid="193561832258534798">"Πληροφορίες tablet"</string> <string name="testing_phone_info" product="default" msgid="8656693364332840056">"Πληροφορίες τηλεφώνου"</string> @@ -1260,16 +1260,16 @@ <string name="builtin_keyboard_settings_summary" msgid="2392531685358035899">"Ρυθμίσεις φυσικού πληκτρολογίου"</string> <string name="development_settings_title" msgid="215179176067683667">"Επιλογές για προγραμματιστές"</string> <string name="development_settings_summary" msgid="1815795401632854041">"Ορισμός επιλογών για ανάπτυξη εφαρμογής"</string> - <string name="enable_adb" msgid="7982306934419797485">"Εντοπισμός σφαλμάτων USB"</string> - <string name="enable_adb_summary" msgid="4881186971746056635">"Λειτουργία εντοπισμού σφαλμάτων όταν το USB είναι συνδεδεμένο"</string> + <string name="enable_adb">Εντοπισμός σφαλμάτων</string> + <string name="enable_adb_summary">Λειτουργία εντοπισμού σφαλμάτων μέσω USB ή δικτύου</string> <string name="bugreport_in_power" msgid="4548816486587403971">"Αναφορές σφαλμάτων μενού λειτουργίας"</string> <string name="bugreport_in_power_summary" msgid="5764234382355067053">"Συμπερίληψη επιλογής στο μενού λειτουργίας για λήψη αναφοράς σφαλμάτων"</string> <string name="keep_screen_on" msgid="1146389631208760344">"Παραμονή σε κανονική κατάσταση λειτουργίας"</string> <string name="keep_screen_on_summary" msgid="2173114350754293009">"Η οθόνη δεν θα μεταβαίνει ποτέ σε κατάσταση αδράνειας κατά τη φόρτιση"</string> <string name="allow_mock_location" msgid="2787962564578664888">"Να επιτρέπονται ψευδείς τοποθεσίες"</string> <string name="allow_mock_location_summary" msgid="317615105156345626">"Να επιτρέπονται ψευδείς τοποθεσίες"</string> - <string name="adb_warning_title" msgid="6234463310896563253">"Να επιτρέπεται ο εντοπισμός σφαλμάτων USB;"</string> - <string name="adb_warning_message" msgid="7316799925425402244">"Ο εντοπισμός σφαλμάτων USB προορίζεται μόνο για σκοπούς προγραμματισμού. Χρησιμοποιήστε τον για αντιγραφή δεδομένων μεταξύ του υπολογιστή και της συσκευής σας, για την εγκατάσταση εφαρμογών στη συσκευή σας χωρίς προειδοποίηση και για την ανάγνωση δεδομένων καταγραφής."</string> + <string name="adb_warning_title" msgid="6234463310896563253">"Να επιτρέπεται ο εντοπισμός σφαλμάτων;"</string> + <string name="adb_warning_message" msgid="7316799925425402244">"Ο εντοπισμός σφαλμάτων προορίζεται μόνο για σκοπούς προγραμματισμού. Χρησιμοποιήστε τον για αντιγραφή δεδομένων μεταξύ του υπολογιστή και της συσκευής σας, για την εγκατάσταση εφαρμογών στη συσκευή σας χωρίς προειδοποίηση και για την ανάγνωση δεδομένων καταγραφής."</string> <string name="dev_settings_warning_title" msgid="7244607768088540165">"Να επιτρέπεται η χρήση των ρυθμίσεων ανάπτυξης;"</string> <string name="dev_settings_warning_message" msgid="2298337781139097964">"Αυτές οι ρυθμίσεις προορίζονται για χρήση κατά την ανάπτυξη. Μπορούν να προκαλέσουν προβλήματα στη λειτουργία της συσκευής και των εφαρμογών σας."</string> <string name="verify_apps_over_usb_title" msgid="4177086489869041953">"Επαλήθευση εφαρμογών μέσω USB"</string> @@ -1347,8 +1347,6 @@ <string name="battery_stats_wifi_running_label" msgid="3093545080361658269">"Wi-Fi"</string> <string name="battery_stats_wake_lock_label" msgid="1908942681902324095">"Κανον. λειτ."</string> <string name="battery_stats_phone_signal_label" msgid="4137799310329041341">"Σήμα δικτύου κιν. τηλεφ."</string> - <!-- no translation found for battery_stats_last_duration (1535831453827905957) --> - <skip /> <string name="awake" msgid="387122265874485088">"Χρόνος ενεργοποίησης της συσκευής"</string> <string name="wifi_on_time" msgid="6310209835617490616">"Wi-Fi στην ώρα του"</string> <string name="bluetooth_on_time" msgid="6157799524996162271">"Wi-Fi στην ώρα του"</string> @@ -1546,17 +1544,17 @@ <string name="wifi_setup_forget" msgid="2562847595567347526">"Διαγραφή"</string> <string name="wifi_setup_save" msgid="3659235094218508211">"Αποθήκευση"</string> <string name="wifi_setup_cancel" msgid="3185216020264410239">"Ακύρωση"</string> - <string name="wifi_setup_status_scanning" msgid="5317003416385428036">"Σάρωση δικτύων..."</string> + <string name="wifi_setup_status_scanning" msgid="5317003416385428036">"Σάρωση δικτύων\u2026"</string> <string name="wifi_setup_status_select_network" msgid="7519563569903137003">"Αγγίξτε ένα δίκτυο για να συνδεθείτε σε αυτό"</string> <string name="wifi_setup_status_existing_network" msgid="6394925174802598186">"Σύνδεση σε υπάρχον δίκτυο"</string> <string name="wifi_setup_status_unsecured_network" msgid="8143046977328718252">"Σύνδεση σε μη ασφαλές δίκτυο"</string> <string name="wifi_setup_status_edit_network" msgid="4765340816724760717">"Πληκτρολογήστε διαμόρφωση δικτύου"</string> <string name="wifi_setup_status_new_network" msgid="7468952850452301083">"Σύνδεση σε νέο δίκτυο"</string> - <string name="wifi_setup_status_connecting" msgid="4971421484401530740">"Γίνεται σύνδεση..."</string> + <string name="wifi_setup_status_connecting" msgid="4971421484401530740">"Γίνεται σύνδεση\u2026"</string> <string name="wifi_setup_status_proceed_to_next" msgid="6708250000342940031">"Μετάβαση στο επόμενο βήμα"</string> <string name="wifi_setup_status_eap_not_supported" msgid="5335338851032315905">"Το EAP δεν υποστηρίζεται."</string> <string name="wifi_setup_eap_not_supported" msgid="595556546597351489">"Δεν είναι δυνατή η διαμόρφωση σύνδεσης EAP Wi-Fi κατά τη διάρκεια της εγκατάστασης. Μετά την εγκατάσταση, μπορείτε να τη διαμορφώσετε από το στοιχείο Ρυθμίσεις > Ασύρματο και Δίκτυα."</string> - <string name="wifi_setup_description_connecting" msgid="2793554932006756795">"Η σύνδεση μπορεί να διαρκέσει αρκετά λεπτά..."</string> + <string name="wifi_setup_description_connecting" msgid="2793554932006756795">"Η σύνδεση μπορεί να διαρκέσει αρκετά λεπτά\u2026"</string> <string name="wifi_setup_description_connected" msgid="5235991893829582459">"Αγγίξτε το στοιχείο "<b>"Επόμενο"</b>" για να συνεχίσετε την εγκατάσταση."\n\n"Αγγίξτε το στοιχείο "<b>"Πίσω"</b>" για να συνδεθείτε σε διαφορετικό δίκτυο Wi-Fi."</string> <string name="accessibility_sync_enabled" msgid="558480439730263116">"Ενεργοποιημένος συγχρονισμός"</string> <string name="accessibility_sync_disabled" msgid="1741194106479011384">"Συγχρονισμός είναι απενεργοποιημένος"</string> @@ -1575,7 +1573,7 @@ <string name="sync_disabled" msgid="8511659877596511991">"Ο συγχρονισμός είναι απενεργοποιημένος"</string> <string name="sync_error" msgid="5060969083117872149">"Σφάλμα συγχρονισμού"</string> <string name="last_synced" msgid="4242919465367022234">"Τελευταίος συγχρονισμός <xliff:g id="LAST_SYNC_TIME">%1$s</xliff:g>"</string> - <string name="sync_in_progress" msgid="5151314196536070569">"Συγχρονισμός τώρα..."</string> + <string name="sync_in_progress" msgid="5151314196536070569">"Συγχρονισμός τώρα\u2026"</string> <string name="settings_backup" msgid="2274732978260797031">"Δημιουργία αντιγράφων ασφαλείας για τις ρυθμίσεις"</string> <string name="settings_backup_summary" msgid="7916877705938054035">"Δημιουργία αντιγράφων ασφαλείας για τις ρυθμίσεις μου"</string> <string name="sync_menu_sync_now" msgid="6154608350395805683">"Συγχρονισμός τώρα"</string> @@ -1599,8 +1597,6 @@ <string name="remove_account_failed" product="tablet" msgid="3086620478225952725">"Αυτός ο λογαριασμός απαιτείται από ορισμένες εφαρμογές. Μπορείτε να τον καταργήσετε μόνο μέσω της επαναφοράς των προεπιλεγμένων εργοστασιακών ρυθμίσεων του tablet (με την οποία διαγράφονται όλα τα προσωπικά σας δεδομένα) από το μενού Ρυθμίσεις > Δημιουργία αντιγράφων ασφαλείας και επαναφορά."</string> <string name="remove_account_failed" product="default" msgid="6217238709175617517">"Αυτός ο λογαριασμός απαιτείται από ορισμένες εφαρμογές. Μπορείτε να τον καταργήσετε μόνο μέσω της επαναφοράς των προεπιλεγμένων εργοστασιακών ρυθμίσεων του τηλεφώνου (με την οποία διαγράφονται όλα τα προσωπικά σας δεδομένα) από το μενού Ρυθμίσεις > Δημιουργία αντιγράφων ασφαλείας και επαναφορά."</string> <string name="provider_label" msgid="7724593781904508866">"Προώθηση συνδρομών"</string> - <!-- no translation found for sync_item_title (4782834606909853006) --> - <skip /> <string name="cant_sync_dialog_title" msgid="8923508322291625282">"Δεν είναι δυνατός ο μη αυτόματος συγχρονισμός"</string> <string name="cant_sync_dialog_message" msgid="1938380442159016449">"Ο συγχρονισμός για αυτό το στοιχείο είναι προς το παρόν απενεργοποιημένος. Για να αλλάξετε τη ρύθμισή σας, ενεργοποιήστε προσωρινά τα δεδομένα παρασκηνίου και τον αυτόματο συγχρονισμό."</string> <string name="wimax_settings" msgid="1574837328738396794">"Ρυθμίσεις 4G"</string> @@ -1660,7 +1656,7 @@ <string name="track_frame_time_summary" msgid="447577515813970287">"Μέτρ. χρόνου απόδοσης σε adb shell dumpsys gfxinfo"</string> <string name="window_animation_scale_title" msgid="6162587588166114700">"Κλίμακα κίνησης παραθύρου"</string> <string name="transition_animation_scale_title" msgid="387527540523595875">"Κλίμακα κίνησης μετάβασης"</string> - <string name="animator_duration_scale_title" msgid="3406722410819934083">"Animator duration scale"</string> + <string name="animator_duration_scale_title">Κλίμακα διαρκ. animator</string> <string name="overlay_display_devices_title" msgid="5364176287998398539">"Προσομ. δευτερ. προβολών"</string> <string name="debug_applications_category" msgid="4206913653849771549">"Εφαρμογές"</string> <string name="immediately_destroy_activities" msgid="8366775083630234121">"Μη διατήρ. δραστηριοτήτων"</string> @@ -1677,7 +1673,7 @@ <string name="data_usage_menu_show_ethernet" msgid="5181361208532314097">"Εμφάνιση χρήσης Ethernet"</string> <string name="data_usage_menu_metered" msgid="5056695223222541863">"Σημεία πρόσβασης για κιν."</string> <string name="data_usage_menu_auto_sync" msgid="8203999775948778560">"Αυτόματος συγχρονισμός δεδομένων"</string> - <string name="data_usage_change_cycle" msgid="7776556448920114866">"Αλλαγή κύκλου..."</string> + <string name="data_usage_change_cycle" msgid="7776556448920114866">"Αλλαγή κύκλου\u2026"</string> <string name="data_usage_pick_cycle_day" msgid="4470796861757050966">"Η ημέρα που θα γίνει η επαναφορά του κύκλου χρήσης δεδομένων:"</string> <string name="data_usage_empty" msgid="8621855507876539282">"Καμία εφαρμ. δεν χρησιμ. δεδ. αυτήν την περίοδο"</string> <string name="data_usage_label_foreground" msgid="4938034231928628164">"Προσκήνιο"</string> @@ -1817,7 +1813,7 @@ <string name="user_confirm_remove_self_message" product="default" msgid="5391888073786090274">"Θα χάσετε τον χώρο και τα δεδομένα σας σε αυτό το τηλέφωνο. Δεν είναι δυνατό να αναιρέσετε αυτήν την ενέργεια."</string> <string name="user_confirm_remove_message" product="tablet" msgid="4610106937214870034">"Ο χώρος και τα δεδομένα αυτού του χρήστη θα εξαφανιστούν από αυτό το tablet. Δεν είναι δυνατό να αναιρέσετε αυτήν την ενέργεια."</string> <string name="user_confirm_remove_message" product="default" msgid="8130264611683731142">"Ο χώρος και τα δεδομένα αυτού του χρήστη θα εξαφανιστούν από αυτό το τηλέφωνο. Δεν είναι δυνατό να αναιρέσετε αυτήν την ενέργεια."</string> - <string name="user_adding_new_user" msgid="1521674650874241407">"Προσθήκη νέου χρήστη…"</string> + <string name="user_adding_new_user" msgid="1521674650874241407">"Προσθήκη νέου χρήστη\u2026"</string> <string name="user_delete_user_description" msgid="3158592592118767056">"Διαγραφή χρήστη"</string> <string name="user_delete_button" msgid="5131259553799403201">"Διαγραφή"</string> <string name="global_change_warning" product="tablet" msgid="8045013389464294039">"Αυτή η ρύθμιση επηρεάζει όλους τους χρήστες στο συγκεκριμένο tablet."</string> @@ -1830,4 +1826,751 @@ <string name="user_picture_title" msgid="7297782792000291692">"Αναγνωριστικό φωτογραφίας"</string> <string name="cell_broadcast_settings" msgid="8415582011920085222">"Εκπομπές κινητής τηλεφωνίας"</string> <string name="cell_broadcast_settings_summary" msgid="3301339398950905913">"Επιλέξτε τους τύπους ειδοποιήσεων έκτακτης ανάγκης που θα εμφανίζονται."</string> + + <!-- CYANOGENMOD EDITS START --> + + <string name="ok">OK</string> + + <!-- Quiet hours --> + <string name="quiet_hours_title">Ώρες ησυχίας</string> + <string name="quiet_hours_summary">Δείτε ή αλλάξτε τις ώρες που θέλετε να σιωπά η συσκευή</string> + <string name="quiet_hours_note_title">Σημείωση</string> + <string name="quiet_hours_note_summary">Οι εισερχόμενες κλήσεις δεν θα επηρεαστούν κατά τις ώρες ησυχίας</string> + <string name="quiet_hours_enabled">Ενεργοποίηση</string> + <string name="quiet_hours_enabled_on">Οι ώρες ησυχίας θα τηρούνται</string> + <string name="quiet_hours_enabled_off">Οι ειδοποιήσεις δεν θα επηρεαστούν</string> + <string name="quiet_hours_start">Έναρξη</string> + <string name="quiet_hours_start_summary">Επιλέξτε ώρα έναρξης</string> + <string name="quiet_hours_end">Λήξη</string> + <string name="quiet_hours_end_summary">Επιλέξτε ώρα λήξης</string> + <string name="quiet_hours_mute">Σίγαση ειδοποιήσεων</string> + <string name="quiet_hours_mute_on">Δεν θα αναπαράγονται ήχοι</string> + <string name="quiet_hours_mute_off">Οι ήχοι θα αναπαράγονται κανονικά</string> + <string name="quiet_hours_still">Απενεργοποίηση δονήσεων</string> + <string name="quiet_hours_still_on">Η συσκευή δεν θα δονείται</string> + <string name="quiet_hours_still_off">Η συσκευή θα δονείται κανονικά</string> + <string name="quiet_hours_dim">Απενεργοποίηση LED ειδοποιήσεων</string> + <string name="quiet_hours_dim_on">Το LED ειδοποιήσεων θα απενεργοποιείται</string> + <string name="quiet_hours_dim_off">Το LED ειδοποιήσεων θα λειτουργεί κανονικά</string> + <string name="quiet_hours_haptic">Απενεργοποίηση απτικής ανάδρασης</string> + <string name="quiet_hours_haptic_on">Η απτική ανάδραση θα απενεργοποιείται</string> + <string name="quiet_hours_haptic_off">Η απτική ανάδραση θα λειτουργεί κανονικά</string> + <string name="quiet_hours_active_from">Ενεργό από</string> + <string name="quiet_hours_active_to">έως</string> + + <!-- time range preference --> + <string name="start_time_title">Έναρξη</string> + <string name="end_time_title">Λήξη</string> + + <!-- Setting checkbox title for root access --> + <string name="root_access">Πρόσβαση root</string> + <string name="root_access_warning_title">Να επιτρέπεται η πρόσβαση root;</string> + <string name="root_access_warning_message">Επιτρέποντας στις εφαρμογές να ζητούν πρόσβαση root είναι πολύ επικίνδυνο και θα μπορούσε να θέσει σε κίνδυνο την ασφάλεια του συστήματος σας!</string> + <string name="root_access_none">Απενεργοποιημένη</string> + <string name="root_access_apps">Μόνο εφαρμογές</string> + <string name="root_access_adb">Μόνο ADB</string> + <string name="root_access_all">Εφαρμογές και ADB</string> + + <!-- convert sound to vibration toggle --> + <string name="notification_convert_sound_to_vibration_title">Δόνηση κατά την ειδοποίηση</string> + <string name="notification_convert_sound_to_vibration_summary">Στη λειτουργία δόνησης, όλες οι ειδοποιήσεις θα προκαλούν δόνηση, ανεξάρτητα από τη ρύθμιση της κάθε εφαρμογής</string> + + <!-- Hostname setting --> + <string name="device_hostname">Hostname συσκευής</string> + + <!-- About phone screen, setting option name--> + <string name="mod_version">Έκδοση CyanogenMod</string> + <string name="mod_version_default">Άγνωστη</string> + <!-- About phone screen, build date of ROM --> + <string name="build_date">Ημερομηνία έκδοσης</string> + <string name="build_date_default">2013-01-01-0000</string> + <!-- About device screen, Cpu info. --> + <string name="cpu_info">CPU</string> + <!-- About phone screen, Free memory info --> + <string name="mem_info">Μνήμη</string> + + <!-- Anonymous Statistics --> + <!-- About device screen, list item title. Takes the user to the screen about opting in or out of anonymous statistics. --> + <string name="anonymous_statistics_title">Στατιστικά CyanogenMod</string> + <string name="anonymous_statistics_summary">Βοηθήστε το CyanogenMod να γίνει καλύτερο ενεργοποιώντας την αποστολή ανώνυμων στατιστικών στοιχείων</string> + <string name="anonymous_statistics_warning_title">Σχετικά</string> + <string name="anonymous_statistics_warning">Ενεργοποιώντας τα στατιστικά του CyanogenMod επιτρέπετε την αποστολή + μη προσωπικών δεδομένων στους προγραμματιστές του CyanogenMod για παρακολούθηση του αριθμού μοναδικών εγκαταστάσεων + σε όλες τις συσκευές. Οι πληροφορίες που αποστέλλονται συμπεριλαμβάνουν ένα μοναδικό αναγνωριστικό, το οποίο δεν θέτει + σε κίνδυνο την ασφάλεια σας ή τα προσωπικά δεδομένα. Τα δεδομένα αποστέλλονται σε κάθε εκκίνηση.\n\nΓια ένα παράδειγμα + των δεδομένων που αποστέλλονται, πατήστε στην Προεπισκόπηση δεδομένων.</string> + <string name="enable_reporting_title">Ενεργοποίηση αναφοράς</string> + <string name="preview_data_title">Προεπισκόπηση δεδομένων</string> + <string name="preview_data_summary">%s</string> + <string name="view_stats_title">Εμφάνιση στατιστικών</string> + <string name="anonymous_learn_more">Μάθετε περισσότερα</string> + + <!-- Anonymous Statistics - Notification --> + <string name="anonymous_notification_desc">Ενεργοποίηση ή απενεργοποίηση των στατιστικών του CyanogenMod</string> + + <!-- Anonymous Statistics - Preview --> + <string name="preview_id_title">Μοναδικό αναγνωριστικό</string> + <string name="preview_device_title">Συσκευή</string> + <string name="preview_version_title">Έκδοση</string> + <string name="preview_country_title">Χώρα</string> + <string name="preview_carrier_title">Εταιρία δικτύου</string> + + <!-- INTERFACE Settings --> + <!-- Settings main menu category heading. Interface (Launcher, Themes, System). [CHAR LIMIT=40] --> + <string name="header_category_interface">ΔΙΕΠΑΦΗ</string> + + <!-- Launcher settings --> + <string name="launcher_settings_title">Launcher</string> + + <!-- Themes settings --> + <string name="themes_settings_title">Θέματα</string> + + <!-- System Interface settings --> + <string name="system_settings_title">Σύστημα</string> + <string name="system_interface_title">Διεπαφή συστήματος</string> + + <!-- Notification Drawer --> + <string name="notification_drawer_title">Συρτάρι ειδοποιήσεων</string> + + <string name="lock_screen_title">Οθόνη κλειδώματος</string> + + <!-- Lock Screen Shortcuts --> + <string name="lockscreen_target_info">Σύρετε για να αντιστοιχίσετε συντομεύσεις</string> + <string name="lockscreen_target_title">Συντομεύσεις</string> + <string name="lockscreen_target_summary">Εμφάνιση ή αλλαγή συντομεύσεων οθόνης κλειδώματος</string> + <string name="lockscreen_target_reset">Έγινε επαναφορά στις προεπιλεγμένες συντομεύσεις</string> + <string name="lockscreen_target_save">Οι συντομεύσεις αποθηκεύτηκαν</string> + <string name="lockscreen_target_reset_title">Επαναφορά</string> + <string name="lockscreen_target_reset_message">Διαγραφή όλων των αποθηκευμένων συντομεύσεων και επαναφορά στις προεπιλεγμένες;</string> + <string name="lockscreen_target_empty">Άδειο</string> + <string name="lockscreen_target_edit_title">Επεξεργασία συντόμευσης και εικονιδίου</string> + <string name="lockscreen_target_edit_msg">Επιλογή η αλλαγή της επιθυμητής εφαρμογής ή δραστηριότητας και του συσχετισμένου εικονιδίου</string> + + <!-- Lock screen vibrate settings --> + <string name="lockscreen_vibrate_enabled_title">Δόνηση</string> + <string name="lockscreen_vibrate_enabled_head">Δόνηση κατά το ξεκλείδωμα</string> + + <!-- Lock screen misc. settings --> + <string name="lockscreen_battery_status_title">Κατάσταση μπαταρίας</string> + <string name="lockscreen_battery_status_charging">Μόνο κατά τη φόρτιση</string> + <string name="lockscreen_battery_status_alwayson">Πάντα</string> + + <!-- Profiles settings --> + <string name="profiles_settings_title">Προφίλ</string> + <string name="profiles_general_title">Γενικά</string> + <string name="profiles_add">Προσθήκη</string> + <string name="profile_menu_delete">Διαγραφή</string> + <string name="profile_settings_title">Προφίλ</string> + <string name="profile_empty_list_profiles_off">Για χρησιμοποιήσετε τα προφίλ συστήματος, ενεργοποιήστε τα Προφίλ.</string> + + <!-- Add Profile --> + <string name="add_profile_dialog_title">Δημιουργία νέου προφίλ</string> + <string name="profile_name_title">Όνομα προφίλ</string> + <string name="profile_profile_name_prompt">Εισάγετε όνομα για το νέο προφίλ</string> + <string name="menu_new_profile">Νέο προφίλ</string> + <string name="menu_new_profile_summary">Προσθήκη και ρύθμιση νέου προφίλ</string> + <string name="new_profile_name"><νέο προφίλ></string> + + <!-- Rename Dialog --> + <string name="rename_dialog_title">Μετονομασία</string> + <string name="rename_dialog_message">Εισάγετε νέο όνομα</string> + <string name="duplicate_profile_name">Το όνομα υπάρχει ήδη!</string> + <string name="duplicate_appgroup_name">Το όνομα του γκρουπ εφαρμογών υπάρχει ήδη!</string> + + <!-- Reset Profiles --> + <string name="profile_reset_title">Επαναφορά</string> + <string name="profile_reset_message">Θέλετε να διαγράψετε όλα τα δημιουργημένα προφίλ και γκρουπ εφαρμογών και να τα επαναφέρετε στις προεπιλογές;</string> + + <!-- Delete confimation messages --> + <string name="profile_delete_confirm">Είστε σίγουρος/η ότι θέλετε να διαγράψετε αυτό το προφίλ;</string> + <string name="profile_app_delete_confirm">Είστε σίγουρος/η ότι θέλετε να αφαιρέσετε αυτή την εφαρμογή;</string> + <string name="profile_cannot_delete">Δε μπορείτε να διαγράψετε το ενεργό προφίλ</string> + + <!-- Profile Config screen PreferenceGroup titles --> + <string name="profile_connectionoverrides_title">Παράκαμψη σύνδεσης</string> + <string name="profile_volumeoverrides_title">Παράκαμψη έντασης</string> + <string name="profile_vibratoroverrides_title">Παράκαμψη δόνησης</string> + <string name="connection_state_disabled">Απενεργοποίηση</string> + <string name="connection_state_enabled">Ενεργοποίηση</string> + <string name="volume_override_summary">Αλλαγή σε</string> + <string name="vibrator_state_disabled">Απενεργοποίηση</string> + <string name="vibrator_state_enabled">Ενεργοποίηση</string> + <string name="vibrator_state_silent">Μόνο στο αθόρυβο</string> + + <!-- Menu item for managing profiles --> + <string name="profile_profiles_manage">Προφίλ</string> + <string name="profile_profile_manage">Διαχείριση προφίλ</string> + <string name="profile_applist_manage">Λίστα εφαρμογών</string> + <string name="profile_appgroups_manage">Γκρουπ εφαρμογών</string> + <string name="profile_appgroup_manage">Διαχείριση γκρουπ εφαρμογών</string> + + <!-- Profile settings screen, section header for settings related to notification profiles --> + <string name="profile_settings">Ρυθμίσεις προφίλ</string> + <string name="profile_name">Όνομα</string> + + <!-- Profile Settings sound modes labels --> + <string name="sound_mode">Ειδοποιήσεις</string> + <string name="ringer_mode">Κουδούνισμα</string> + <string name="lights_mode">LED</string> + <string name="vibrate_mode">Δόνηση</string> + <string name="choose_soundtone">Ήχος ειδοποίησης</string> + <string name="choose_ringtone">Ήχος κλήσης</string> + + <!-- Sound settings screen, setting option name to pick ringtone (a list dialog comes up)--> + <string name="soundtone_title">Ήχος ειδοποίησης</string> + <string name="soundtone_summary">""</string> + + <!-- Title for application group setting screen --> + <string name="profile_appgroups_title">Γκρουπ εφαρμογών</string> + <string name="profile_applist_title">Εφαρμογές</string> + <string name="profile_new_appgroup">Νέο γκρουπ εφαρμογών</string> + <string name="profile_delete_appgroup">Διαγραφή γκρουπ εφαρμογών</string> + <string name="profile_appgroup_name_prompt">Εισάγετε όνομα για το νέο γκρουπ εφαρμογών</string> + <string name="profile_appgroup_name_title">Όνομα</string> + <string name="profile_add_app">Προσθήκη εφαρμογής</string> + <string name="profile_delete_app">Αφαίρεση εφαρμογής</string> + + <!-- Add application dialog box title --> + <string name="profile_choose_app">Επιλέξτε εφαρμογή</string> + <string name="profile_settings_header">Ρυθμίσεις προφίλ</string> + + <!-- Profiles - system settings --> + <string name="profile_system_settings_title">Ρυθμίσεις συστήματος</string> + <string name="profile_lockmode_title">Λειτουργία οθόνης κλειδώματος</string> + <string name="profile_lockmode_default">Προεπιλογή</string> + <string name="profile_lockmode_insecure">Ανασφαλής</string> + <string name="profile_lockmode_disabled">Απενεργοποιημένη</string> + <string name="profile_lockmode_default_summary">Χρήση προεπιλογής συστήματος</string> + <string name="profile_lockmode_insecure_summary">Χρήση ανασφαλούς οθόνης κλειδώματος</string> + <string name="profile_lockmode_disabled_summary">Απενεργοποίηση οθόνης κλειδώματος</string> + <string name="profile_airplanemode_title">Λειτουργία πτήσης</string> + <string name="profile_disable_screen_lock_summary">Απενεργοποίηση οθόνης κλειδώματος όταν είναι επιλεγμένο αυτό το προφίλ</string> + + <string name="vibrator_type_ringer">Κλήσεις</string> + <string name="vibrator_type_notification">Ειδοποιήσεις</string> + + <!-- Connection override toggles (not all are used at this time ) --> + <string name="possibleButtons">Πιθανά πλήκτρα</string> + <string name="toggleWifi">Wi-Fi</string> + <string name="toggleWifiAp">Φορητό Wi-Fi hotspot</string> + <string name="toggleBluetooth">Bluetooth</string> + <string name="toggleGPS">GPS</string> + <string name="toggleData">Δεδομένα</string> + <string name="toggleSync">Συγχρονισμός</string> + <string name="toggle2g3g">2G/3G</string> + <string name="toggleSound">Κουδούνισμα</string> + <string name="toggleBrightness">Φωτεινότητα</string> + <string name="toggleAutoRotate">Προσανατολισμός</string> + <string name="toggleScreenTimeout">Χρoνικό όριο οθόνης</string> + <string name="toggleAirplane">Λειτουργία πτήσης</string> + <string name="toggleFlashlight">Φακός</string> + <string name="toggleLockScreen">Οθόνη κλειδώματος</string> + <string name="toggleWimax">WiMAX</string> + + <!-- Screen security - Screen security --> + <string name="screen_security_category">Ασφάλεια οθόνης</string> + <string name="screen_security_title">Οθόνη κλειδώματος</string> + <string name="screen_security_summary">Εμφάνιση ή αλλαγή ρυθμίσεων ασφαλείας, καθυστέρησης και χρονικού ορίου της οθόνης κλειδώματος</string> + <string name="additional_options_title">Πρόσθετες επιλογές</string> + <string name="unlock_menu_unlock_title">Ξεκλείδωμα menu</string> + <string name="unlock_menu_unlock_summary">Πατώντας το πλήκτρο menu η συσκευή ξεκλειδώνει</string> + <string name="unlock_home_unlock_title">Ξεκλείδωμα home</string> + <string name="unlock_home_unlock_summary">Πατώντας το πλήκτρο home η συσκευή ξεκλειδώνει</string> + <string name="unlock_quick_unlock_control_title">Γρήγορο ξεκλείδωμα</string> + <string name="unlock_quick_unlock_control_summary">Αυτόματο ξεκλείδωμα όταν δωθεί το σωστό PIN ή ο σωστός κωδικός</string> + + <!-- Slide lock delay --> + <string name="delay_and_timeout_title">Καθυστέρηση κλειδώματος</string> + <string name="slide_lock_delay_title">Καθυστέρηση κλειδώματος οθόνης</string> + <string name="slide_lock_timeout_delay_title">Καθυστέρηση μετά τη λήξη χρον. ορίου</string> + <string name="slide_lock_screenoff_delay_title">Καθυστέρηση μετά το σβήσιμο</string> + <string name="slide_lock_delay_none">Καμία</string> + <string name="slide_lock_delay_1s">1 δευτερόλεπτο</string> + <string name="slide_lock_delay_5s">5 δευτερόλεπτα</string> + <string name="slide_lock_delay_10s">10 δευτερόλεπτα</string> + <string name="slide_lock_delay_15s">15 δευτερόλεπτα</string> + <string name="slide_lock_delay_30s">30 δευτερόλεπτα</string> + <string name="slide_lock_delay_1m">1 λεπτό</string> + <string name="slide_lock_delay_5m">5 λεπτά</string> + <string name="slide_lock_delay_10m">10 λεπτά</string> + <string name="slide_lock_delay_30m">30 λεπτά</string> + + <!-- Performance settings --> + <string name="performance_settings_title">Επιδόσεις</string> + + <!-- Performance Settings : Warning dialog --> + <string name="performance_settings_warning_title">Συνεχίστε με Προσοχή</string> + <string name="performance_settings_warning">Οι παρακάτω ρυθμίσεις περιλαμβάνονται για πειραματισμό και η οποιαδήμποτε αλλαγή ενδεχομένως να προκαλέσει αστάθεια, κολλήματα, απώλεια δεδομένων ή και βλάβη στο hardware.\n\nΠαρακαλούμε μην πραγματοποιήσετε bug report αν έχετε αλλάξει κάποια από τις παρακάτω ρυθμίσεις από τις προεπιλογές.</string> + + <!-- Performance Settings : Processor Settings --> + <!-- Performance Settings : Processor settings title --> + <string name="processor_title">Επεξεργαστής</string> + <!-- Performance Settings : Processor settings summary. --> + <string name="processor_summary">Αλλαγή CPU governor και clock speed</string> + + <!-- Performance Settings : Processor settings sub items --> + <string name="cpu_cur_freq_title">Τρέχουσα συχνότητα CPU</string> + <string name="cpu_governors_title">CPU governor</string> + <string name="cpu_governors_summary">%S</string> + <string name="cpu_min_freq_title">Ελάχιστη συχνότητα CPU</string> + <string name="cpu_min_freq_summary">%s</string> + <string name="cpu_max_freq_title">Μέγιστη συχνότητα CPU</string> + <string name="cpu_max_freq_summary">%s</string> + <string name="cpu_set_on_boot">Εφαρμογή κατά την εκκίνηση</string> + <string name="cpu_set_on_boot_summary">Επαναφορά ρυθμίσεων επεξεργαστή κατά την εκκίνηση</string> + + <!-- Performance Settings : I/O scheduler settings title --> + <string name="io_scheds_title">I/O scheduler</string> + <!-- Performance Settings : I/O scheduler settings summary. --> + <string name="io_scheds_summary">Αλλαγή I/O scheduler</string> + + <!-- Performance Settings : I/O scheduler settings sub items --> + <string name="io_sched_title">I/O scheduler</string> + <string name="io_sched_summary">%S</string> + <string name="io_sched_set_on_boot">Εφαρμογή κατά την εκκίνηση</string> + <string name="io_sched_set_on_boot_summary">Επαναφορά ρυθμίσεων I/O scheduler κατά την εκκίνηση</string> + + <!-- Memory Management --> + <string name="memory_management_title">Διαχείριση μνήμης</string> + <string name="memory_management_summary">Προσαρμογή χρήσης μνήμης για μεταβολή των επιδόσεων του συστήματος</string> + <!-- zRam --> + <string name="pref_zram_title">zRam</string> + <string name="pref_zram_summary">Συμπίεση μνήμης για αυξημένη εικονική χωρητικότητα (απαιτεί επανεκκίνηση)</string> + <!-- KSM --> + <string name="pref_ksm_title">Συγχώνευση Kernel samepage</string> + <string name="pref_ksm_summary">Η KSM μειώνει τις απαιτήσεις για μνήμη και αυξάνει την απόδοση</string> + <!-- Purgeable Assets --> + <string name="pref_purgeable_assets_title">Να επιτρέπεται το purging των assets</string> + <string name="pref_purgeable_assets_summary">Το Purging των bitmap memory assets επιτρέπει την απελευθέρωση περισσότερης RAM όταν χρειάζεται (απαιτεί επανεκκίνηση)</string> + + <!-- Performance Settings : Dithering --> + <string name="pref_use_dithering_title">Βελτίωση επιφάνειας</string> + <string name="dithering_no_dither">Απενεργοποίηση dithering</string> + <string name="dithering_color_banding">Διόρθωση color banding (προεπιλογή)</string> + <string name="dithering_blur_effect">Διόρθωση color banding και εφέ blur</string> + + <!-- Performance Settings : 16bpp Alpha --> + <string name="pref_use_16bpp_alpha_title">Διαφάνεια 16bit</string> + <string name="pref_use_16bpp_alpha_summary">Καλύτερη απόδοση γραφικών, αλλά χαμηλότερη ποιότητα και ίσως προκαλέσει artifacts (απαιτεί επανεκκίνηση)</string> + + <!-- Display : Rotation --> + <string name="display_rotation_title">Περιστροφή οθόνης</string> + <string name="display_rotation_disabled">Απενεργοποιημένη</string> + <string name="display_rotation_unit">μοίρες</string> + <string name="display_rotation_category_title">Επιλογές περιστροφής</string> + <string name="display_rotation_0_title">0 μοίρες</string> + <string name="display_rotation_90_title">90 μοίρες</string> + <string name="display_rotation_180_title">180 μοίρες</string> + <string name="display_rotation_270_title">270 μοίρες</string> + + <!-- Lock screen shortcuts --> + <string name="picker_activities">Δραστηριότητες</string> + <string name="select_custom_app_title">Επιλέξτε εφαρμογή</string> + <string name="select_custom_activity_title">Επιλέξτε δραστηριότητα</string> + <string name="icon_picker_choose_icon_title">Επιλέξτε εικονίδιο</string> + <string name="icon_picker_alarm">Ξυπνητήρι</string> + <string name="icon_picker_browser">Browser</string> + <string name="icon_picker_calendar">Ημερολόγιο</string> + <string name="icon_picker_camera">Κάμερα</string> + <string name="icon_picker_chrome">Chrome</string> + <string name="icon_picker_email">Email</string> + <string name="icon_picker_email2">Email Holo</string> + <string name="icon_picker_facebook">Facebook</string> + <string name="icon_picker_gallery">Συλλογή</string> + <string name="icon_picker_google_small">Google (μικρό)</string> + <string name="icon_picker_googleplus">Google Plus</string> + <string name="icon_picker_googletalk">Google Talk</string> + <string name="icon_picker_maps">Χάρτες</string> + <string name="icon_picker_movie">Ταινίες</string> + <string name="icon_picker_music">Μουσική</string> + <string name="icon_picker_nav_normal">Πλοήγηση</string> + <string name="icon_picker_phone">Τηλέφωνο</string> + <string name="icon_picker_podcast">Podcast</string> + <string name="icon_picker_rss">Rss</string> + <string name="icon_picker_search">Αναζήτηση</string> + <string name="icon_picker_sms">Μηνύματα</string> + <string name="icon_picker_twitter">Twitter</string> + + <!-- String for IconPicker --> + <string name="icon_picker_title">Πηγή εικονιδίων</string> + <string name="icon_picker_system_icons_title">Εικονίδια συστήματος</string> + <string name="icon_picker_gallery_title">Συλλογή</string> + <string name="icon_picker_pack_title">Πακέτο εικονιδίων</string> + + <string name="increasing_ring_title">Αυξανόμενη ένταση ήχου κλήσης</string> + <!-- Sound settings screen, the caption of the checkbox for making incoming calls increase in volume --> + <string name="checkbox_increasing_ring">Ενεργοποίηση</string> + <!-- Sound settings screen, the title of the volume bar to adjust the minimum increasing ring volume --> + <string name="increasing_ring_min_volume_title">Ένταση έναρξης ήχου κλήσης</string> + <string name="increasing_ring_volume_notice">Σημείωση:\nΗ ένταση έναρξης είναι υψηλότερη από την ένταση του κουδουνιού, ο ήχος κλήσης θα παίξει με την ένταση του κουδουνιού.</string> + <string name="increasing_ring_interval_title">Χρονικό διάστημα αύξησης</string> + <string name="increasing_ring_interval_eachring">Σε κάθε χτύπο</string> + <string name="increasing_ring_interval_half_second">0.5 δευτερόλεπτα</string> + <string name="increasing_ring_interval_1second">1 δευτερόλεπτο</string> + <string name="increasing_ring_interval_2seconds">2 δευτερόλεπτα</string> + <string name="increasing_ring_interval_3seconds">3 δευτερόλεπτα</string> + <string name="increasing_ring_interval_5seconds">5 δευτερόλεπτα</string> + <string name="increasing_ring_interval_10seconds">10 δευτερόλεπτα</string> + + <string name="profile_write_nfc_tag">Γράψτε στην ετικέτα NFC</string> + <string name="profile_write_touch_tag">Αγγίξτε την ετικέτα για εγγραφή</string> + <string name="profile_write_success">Επιτυχής εγγραφή της ετικέτας</string> + <string name="profile_write_failed">Σφάλμα εγγραφής της ετικέτας!</string> + <string name="profile_selected">Επιλεγμένο προφίλ: %1$s</string> + <string name="profile_nfc_text">Γράφοντας ένα προφίλ σε μια ετικέτα NFC, επιτρέπετε το πάτημα της ετικέτας για επιλογή του προφίλ. Πατώντας δεύτερη φορά, επιλέγεται το προφίλ που έχετε επιλέξει προηγουμένως.</string> + <string name="profile_unknown_nfc_tag">Άγνωστο προφίλ</string> + <string name="profile_add_nfc_text">Αυτή η ετικέτα NFC αναφέρεται σε ένα άγνωστο προφίλ. Η τοποθέτηση αυτής της ετικέτας NFC σε ένα υπάρχον προφίλ θα επιτρέψει την επιλογή του προφίλ στο μέλλον.</string> + <string name="profile_select">Επιλογή προφίλ</string> + + <string name="link_volume_ringtones">Σύνδεση εντάσεων</string> + <string name="link_volume_mutes">Σίγαση ειδοποιήσεων στο Αθόρυβο</string> + + <!-- Display settings screen, notification light settings --> + <string name="notification_pulse_title">Φωτεινός παλμός ειδοποίησης</string> + <string name="notification_light_general_title">Γενικά</string> + <string name="notification_light_applist_title">Εφαρμογές</string> + <string name="notification_light_phonelist_title">Τηλέφωνο</string> + <string name="notification_light_use_custom">Χρήση προσαρμ. τιμών</string> + <string name="notification_light_enabled">Ενεργό</string> + <string name="notification_light_disabled">Ανενεργό</string> + <string name="notification_light_default_value">Προεπιλογή</string> + <string name="notification_light_missed_call_title">Αναπάντητη κλήση</string> + <string name="notification_light_voicemail_title">Μήνυμα τηλεφωνητή</string> + + <!-- Notification light dialogs --> + <string name="edit_light_settings">Επεξεργασία φωτεινού παλμού</string> + <string name="pulse_speed_title">Ταχύτητα και μήκος παλμού</string> + <string name="picker_arrow">→</string> + <string name="default_time">Κανονικό</string> + <string name="custom_time">Προσαρμοσμένο</string> + <string name="dialog_test">Δοκιμή</string> + <string name="dialog_delete_title">Διαγραφή</string> + <string name="dialog_delete_message">Αφαίρεση επιλεγμένου αντικειμένου;</string> + <string name="dialog_test_message">Απενεργοποιήστε την οθόνη για δοκιμή του προσαρμοσμένου φωτεινού παλμού ή απορρίψτε αυτό τον διάλογο για ακύρωση της δοκιμής</string> + <string name="dialog_test_button">Ακύρωση</string> + + <!-- Values for the notification light pulse spinners --> + <string name="pulse_length_always_on">Πάντα ανοιχτό</string> + <string name="pulse_length_very_short">Πολύ σύντομο</string> + <string name="pulse_length_short">Σύντομο</string> + <string name="pulse_length_normal">Κανονικό</string> + <string name="pulse_length_long">Εκτενές</string> + <string name="pulse_length_very_long">Πολύ εκτενές</string> + <string name="pulse_speed_very_fast">Πολύ γρήγορο</string> + <string name="pulse_speed_fast">Γρήγορο</string> + <string name="pulse_speed_normal">Κανονικό</string> + <string name="pulse_speed_slow">Αργό</string> + <string name="pulse_speed_very_slow">Πολύ αργό</string> + + <!-- Battery light settings --> + <string name="battery_light_title">Φωτεινή ένδειξη μπαταρίας</string> + <string name="battery_low_pulse_title">Αναβόσβησε όταν η μπαταρία είναι χαμηλή</string> + <string name="battery_light_list_title">Χρώματα</string> + <string name="battery_light_low_color_title">Χαμηλή μπαταρία</string> + <string name="battery_light_medium_color_title">Φόρτιση</string> + <string name="battery_light_full_color_title">Πλήρης φόρτιση</string> + + <!-- Sound settings screen --> + <string name="volume_overlay_title">Στυλ πάνελ έντασης</string> + <string name="volbtn_music_controls_title">Έλεγχος μουσικής με τα πλήκτρα ήχου</string> + <string name="volbtn_music_controls_summary">Όταν η οθόνη είναι απενεργοποιημένη, πιέζοντας τα πλήκτρα ελέχου έντασης αλλάζετε το τρέχον μουσικό κομμάτι</string> + <string name="volume_ring_only_description">Ήχοι κλήσης</string> + <string name="ring_mode_title">Λειτουργία κλήσης</string> + <string name="ring_mode_normal">Κανονικό</string> + <string name="ring_mode_vibrate">Δόνηση</string> + <string name="ring_mode_mute">Σίγαση</string> + + <!-- Hardware keys --> + <string name="hardware_keys_title">Πλήκτρα</string> + <string name="hardware_keys_bindings_title">Ενέργειες πλήκτρων</string> + <string name="hardware_keys_enable_custom_title">Προσαρμοσμένες ενέργειες</string> + <string name="hardware_keys_home_long_press_title">Πλήκτρο Home (παρατεταμένο πάτημα)</string> + <string name="hardware_keys_menu_press_title">Πλήκτρο Menu</string> + <string name="hardware_keys_menu_long_press_title">Πλήκτρο Menu (παρατεταμένο πάτημα)</string> + <string name="hardware_keys_assist_press_title">Πλήκτρο Search</string> + <string name="hardware_keys_assist_long_press_title">Πλήκτρο Search (παρατεταμένο πάτημα)</string> + <string name="hardware_keys_app_switch_press_title">Πλήκτρο εναλλαγής εφαρμογών</string> + <string name="hardware_keys_app_switch_long_press_title">Πλήκτρο εναλλαγής εφαρμογών (παρατεταμένο πάτημα)</string> + <string name="hardware_keys_show_overflow_title">Εμφάνιση action overflow</string> + <string name="hardware_keys_show_overflow_summary">Εμφανίζει το κουμπί overflow με τις 3 τελείες στις εφαρμογές</string> + <string name="hardware_keys_show_overflow_toast_enable">Το κουμπί δεν θα είναι ορατό μέχρι την επανεκκίνηση των εφαρμογών</string> + <string name="hardware_keys_show_overflow_toast_disable">Το κουμπί θα είναι ορατό μέχρι την επανεκκίνηση των εφαρμογών</string> + <string name="hardware_keys_action_nothing">Καμία ενέργεια</string> + <string name="hardware_keys_action_menu">Άνοιγμα/κλείσιμο μενού</string> + <string name="hardware_keys_action_app_switch">Εναλλαγή πρόσφατων εφαρμογών</string> + <string name="hardware_keys_action_search">Βοηθός αναζήτησης</string> + <string name="hardware_keys_action_voice_search">Φωνητική αναζήτηση</string> + <string name="hardware_keys_action_in_app_search">Αναζήτηση μέσα στην εφαρμογή</string> + + <!-- Navigation Bar --> + <string name="navigation_bar_title">Μπάρα πλοήγησης</string> + <string name="navigation_bar_help_text">1 - Για να ξεκινήσετε την επεξεργασία, πατήστε το εικονίδιο κλειδώματος\n\n2 - Πατήστε οποιοδήποτε κουμπί για να καθορίσετε ή να αλλάξετε τη λειτουργία του\n\n3 - Πιέστε παρατεταμένα οποιοδήποτε κουμπί για να αλλάξετε τη σειρά\n\n4 - Για αποθήκευση, πατήστε ξανά το εικονίδιο κλειδώματος\n\n5 - Για επαναφορά των προεπιλογών, πατήστε το κουμπί επαναφοράς\n\n</string> + <string name="navigation_bar_tips">• Οι ενέργειες μπορούν να εκχωρηθούν μόνο σε ένα κουμπί τη φορά\n\n• Το κουμπί home δεν μπορεί να επαναπροσδιοριστεί\n\n• Τα πλαϊνά κουμπιά δεν μπορούν να επαναπροσδιορισθούν</string> + <string name="navigation_bar_tips_title">Γρήγορες συμβουλές</string> + <string name="navigation_bar_reset_message">Διαγραφή ρυθμίσεων και επαναφορά στις προεπιλεγμένες;</string> + <string name="navigation_bar_save_message">Οι ρυθμίσεις της Μπάρας πλοήγησης αποθηκεύτηκαν</string> + <string name="navigation_bar_reset_toast">Έγινε επαναφορά των ρυθμίσεων της Μπάρας πλοήγησης</string> + <string name="navigation_bar_menu_editable">Επεξεργάσιμο</string> + <string name="navigation_bar_menu_locked">Κλειδωμένο</string> + + <!-- Power Widget --> + <string name="power_widget_title">Power widget</string> + <string name="title_expanded_widget">Power widget</string> + <string name="power_widget_behavior">Συμπεριφορά widget</string> + <string name="title_expanded_hide_onchange">Απόκρυψη μετά από αλλαγή</string> + <string name="title_expanded_hide_indicator">Απόκρυψη ένδειξης</string> + <string name="title_expanded_hide_scrollbar">Απόκρυψη μπάρας ολίσθισης</string> + <string name="title_widget_picker">Πλήκτρα widget</string> + <string name="summary_widget_picker">Επιλέξτε τα πλήκτρα που θα εμφανίζονται στο power widget</string> + <string name="title_widget_order">Σειρά πλήκτρων widget</string> + <string name="summary_widget_order">Επιλέξτε τη σειρά των πλήκτρων του power widget</string> + <string name="title_buttons">Πλήκτρα</string> + <string name="title_toggle_wifi">Wi-Fi</string> + <string name="title_toggle_bluetooth">Bluetooth</string> + <string name="title_toggle_gps">GPS</string> + <string name="title_toggle_sound">Ήχος</string> + <string name="title_toggle_brightness">Φωτεινότητα</string> + <string name="title_toggle_sync">Συγχρονισμός</string> + <string name="title_toggle_wifiap">Wi-Fi AP</string> + <string name="title_toggle_screentimeout">Χρονικό όριο οθόνης</string> + <string name="title_toggle_mobiledata">Δεδομένα</string> + <string name="title_toggle_lockscreen">Οθόνη κλειδώματος</string> + <string name="title_toggle_networkmode">Εναλλαγή λειτ. δικτύου</string> + <string name="title_toggle_autorotate">Προσανατολισμός</string> + <string name="title_toggle_airplane">Λειτουργία πτήσης</string> + <string name="title_toggle_flashlight">Φακός</string> + <string name="title_toggle_sleep">Αναστολή λειτουργίας</string> + <string name="title_toggle_media_play_pause">Μέσα: Αναπαρ./Παύση</string> + <string name="title_toggle_media_previous">Μέσα: Προηγούμενο</string> + <string name="title_toggle_media_next">Μέσα: Επόμενο</string> + <string name="title_toggle_lte">LTE</string> + <string name="title_toggle_wimax">WiMAX</string> + <string name="title_button_modes">ΛΕΙΤΟΥΡΓΙΑ ΠΛΗΚΤΡΩΝ</string> + <string name="pref_brightness_mode_title">Φωτεινότητα</string> + <string name="pref_brightness_mode_summary">Επιλέξτε τις εναλλαγές που θα γίνονται με το πλήκτρο φωτεινότητας</string> + <string name="cm_brightness_mode_auto">Αυτόματη</string> + <string name="cm_brightness_mode_dim">Συσκότιση</string> + <string name="pref_network_mode_title">Δίκτυο</string> + <string name="pref_screentimeout_mode_title">Χρονικό όριο οθόνης</string> + <string name="pref_ring_mode_title">Ήχος</string> + <string name="pref_ring_mode_summary">Επιλέξτε τις εναλλαγές που θα γίνονται με το πλήκτρο ήχου</string> + <string name="cm_sound_mode_silent">Σίγαση</string> + <string name="cm_sound_mode_vibrate">Δόνηση</string> + <string name="cm_sound_mode_sound">Ήχος</string> + <string name="cm_sound_mode_soundVibrate">Ήχος & Δόνηση</string> + <string name="pref_flash_mode_title">Φακός</string> + <string name="expanded_haptic_feedback_title">Απτική ανάδραση</string> + + <!-- Kill app long-press back --> + <string name="kill_app_longpress_back">Τερμ. με πλήκτρο back</string> + <string name="kill_app_longpress_back_summary">Το κουμπί back τερματίζει την τρέχουσα εφαρμογή</string> + + <!-- Change Log strings --> + <string name="changelog_title">Εμφάνιση αρχείου αλλαγών</string> + <string name="changelog_loading">Φόρτωση αρχείου αλλαγών\u2026</string> + <string name="changelog_error">Δεν είναι δυνατή η φόρτωση του αρχείου αλλαγών</string> + <string name="changelog_unknown">Άγνωστο</string> + <string name="changelog_version">Έκδοση</string> + + <!-- Power menu enable disable --> + <string name="power_menu_title">Power menu</string> + <string name="power_menu_reboot_title">Επανεκκίνηση</string> + <string name="power_menu_screenshot_title">Στιγμιότυπο οθόνης</string> + <string name="power_menu_expanded_desktop">Επέκταση επιφάνειας</string> + <string name="power_menu_profiles_title">Προφίλ</string> + <string name="power_menu_airplane_title">Λειτουργία πτήσης</string> + <string name="power_menu_user_title">Εναλλαγή χρήστη</string> + <string name="power_menu_sound_title">Πάνελ έντασης</string> + + <!-- CM Updater --> + <string name="cmupdate_settings_title">Ενημερώσεις CyanogenMod</string> + <string name="cmupdate_settings_summary">Έλεγχος και εγκατάσταση διαθέσιμων ενημερώσεων</string> + + <!-- Advanced, Device specific (DeviceParts) settings --> + <string name="advanced_settings_title">Για προχωρημένους</string> + + <!-- Whether to display IME switcher notifcation --> + <string name="ime_switcher_notify">Ειδοποίηση επιλογέα</string> + <string name="ime_switcher_notify_summary">Εμφάνιση ειδοποίησης για τον επιλογέα μεθόδου εισαγωγής</string> + + <!-- Status bar --> + <string name="status_bar_title">Μπάρα κατάστασης</string> + <string name="status_bar_clock_title">ΡΟΛΟΪ</string> + <string name="status_bar_general_title">ΓΕΝΙΚΑ</string> + <string name="status_bar_show_clock_title">Εμφάνιση ρολογιού</string> + <string name="status_bar_am_pm_title">Στυλ ΠΜ/ΜΜ</string> + <string name="status_bar_am_pm_info">Μόρφή 24-ώρου ενεργοποιημένη</string> + <string name="status_bar_battery_title">Στυλ επιπέδου μπαταρίας</string> + <string name="status_bar_toggle_brightness">Έλεγχος φωτεινότητας</string> + <string name="status_bar_toggle_brightness_summary">Επιτρέπει τον έλεγχο της φωτεινότητας με ολίσθιση στη μπάρα κατάστασης</string> + <string name="status_bar_toggle_info">Είναι ενεργοποιημένη η αυτόματη φωτεινότητα</string> + <string name="status_bar_signal_text_title">Στυλ επιπέδου σήματος</string> + <string name="status_bar_style_icon">Εικονίδιο</string> + <string name="status_bar_style_hidden">Κρυφό</string> + <string name="status_bar_signal_text_show_text">Κείμενο</string> + <string name="status_bar_battery_status_percentage">Ποσοστό</string> + <string name="status_bar_battery_status_circle">Κύκλος</string> + <string name="status_bar_battery_status_circle_percentage">Κύκλος με ποσοστό</string> + + <!-- Status bar notification count --> + <string name="status_bar_notif_count_title">Εμφ. αριθμού ειδοποιήσεων</string> + <string name="status_bar_notif_count_summary">Εμφάνιση του αριθμού των ειδοποιήσεων που εκκρεμούν στη μπάρα κατάστασης</string> + + <!-- Wakeup options --> + <string name="display_category_wakeup_options_title">Επιλογές αφύπνισης</string> + <string name="pref_volume_wake_title">Αφύπνιση με πληκ. έντασης</string> + <string name="pref_volume_wake_summary">Αφύπνιση της συσκευής κατά το πάτημα των πλήκτρων έντασης</string> + + <!-- Setting checkbox summary for displaying USB debugging notification --> + <string name="adb_notify">Ειδοποίηση εντοπισμού σφαλμάτων USB</string> + <string name="adb_notify_summary">Εμφάνιση ειδοποίησης όταν ο εντοπισμός σφαλμάτων μέσω USB είναι ενεργοποιημένος</string> + + <!-- Launches Dev Tools --> + <string name="development_tools_title">Εκκίνηση εργαλείων</string> + + <!-- USB Mass Storage --> + <string name="usb_mass_storage_title">Αποθ. χώρος USB</string> + <string name="usb_mass_storage_summary">Ενεργοποίηση αποθ. χώρου USB</string> + + <!-- Android debugging over WiFi --> + <string name="adb_over_network">Εντοπισμός σφαλμάτων μέσω δικτύου</string> + <string name="adb_over_network_summary">Λειτουργία εντοπισμού σφαλμάτων μέσω TCP/IP δικτύων (δίκτυα Wi-Fi, USB). Η ρύθμιση επαναφέρεται κατα την εκκίνηση</string> + <!-- Warning for Adb over Network --> + <string name="adb_over_network_warning">ΠΡΟΣΟΧΗ: Όταν ο εντοπισμός σφαλμάτων μέσω δικτύου είναι ενεργοποιημένος, το τηλέφωνό σας είναι ανοικτό για εισβολές σε όλα τα συνδεδεμένα δίκτυα, συμπεριλαμβανομένου του δικτύου GSM δεδομένων!\n\nΧρησιμοποιήστε αυτή τη λειτουργία μόνο όταν είστε συνδεδεμένοι σε έμπιστα δίκτυα.\n\nΘέλετε πραγματικά να ενεργοποιήσετε αυτή τη λειτουργία;</string> + + <string name="lockscreen_buttons_title">Πλήκτρα</string> + <string name="lockscreen_buttons_summary">Ενέργειες κατά την παρατεταμένη πίεση των πλήκτρων στην οθόνη κλειδώματος</string> + <string name="lockscreen_long_press_back_title">Πλήκτρο Back</string> + <string name="lockscreen_long_press_home_title">Πλήκτρο Home</string> + <string name="lockscreen_long_press_menu_title">Πλήκτρο Menu</string> + <string name="lockscreen_buttons_no_action">Καμία ενέργεια</string> + <string name="lockscreen_buttons_flashlight">Φακός</string> + <string name="lockscreen_buttons_next">Επόμενο τραγούδι</string> + <string name="lockscreen_buttons_previous">Προηγούμενο τραγούδι</string> + <string name="lockscreen_buttons_playpause">Αναπαραγ./Παύση μουσικής</string> + <string name="lockscreen_buttons_toggle_sound">Ενεργ./Απενεργ. ήχου</string> + + <!-- Quick settings panel --> + <string name="quick_settings_panel_title">Πάνελ Γρήγορων ρυθμίσεων</string> + <string name="quick_settings_title">Γρήγορες ρυθμίσεις</string> + <string name="title_static_tiles">Στατικά πλακίδια</string> + <string name="tile_picker_title">Πλακίδια και διάταξη</string> + <string name="tile_picker_summary">Εμφάνιση, επιλογή ή αλλαγή της διάταξης των πλακιδίων που εμφανίζονται</string> + <string name="tile_choose_title">Επιλέξτε ένα πλακίδιο</string> + + <string name="title_tile_airplane">Λειτουργία πτήσης</string> + <string name="title_tile_battery">Στατιστικά μπαταρίας</string> + <string name="title_tile_bluetooth">Bluetooth</string> + <string name="title_tile_brightness">Φωτεινότητα</string> + <string name="title_tile_sleep">Αναστολή λειτουργίας</string> + <string name="title_tile_gps">GPS</string> + <string name="title_tile_torch">Φακός</string> + <string name="title_tile_lockscreen">Οθόνη κλειδώματος</string> + <string name="title_tile_lte">LTE</string> + <string name="title_tile_mobiledata">Δεδομένα</string> + <string name="title_tile_profile">Προφίλ</string> + <string name="title_tile_autorotate">Προσανατολισμός</string> + <string name="title_tile_settings">Ρυθμίσεις</string> + <string name="title_tile_sound">Ήχος</string> + <string name="title_tile_sync">Συγχρονισμός</string> + <string name="title_tile_wifiap">Wi-Fi AP</string> + <string name="title_tile_wifi">Wi-Fi</string> + <string name="title_tile_wimax">WiMAX</string> + <string name="title_tile_user">Εναλλαγή χρήστη</string> + <string name="title_tile_networkmode">Δίκτυο</string> + <string name="title_tile_nfc">NFC</string> + <string name="title_tile_screen_timeout">Χρ. όριο οθόνης</string> + <string name="title_tile_usb_tether">Πρόσδεση USB</string> + <string name="title_tile_quiet_hours">Ώρες ησυχίας</string> + + <string name="title_dynamic_tiles">Δυναμικά πλακίδια</string> + <string name="dynamic_tiles_note_title">Σημείωση</string> + <string name="dynamic_tiles_note_summary">Τα δυναμικά πλακίδια δεν είναι πάντα ορατά και εμφανίζονται μόνο όταν προκληθεί ένα συμβάν του συστήματος</string> + <string name="title_dynamic_alarm">Ξυπνητήρι</string> + <string name="title_dynamic_bugreport">Αναφορά σφάλματος</string> + <string name="title_dynamic_ime">Εναλλαγή μεθ. εισαγωγής</string> + <string name="title_dynamic_usbtether">Πρόσδεση USB</string> + <string name="title_dynamic_wifi">Οθόνη Wi-Fi</string> + + <string name="title_general">Γενικά</string> + <string name="title_quick_pulldown">Γρήγορο τράβηγμα</string> + <string name="summary_quick_pulldown">Τραβώντας προς τα κάτω την %1$s άκρη της μπάρας κατάστασης εμφανίζονται οι Γρήγορες ρυθμίσεις</string> + <string name="quick_pulldown_summary_left">Αριστερή</string> + <string name="quick_pulldown_summary_right">Δεξιά</string> + <string name="quick_pulldown_off">Ανενεργό</string> + <string name="quick_pulldown_left">Αριστερή</string> + <string name="quick_pulldown_right">Δεξιά</string> + <string name="title_collapse_panel">Αυτόματο κλείσιμο</string> + <string name="summary_collapse_panel">Κλείσιμο του πάνελ Γρήγορων ρυθμίσεων μετα την αλλαγή</string> + + <!-- Reset tiles --> + <string name="tiles_reset_title">Επαναφορά</string> + <string name="tiles_reset_message">Επαναφορά των προεπιλεγμένων πλακιδίων και διάταξης;</string> + + <!--- Volume key cursor control --> + <string name="volume_key_cursor_control_title">Έλεγχος κέρσορα με πλήκ. έντασης</string> + <string name="volume_key_cursor_control_off">Ανενεργό</string> + <string name="volume_key_cursor_control_on">Το πλήκ. πάνω/κάτω μετακινεί τον κέρσορα αριστερά/δεξιά</string> + <string name="volume_key_cursor_control_on_reverse">Το πλήκ. πάνω/κάτω μετακινεί τον κέρσορα δεξιά/αριστερά</string> + + <!-- Wireless display --> + <string name="pref_wifi_disable_hdcp_title">Παράλειψη διαπραγμάτευσης HDCP</string> + <string name="pref_wifi_disable_hdcp_summary">Δοκιμάστε αυτή την επιλογή εάν μπορείτε να συνδεθείτε, αλλά δεν παίρνετε καμία έξοδο</string> + + <!--- Sms security limit --> + <string name="app_security_title">Ασφάλεια εφαρμογών</string> + <string name="sms_security_check_limit_title">Όριο μηνυμάτων SMS</string> + <string name="sms_security_check_limit_summary">Οι εφαρμογές μπορούν να στείλουν %d μηνύματα μέσα σε 30 λεπτά πριν χρειαστούν επιβεβαίωση</string> + <string name="sms_security_check_limit_default">30 (Προεπιλογή)</string> + + <!--- Lock clock --> + <string name="lock_clock_title">Widget ρολογιού</string> + <string name="lock_clock_summary">Προβολή ή αλλαγή της εμφάνισης του widget \'cLock\' στην αρχική οθόνη και την οθόνη κλειδώματος</string> + + <!-- Stylus Icon --> + <string name="stylus_icon_enabled_title">Εικον. κατά τη χρήση γραφίδας</string> + <string name="stylus_icon_enabled_summary">Εμφάνιση δείκτη κατά τη χρήση γραφίδας</string> + + <!-- Title for the accessibility preference to home button to answers a call. [CHAR LIMIT=35] --> + <string name="accessibility_home_button_answers_call_prerefence_title">Το κουμπί Home απαντά την κλήση</string> + + <string name="lockscreen_maximize_widgets_title">Μεγιστοποίηση widget</string> + <string name="lockscreen_maximize_widgets_summary">Μεγιστοποίηση των widget και σμίκρυνση του κλειδώματος όταν η οθόνη είναι ενεργή</string> + + <!-- Category title for headset specific Settings. [CHAR LIMIT=40] --> + <string name="headset_category_title">Ακουστικά</string> + <string name="headset_connect_player_title">Εκκίνηση εφαρμογής μουσικής κατά τη σύνδεση</string> + + <!-- Activity label of BluetoothMasPermissionActivity, also used as Strings in the permission dialog [CHAR LIMIT=none] --> + <string name="bluetooth_mas_request">Αίτημα πρόσβασης μηνυμάτων</string> + + <!-- Bluetooth MAS permission Alert Activity text [CHAR LIMIT=none] --> + <string name="bluetooth_mas_acceptance_dialog_text">Η συσκευή %1$s ζητά πρόσβαση στα μηνύματά σας. Να επιτραπεί η πρόσβαση στο %2$s;</string> + + <!-- Bluetooth MAS permission Alert Activity checkbox text [CHAR LIMIT=none] --> + <string name="bluetooth_mas_remember_choice">Να μην ερωτηθώ ξανά</string> + + <!-- Wi-Fi settings screen, advanced, title of the item to set the Wi-Fi priority. --> + <string name="wifi_setting_priority_title">Προτεραιότητα Wi-Fi</string> + <!-- Wi-Fi settings screen, setting summary for setting the Wi-Fi priority--> + <string name="wifi_setting_priority_summary">Καθορίστε την προτεραιότητα των δικτύων Wi-Fi</string> + + <!-- Lock screen background --> + <string name="lockscreen_custom_background_title">Ταπετσαρία</string> + <string name="lockscreen_custom_background_dialog_title">Επιλογή χρώματος</string> + <string name="lockscreen_background_result_successful">Η ταπετσαρία αλλάχθηκε</string> + <string name="lockscreen_background_result_not_successful">Η ταπετσαρία δεν αλλάχθηκε</string> + <string name="lockscreen_background_color_fill">Γέμισμα με χρώμα</string> + <string name="lockscreen_background_custom_image">Προσαρμοσμένη εικόνα</string> + <string name="lockscreen_background_default_wallpaper">Προεπιλεγμένη ταπετσαρία</string> + + <!-- Safe headset volume restore checkbox --> + <string name="safe_headset_volume_title">Ασφαλής ένταση ακουστικών</string> + <string name="safe_headset_volume_summary">Αποτροπή δυνατού επιπέδου έντασης ήχου όταν τα ακουστικά συνδέονται για πρώτη φορά</string> + + <!-- Waiver --> + <string name="cyanogenmod_waiver_title">Απαλλαγή ευθυνών</string> + <string name="cyanogenmod_waiver_body">Η αλλαγή αυτής της ρύθμισης μπορεί να είναι ενάντια στη νομοθεσία της πολιτείας ή της κυβέρνησης σας.\n\nΕπιλέγοντας \'OK\' παρακάτω, αποδέχεστε αυτή την προειδοποίηση και απαλλάσετε το CyanogenMod και τους συνεργάτες του από όλες τις νομικές ευθύνες και υποχρεώσεις.</string> + + <!-- **** CYANOGENMOD ADDITIONS END **** --> </resources> diff --git a/res/values-es/arrays.xml b/res/values-es/arrays.xml index 564f631..7246245 100644 --- a/res/values-es/arrays.xml +++ b/res/values-es/arrays.xml @@ -295,4 +295,66 @@ <item msgid="5077768429488260031">"No permitir nunca"</item> <item msgid="1417929597727989746">"Permitir siempre"</item> </string-array> + + <!-- CYANOGENMOD EDITS START --> + + <string-array name="volume_overlay_entries"> + <item>Sencillo</item> + <item>Ampliable</item> + <item>Extendido</item> + <item>Ninguno</item> + </string-array> + <string-array name="pref_zram_size_entries"> + <item>Deshabilitado</item> + <item>10%</item> + <item>18% (por defecto)</item> + <item>26%</item> + </string-array> + <string-array name="profile_entries"> + <item>Activo</item> + <item>Inactivo</item> + <item>No sobrescribir</item> + </string-array> + <string-array name="profile_connection_entries"> + <item>Deshabilitado</item> + <item>Habilitado</item> + </string-array> + <string-array name="entries_network_widget"> + <item>2G/3G+2G</item> + <item>2G/Sólo 3G</item> + <item>2G/Sólo 3G/3G+2G</item> + </string-array> + <string-array name="entries_screentimeout_widget"> + <item>15 seg/1 min/5 min</item> + <item>30 seg/2 min/5 min</item> + </string-array> + <string-array name="entries_flash_widget"> + <item>Normal</item> + <item>Alto</item> + </string-array> + <string-array name="haptic_feedback_entries"> + <item>Configuración global</item> + <item>Activado</item> + <item>Desactivado</item> + </string-array> + <string-array name="entries_status_bar_am_pm"> + <item>Normal</item> + <item>Pequeño</item> + <item>Ninguno (por defecto)</item> + </string-array> + <string-array name="wifi_countrycode_entries"> + <item>Estados Unidos</item> + <item>Canadá, Taiwán</item> + <item>Alemania</item> + <item>Europa</item> + <item>Japón, Rusia</item> + <item>Australia</item> + <item>China</item> + <item>Corea</item> + <item>Turquía</item> + <item>Singapur</item> + <item>Brasil</item> + </string-array> + +<!-- CYANOGENMOD EDITS END --> </resources> diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml index d9c5f61..66cc5d7 100644 --- a/res/values-es/strings.xml +++ b/res/values-es/strings.xml @@ -1,5 +1,6 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2007 The Android Open Source Project +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2007 The Android Open Source Project + 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. @@ -26,8 +27,8 @@ <item quantity="one" msgid="5295687242294085452">"Solo te queda <xliff:g id="STEP_COUNT">%1$d</xliff:g> paso para ser un desarrollador."</item> <item quantity="other" msgid="6722953419953594148">"Solo te quedan <xliff:g id="STEP_COUNT">%1$d</xliff:g> pasos para ser un desarrollador."</item> </plurals> - <string name="show_dev_on" msgid="1110711554982716293">"¡Ahora eres un desarrollador!"</string> - <string name="show_dev_already" msgid="2151632240145446227">"No es necesario, ya eres un desarrollador."</string> + <string name="show_dev_on" msgid="1110711554982716293">"¡Ahora están activadas las opciones de desarrollo!"</string> + <string name="show_dev_already" msgid="2151632240145446227">"No es necesario, están activadas las opciones de desarrollo."</string> <string name="header_category_wireless_networks" msgid="4944823405420438623">"CONEXIONES INALÁMBRICAS Y REDES"</string> <string name="header_category_device" msgid="5781174212691167553">"DISPOSITIVO"</string> <string name="header_category_personal" msgid="6225932173498802187">"PERSONAL"</string> @@ -54,7 +55,7 @@ <string name="radioInfo_phone_ringing" msgid="4883724645684297895">"Sonando"</string> <string name="radioInfo_phone_offhook" msgid="4174402846862780998">"Llamada en curso"</string> <string name="radioInfo_data_disconnected" msgid="1959735267890719418">"Desconectada"</string> - <string name="radioInfo_data_connecting" msgid="8404571440697917823">"Estableciendo conexión..."</string> + <string name="radioInfo_data_connecting" msgid="8404571440697917823">"Estableciendo conexión\u2026"</string> <string name="radioInfo_data_connected" msgid="7074301157399238697">"Conectado"</string> <string name="radioInfo_data_suspended" msgid="5315325487890334196">"Suspendido"</string> <string name="radioInfo_unknown" msgid="737385314432468266">"desconocido"</string> @@ -89,7 +90,7 @@ <string name="battery_info_awake_plugged" msgid="176716874713478188">"Tiempo de actividad durante la carga:"</string> <string name="battery_info_screen_on" msgid="376277447175613889">"Pantalla de duración de encendido"</string> <string name="battery_info_status_unknown" msgid="196130600938058547">"Desconocido"</string> - <string name="battery_info_status_charging" msgid="1705179948350365604">"Cargando..."</string> + <string name="battery_info_status_charging" msgid="1705179948350365604">"Cargando\u2026"</string> <string name="battery_info_status_charging_ac" msgid="5874340256342956252">"(CA)"</string> <string name="battery_info_status_charging_usb" msgid="4059070156126770959">"(USB)"</string> <string name="battery_info_status_charging_wireless" msgid="1822125795446772771">"(conexiones inalámbricas)"</string> @@ -135,10 +136,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Conectado (sin audio multimedia)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Conectado (sin teléfono ni multimedia)"</string> <string name="bluetooth_disconnected" msgid="6557104142667339895">"Desconectada"</string> - <string name="bluetooth_disconnecting" msgid="8913264760027764974">"Desconectando..."</string> - <string name="bluetooth_connecting" msgid="8555009514614320497">"Estableciendo conexión..."</string> + <string name="bluetooth_disconnecting" msgid="8913264760027764974">"Desconectando\u2026"</string> + <string name="bluetooth_connecting" msgid="8555009514614320497">"Estableciendo conexión\u2026"</string> <string name="bluetooth_unknown" msgid="644716244548801421"></string> - <string name="bluetooth_pairing" msgid="1426882272690346242">"Sincronizando..."</string> + <string name="bluetooth_pairing" msgid="1426882272690346242">"Sincronizando\u2026"</string> <string name="bluetooth_device" msgid="5291950341750186887">"Dispositivo Bluetooth sin nombre"</string> <string name="progress_scanning" msgid="192587958424295789">"Buscando"</string> <string name="bluetooth_no_devices_found" msgid="1085232930277181436">"No hay dispositivos Bluetooth cercanos."</string> @@ -228,7 +229,7 @@ <string name="radio_info_toggle_dns_check_label" msgid="8292252930563286858">"alternar comprobación de DNS"</string> <string name="oem_radio_info_label" msgid="6163141792477958941">"Ajustes/información específica de OEM"</string> <string name="band_mode_title" msgid="954174198903776205">"Establecer banda GSM/UMTS"</string> - <string name="band_mode_loading" msgid="548764766363847336">"Cargando lista de bandas..."</string> + <string name="band_mode_loading" msgid="548764766363847336">"Cargando lista de bandas\u2026"</string> <string name="band_mode_set" msgid="5730560180249458484">"Establecer"</string> <string name="band_mode_failed" msgid="1495968863884716379">"Con error"</string> <string name="band_mode_succeeded" msgid="2701016190055887575">"Correcto"</string> @@ -245,8 +246,8 @@ <string name="sdcard_settings_bad_removal_status" product="nosdcard" msgid="7761390725880773697">"USB extraído en uso"</string> <string name="sdcard_settings_bad_removal_status" product="default" msgid="5145797653495907970">"La tarjeta SD se ha extraído mientras estaba en uso."</string> <string name="sdcard_settings_used_bytes_label" msgid="8820289486001170836">"Bytes usados:"</string> - <string name="sdcard_settings_scanning_status" product="nosdcard" msgid="7503429447676219564">"Buscando archivos almac USB…"</string> - <string name="sdcard_settings_scanning_status" product="default" msgid="2763464949274455656">"Buscando medios en tarjeta SD..."</string> + <string name="sdcard_settings_scanning_status" product="nosdcard" msgid="7503429447676219564">"Buscando archivos almac USB\u2026"</string> + <string name="sdcard_settings_scanning_status" product="default" msgid="2763464949274455656">"Buscando medios en tarjeta SD\u2026"</string> <string name="sdcard_settings_read_only_status" product="nosdcard" msgid="3624143937437417788">"Almacenamiento USB activado como solo lectura"</string> <string name="sdcard_settings_read_only_status" product="default" msgid="4518291824764698112">"La tarjeta SD está activada en modo de solo lectura."</string> <string name="skip_label" msgid="47510779345218297">"Saltar"</string> @@ -266,7 +267,7 @@ <string name="settings_label_launcher" msgid="8344735489639482340">"Ajustes"</string> <string name="settings_shortcut" msgid="3936651951364030415">"Acceso a Ajustes"</string> <string name="airplane_mode" msgid="8837269988154128601">"Modo avión"</string> - <string name="radio_controls_title" msgid="6889937359495515769">"Más…"</string> + <string name="radio_controls_title" msgid="6889937359495515769">"Más\u2026"</string> <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Conexiones inalámbricas y redes"</string> <string name="radio_controls_summary" msgid="2998818677094465517">"Administrar Wi-Fi, Bluetooth, modo avión, redes móviles y VPN"</string> <string name="roaming" msgid="3596055926335478572">"Itinerancia de datos"</string> @@ -443,7 +444,7 @@ <string name="bluetooth_connecting_error_message" msgid="229861986106185022">"No se ha podido establecer conexión con <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string> <string name="bluetooth_preference_scan_title" msgid="2277464653118896016">"Buscar dispositivos"</string> <string name="bluetooth_search_for_devices" msgid="5957007154213560390">"Buscar dispositivos"</string> - <string name="bluetooth_searching_for_devices" msgid="9203739709307871727">"Buscando..."</string> + <string name="bluetooth_searching_for_devices" msgid="9203739709307871727">"Buscando\u2026"</string> <string name="bluetooth_preference_device_settings" msgid="907776049862799122">"Ajustes del dispositivo"</string> <string name="bluetooth_preference_paired_devices" msgid="1970524193086791964">"Dispositivos sincronizados"</string> <string name="bluetooth_preference_found_devices" msgid="1647983835063249680">"Dispositivos disponibles"</string> @@ -452,11 +453,11 @@ <string name="bluetooth_device_context_pair_connect" msgid="7611522504813927727">"Sincronizar y conectar"</string> <string name="bluetooth_device_context_unpair" msgid="662992425948536144">"Desincronizar"</string> <string name="bluetooth_device_context_disconnect_unpair" msgid="7644014238070043798">"Desconectar y desincronizar"</string> - <string name="bluetooth_device_context_connect_advanced" msgid="2643129703569788771">"Opciones…"</string> + <string name="bluetooth_device_context_connect_advanced" msgid="2643129703569788771">"Opciones\u2026"</string> <string name="bluetooth_menu_advanced" msgid="8572178316357220524">"Ajustes avanzados"</string> <string name="bluetooth_advanced_titlebar" msgid="2142159726881547669">"Ajustes avanzados de Bluetooth"</string> <string name="bluetooth_empty_list_bluetooth_off" msgid="4793562956642282639">"Para ver dispositivos, activa el Bluetooth."</string> - <string name="bluetooth_connect_specific_profiles_title" msgid="6952214406025825164">"Establecer conexión con…"</string> + <string name="bluetooth_connect_specific_profiles_title" msgid="6952214406025825164">"Establecer conexión con\u2026"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Audio multimedia"</string> <string name="bluetooth_profile_headset" msgid="8658779596261212609">"Audio del teléfono"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"Transferencia de archivos"</string> @@ -496,11 +497,11 @@ <string name="wifi_display_settings_empty_list_wifi_display_off" msgid="1225626898926363100">"Para ver los dispositivos, activa la pantalla inalámbrica."</string> <string name="wifi_display_settings_empty_list_wifi_display_disabled" msgid="7363832031876872257">"La pantalla inalámbrica está inhabilitada porque la red Wi-Fi está desactivada."</string> <string name="wifi_display_search_for_devices" msgid="5065526281193354502">"Buscar pantallas"</string> - <string name="wifi_display_searching_for_devices" msgid="5172373825348672137">"Buscando…"</string> + <string name="wifi_display_searching_for_devices" msgid="5172373825348672137">"Buscando\u2026"</string> <string name="wifi_display_no_devices_found" msgid="8180582698282377626">"Sin pantallas inalámbricas cercanas"</string> <string name="wifi_display_paired_devices" msgid="7395326840730024303">"Pantallas sincronizadas"</string> <string name="wifi_display_available_devices" msgid="4558314642853513487">"Dispositivos disponibles"</string> - <string name="wifi_display_status_connecting" msgid="5688608834000748607">"Conectando..."</string> + <string name="wifi_display_status_connecting" msgid="5688608834000748607">"Conectando\u2026"</string> <string name="wifi_display_status_connected" msgid="8364125226376985558">"Conectada"</string> <string name="wifi_display_status_available" msgid="1924167525172207067">"Disponible"</string> <string name="wifi_display_details" msgid="7791118209992162698">"Ajustes de pantalla"</string> @@ -531,8 +532,8 @@ <string name="wifi_settings_title" msgid="4351120897298124250">"Wi-Fi"</string> <string name="wifi_settings_summary" msgid="668767638556052820">"Configurar y administrar puntos de acceso inalámbricos"</string> <string name="wifi_setup_wizard_title" msgid="70277346338812325">"Seleccionar Wi-Fi"</string> - <string name="wifi_starting" msgid="6716593470710880000">"Activando Wi-Fi..."</string> - <string name="wifi_stopping" msgid="244864762599017659">"Desactivando Wi-Fi…"</string> + <string name="wifi_starting" msgid="6716593470710880000">"Activando Wi-Fi\u2026"</string> + <string name="wifi_stopping" msgid="244864762599017659">"Desactivando Wi-Fi\u2026"</string> <string name="wifi_error" msgid="3207971103917128179">"Error"</string> <string name="wifi_in_airplane_mode" msgid="8652520421778203796">"Modo avión"</string> <string name="wifi_fail_to_scan" msgid="1265540342578081461">"No se puede buscar redes."</string> @@ -556,17 +557,17 @@ <string name="wifi_menu_forget" msgid="8736964302477327114">"Borrar red"</string> <string name="wifi_menu_modify" msgid="2068554918652440105">"Modificar red"</string> <string name="wifi_empty_list_wifi_off" msgid="4722299515264875943">"Para ver redes disponibles, activa la conexión Wi-Fi."</string> - <string name="wifi_empty_list_wifi_on" msgid="3354911729026237372">"Buscando redes Wi-Fi…"</string> - <string name="wifi_other_network" msgid="1048006316504242214">"Otra red…"</string> + <string name="wifi_empty_list_wifi_on" msgid="3354911729026237372">"Buscando redes Wi-Fi\u2026"</string> + <string name="wifi_other_network" msgid="1048006316504242214">"Otra red\u2026"</string> <string name="wifi_more" msgid="3195296805089107950">"Más"</string> <string name="wifi_setup_wps" msgid="8128702488486283957">"Configuración automática (WPS)"</string> <string name="wifi_required_info_text" msgid="9014073093293520112">"Necesitas conexión Wi-Fi para completar la configuración. Una vez finalizada, podrás alternar entre Wi-Fi y conexión de datos."</string> <string name="wifi_show_advanced" msgid="1793703023711426246">"Mostrar opciones avanzadas"</string> <string name="wifi_wps_setup_title" msgid="6034518116333042484">"Configuración WPS"</string> - <string name="wifi_wps_setup_msg" msgid="315174329121275092">"Iniciando configuración WPS…"</string> + <string name="wifi_wps_setup_msg" msgid="315174329121275092">"Iniciando configuración WPS\u2026"</string> <string name="wifi_wps_onstart_pbc" msgid="7204827509934892103">"Pulsa el botón Configuración WPS del router. Es posible que se llame WPS o que incluya este símbolo:"</string> <string name="wifi_wps_onstart_pin" msgid="8067502591043979939">"Introduce el código PIN <xliff:g id="NUMBER">%1$s</xliff:g> en el router Wi-Fi. El proceso de configuración puede tardar hasta dos minutos."</string> - <string name="wifi_wps_complete" msgid="2388138550456729134">"La configuración WPS se ha iniciado correctamente. Estableciendo conexión con la red…"</string> + <string name="wifi_wps_complete" msgid="2388138550456729134">"La configuración WPS se ha iniciado correctamente. Estableciendo conexión con la red\u2026"</string> <string name="wifi_wps_connected" msgid="5754399645462924103">"Conexión establecida con la red Wi-Fi <xliff:g id="NETWORK_NAME">%s</xliff:g>"</string> <string name="wifi_wps_in_progress" msgid="3372311348221357944">"El proceso de configuración de WPS está en curso y puede tardar hasta dos minutos."</string> <string name="wifi_wps_failed_generic" msgid="5668775022238832527">"Se ha producido un error en la configuración WPS. Inténtalo de nuevo en unos minutos."</string> @@ -637,7 +638,7 @@ <string name="wifi_p2p_device_info" msgid="3191876744469364173">"Información del dispositivo"</string> <string name="wifi_p2p_persist_network" msgid="1646424791818168590">"Recordar esta conexión"</string> <string name="wifi_p2p_menu_search" msgid="3436429984738771974">"Buscar dispositivos"</string> - <string name="wifi_p2p_menu_searching" msgid="2396704492143633876">"Buscando…"</string> + <string name="wifi_p2p_menu_searching" msgid="2396704492143633876">"Buscando\u2026"</string> <string name="wifi_p2p_menu_rename" msgid="8448896306960060415">"Cambiar nombre del dispositivo"</string> <string name="wifi_p2p_peer_devices" msgid="299526878463303432">"Otros dispositivos"</string> <string name="wifi_p2p_remembered_groups" msgid="3847022927914068230">"Grupos recordados"</string> @@ -650,8 +651,8 @@ <string name="wifi_p2p_cancel_connect_message" msgid="7477756213423749402">"¿Quieres cancelar la invitación para establecer conexión con <xliff:g id="PEER_NAME">%1$s</xliff:g>?"</string> <string name="wifi_p2p_delete_group_message" msgid="834559380069647086">"¿Borrar este grupo?"</string> <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Zona Wi-Fi portátil"</string> - <string name="wifi_tether_starting" msgid="1322237938998639724">"Activando zona Wi-Fi…"</string> - <string name="wifi_tether_stopping" msgid="4835852171686388107">"Desactivando zona Wi-Fi…"</string> + <string name="wifi_tether_starting" msgid="1322237938998639724">"Activando zona Wi-Fi\u2026"</string> + <string name="wifi_tether_stopping" msgid="4835852171686388107">"Desactivando zona Wi-Fi\u2026"</string> <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Zona Wi-Fi portátil <xliff:g id="NETWORK_SSID">%1$s</xliff:g> activa"</string> <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Error de zona Wi-Fi portátil"</string> <string name="wifi_tether_configure_ap_text" msgid="61237027772641155">"Configurar zona Wi-Fi"</string> @@ -802,7 +803,7 @@ <string name="memory_available" msgid="5052397223077021181">"Disponible"</string> <string name="memory_available_read_only" msgid="6497534390167920206">"Disponible (solo lectura)"</string> <string name="memory_size" msgid="6629067715017232195">"Espacio total"</string> - <string name="memory_calculating_size" msgid="2188358544203768588">"Calculando..."</string> + <string name="memory_calculating_size" msgid="2188358544203768588">"Calculando\u2026"</string> <string name="memory_apps_usage" msgid="2348501997988663688">"Aplicaciones (datos aplicaciones y contenido multimedia)"</string> <string name="memory_media_usage" msgid="3738830697707880405">"Multimedia"</string> <string name="memory_downloads_usage" msgid="3755173051677533027">"Descargas"</string> @@ -980,11 +981,11 @@ <string name="terms_title" msgid="7697580845616764642">"Términos y condiciones"</string> <string name="settings_license_activity_title" msgid="7553683406244228650">"Licencias de código abierto"</string> <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Se ha producido un problema al intentar cargar las licencias."</string> - <string name="settings_license_activity_loading" msgid="3337535809093591740">"Cargando..."</string> + <string name="settings_license_activity_loading" msgid="3337535809093591740">"Cargando\u2026"</string> <string name="settings_safetylegal_title" msgid="1289483965535937431">"Información de seguridad"</string> <string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"Información de seguridad"</string> <string name="settings_safetylegal_activity_unreachable" msgid="232523852222964470">"No tienes conexión de datos. Para ver esta información, accede a %s desde cualquier ordenador conectado a Internet."</string> - <string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"Cargando..."</string> + <string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"Cargando\u2026"</string> <string name="lockpassword_choose_your_password_header" msgid="8624900666929394990">"Selecciona tu contraseña"</string> <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Elige un patrón"</string> <string name="lockpassword_choose_your_pin_header" msgid="7598849519816138302">"Selecciona tu PIN"</string> @@ -1092,7 +1093,7 @@ <string name="internal_storage" msgid="1584700623164275282">"Almacenamiento interno"</string> <string name="sd_card_storage" product="nosdcard" msgid="2673203150465132465">"Almacenamiento USB"</string> <string name="sd_card_storage" product="default" msgid="7623513618171928235">"Tarjeta SD"</string> - <string name="recompute_size" msgid="7722567982831691718">"Recalculando tamaño..."</string> + <string name="recompute_size" msgid="7722567982831691718">"Recalculando tamaño\u2026"</string> <string name="clear_data_dlg_title" msgid="5605258400134511197">"¿Eliminar datos de la aplicación?"</string> <string name="clear_data_dlg_text" msgid="8847257251846779938">"Todos los datos de esta aplicación se eliminarán de forma permanente. Esto incluye todos los archivos, configuración, cuentas, bases de datos, etc."</string> <string name="dlg_ok" msgid="2402639055725653590">"Aceptar"</string> @@ -1114,7 +1115,7 @@ <string name="join_many_items_middle" msgid="7556692394478220814">"<xliff:g id="ADDED_ITEM">%1$s</xliff:g>, <xliff:g id="REST_OF_ITEMS">%2$s</xliff:g>"</string> <string name="security_settings_billing_desc" msgid="8061019011821282358">"Puede que se cobre dinero por usar esta aplicación:"</string> <string name="security_settings_premium_sms_desc" msgid="8734171334263713717">"Enviar SMS premium"</string> - <string name="computing_size" msgid="1599186977475211186">"Calculando…"</string> + <string name="computing_size" msgid="1599186977475211186">"Calculando\u2026"</string> <string name="invalid_size_value" msgid="7563537715280712285">"No se ha podido calcular el tamaño del paquete."</string> <string name="empty_list_msg" msgid="5993162337235907160">"No tienes instalada ninguna aplicación externa."</string> <string name="version_text" msgid="9189073826278676425">"versión <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string> @@ -1225,7 +1226,7 @@ <string name="user_dict_settings_context_menu_delete_title" msgid="9140703913776549054">"Eliminar"</string> <string name="user_dict_settings_empty_text" msgid="8165273379942105271">"No tienes ninguna palabra en el diccionario del usuario. Toca el botón Añadir (+) para añadir una palabra."</string> <string name="user_dict_settings_all_languages" msgid="6742000040975959247">"Para todos los idiomas"</string> - <string name="user_dict_settings_more_languages" msgid="7316375944684977910">"Más idiomas..."</string> + <string name="user_dict_settings_more_languages" msgid="7316375944684977910">"Más idiomas\u2026"</string> <string name="testing" msgid="6584352735303604146">"Prueba"</string> <string name="testing_phone_info" product="tablet" msgid="193561832258534798">"Información del tablet"</string> <string name="testing_phone_info" product="default" msgid="8656693364332840056">"Información sobre el teléfono"</string> @@ -1341,7 +1342,7 @@ <string name="battery_since_reset" msgid="7464546661121187045">"Uso de la batería desde que se restableció"</string> <string name="battery_stats_on_battery" msgid="4970762168505236033">"<xliff:g id="TIME">%1$s</xliff:g> de batería"</string> <string name="battery_stats_duration" msgid="7464501326709469282">"<xliff:g id="TIME">%1$s</xliff:g> desde que se cargó"</string> - <string name="battery_stats_charging_label" msgid="4223311142875178785">"Cargando..."</string> + <string name="battery_stats_charging_label" msgid="4223311142875178785">"Cargando\u2026"</string> <string name="battery_stats_screen_on_label" msgid="7150221809877509708">"Pantalla encendida"</string> <string name="battery_stats_gps_on_label" msgid="1193657533641951256">"GPS activado"</string> <string name="battery_stats_wifi_running_label" msgid="3093545080361658269">"Wi-Fi"</string> @@ -1460,8 +1461,8 @@ <string name="gadget_state_template" msgid="5156935629902649932">"<xliff:g id="ID_1">%1$s</xliff:g> <xliff:g id="ID_2">%2$s</xliff:g>"</string> <string name="gadget_state_on" msgid="6909119593004937688">"activado"</string> <string name="gadget_state_off" msgid="5220212352953066317">"desactivado"</string> - <string name="gadget_state_turning_on" msgid="3395992057029439039">"activando..."</string> - <string name="gadget_state_turning_off" msgid="2395546048102176157">"desactivando..."</string> + <string name="gadget_state_turning_on" msgid="3395992057029439039">"activando\u2026"</string> + <string name="gadget_state_turning_off" msgid="2395546048102176157">"desactivando\u2026"</string> <string name="gadget_wifi" msgid="5960290421313061434">"Wi-Fi"</string> <string name="gadget_bluetooth" msgid="8998572807378694410">"Bluetooth"</string> <string name="gadget_gps" msgid="1558173602059236567">"GPS"</string> @@ -1532,7 +1533,7 @@ <string name="sound_category_system_title" msgid="1480844520622721141">"Sistema"</string> <string name="wifi_setup_title" msgid="661074868726906436">"Configuración de Wi-Fi"</string> <string name="wifi_setup_title_editing_network" msgid="7304321031985059969">"Establecer conexión con la red Wi-Fi <xliff:g id="NETWORK_NAME">%s</xliff:g>"</string> - <string name="wifi_setup_title_connecting_network" msgid="3747859666621319757">"Estableciendo conexión con la red Wi-Fi <xliff:g id="NETWORK_NAME">%s</xliff:g>..."</string> + <string name="wifi_setup_title_connecting_network" msgid="3747859666621319757">"Estableciendo conexión con la red Wi-Fi <xliff:g id="NETWORK_NAME">%s</xliff:g>\u2026"</string> <string name="wifi_setup_title_connected_network" msgid="209755856836003839">"Conectado a la red Wi-Fi <xliff:g id="NETWORK_NAME">%s</xliff:g>"</string> <string name="wifi_setup_title_add_network" msgid="6932651000151032301">"Añadir una red"</string> <string name="wifi_setup_not_connected" msgid="6997432604664057052">"Sin conexión"</string> @@ -1546,17 +1547,17 @@ <string name="wifi_setup_forget" msgid="2562847595567347526">"Borrar"</string> <string name="wifi_setup_save" msgid="3659235094218508211">"Guardar"</string> <string name="wifi_setup_cancel" msgid="3185216020264410239">"Cancelar"</string> - <string name="wifi_setup_status_scanning" msgid="5317003416385428036">"Buscando redes..."</string> + <string name="wifi_setup_status_scanning" msgid="5317003416385428036">"Buscando redes\u2026"</string> <string name="wifi_setup_status_select_network" msgid="7519563569903137003">"Toca en una red para conectarte a ella"</string> <string name="wifi_setup_status_existing_network" msgid="6394925174802598186">"Establecer conexión con red existente"</string> <string name="wifi_setup_status_unsecured_network" msgid="8143046977328718252">"Conectar con red no segura"</string> <string name="wifi_setup_status_edit_network" msgid="4765340816724760717">"Introducir configuración de red"</string> <string name="wifi_setup_status_new_network" msgid="7468952850452301083">"Establecer conexión con red nueva"</string> - <string name="wifi_setup_status_connecting" msgid="4971421484401530740">"Conectando..."</string> + <string name="wifi_setup_status_connecting" msgid="4971421484401530740">"Conectando\u2026"</string> <string name="wifi_setup_status_proceed_to_next" msgid="6708250000342940031">"Ir al siguiente paso"</string> <string name="wifi_setup_status_eap_not_supported" msgid="5335338851032315905">"EAP no compatible"</string> <string name="wifi_setup_eap_not_supported" msgid="595556546597351489">"No puedes definir una conexión Wi-Fi EAP durante la configuración, pero puedes hacerlo cuando haya finalizado a través de Ajustes > Conexiones inalámbricas y redes."</string> - <string name="wifi_setup_description_connecting" msgid="2793554932006756795">"Conectando (puede tardar unos minutos)..."</string> + <string name="wifi_setup_description_connecting" msgid="2793554932006756795">"Conectando (puede tardar unos minutos)\u2026"</string> <string name="wifi_setup_description_connected" msgid="5235991893829582459">"Toca "<b>"Siguiente"</b>" para continuar con la configuración."\n\n"Toca "<b>"Volver"</b>" para conectarte a otra red Wi-Fi."</string> <string name="accessibility_sync_enabled" msgid="558480439730263116">"Sincronización habilitada"</string> <string name="accessibility_sync_disabled" msgid="1741194106479011384">"Sincronización inhabilitada"</string> @@ -1575,7 +1576,7 @@ <string name="sync_disabled" msgid="8511659877596511991">"La sincronización está desactivada"</string> <string name="sync_error" msgid="5060969083117872149">"Error de sincronización"</string> <string name="last_synced" msgid="4242919465367022234">"Última sincronización: <xliff:g id="LAST_SYNC_TIME">%1$s</xliff:g>"</string> - <string name="sync_in_progress" msgid="5151314196536070569">"Sincronizando…"</string> + <string name="sync_in_progress" msgid="5151314196536070569">"Sincronizando\u2026"</string> <string name="settings_backup" msgid="2274732978260797031">"Hacer copia de seguridad de configuración"</string> <string name="settings_backup_summary" msgid="7916877705938054035">"Hacer copia de seguridad de mi configuración"</string> <string name="sync_menu_sync_now" msgid="6154608350395805683">"Sincronizar ahora"</string> @@ -1677,7 +1678,7 @@ <string name="data_usage_menu_show_ethernet" msgid="5181361208532314097">"Mostrar uso de Ethernet"</string> <string name="data_usage_menu_metered" msgid="5056695223222541863">"Puntos de acceso móviles"</string> <string name="data_usage_menu_auto_sync" msgid="8203999775948778560">"Sincronización automática"</string> - <string name="data_usage_change_cycle" msgid="7776556448920114866">"Cambiar ciclo…"</string> + <string name="data_usage_change_cycle" msgid="7776556448920114866">"Cambiar ciclo\u2026"</string> <string name="data_usage_pick_cycle_day" msgid="4470796861757050966">"Día del mes para restablecer ciclo de uso de datos:"</string> <string name="data_usage_empty" msgid="8621855507876539282">"Ninguna aplicación ha usado datos en este período."</string> <string name="data_usage_label_foreground" msgid="4938034231928628164">"Primer plano"</string> @@ -1817,7 +1818,7 @@ <string name="user_confirm_remove_self_message" product="default" msgid="5391888073786090274">"Perderás tu espacio y tus datos en este teléfono. Esta acción no se puede deshacer."</string> <string name="user_confirm_remove_message" product="tablet" msgid="4610106937214870034">"Los datos y el espacio de este usuario se eliminarán de este tablet. Esta acción no se puede deshacer."</string> <string name="user_confirm_remove_message" product="default" msgid="8130264611683731142">"Los datos y el espacio de este usuario se eliminarán de este teléfono. Esta acción no se puede deshacer."</string> - <string name="user_adding_new_user" msgid="1521674650874241407">"Añadiendo nuevo usuario…"</string> + <string name="user_adding_new_user" msgid="1521674650874241407">"Añadiendo nuevo usuario\u2026"</string> <string name="user_delete_user_description" msgid="3158592592118767056">"Eliminar usuario"</string> <string name="user_delete_button" msgid="5131259553799403201">"Eliminar"</string> <string name="global_change_warning" product="tablet" msgid="8045013389464294039">"Esta configuración afecta a todos los usuarios de este tablet."</string> @@ -1830,4 +1831,557 @@ <string name="user_picture_title" msgid="7297782792000291692">"ID de foto"</string> <string name="cell_broadcast_settings" msgid="8415582011920085222">"Difusiones móviles"</string> <string name="cell_broadcast_settings_summary" msgid="3301339398950905913">"Selecciona los tipos de alertas de emergencia que quieres ver."</string> + + <!-- CYANOGENMOD ADDITIONS START --> + + <string name="root_access">Acceso administrativo</string> + <string name="root_access_warning_title">¿Permitir acceso administrativo?</string> + <string name="root_access_warning_message">¡Permitir a las aplicaciones solicitar acceso administrativo es muy peligroso y puede comprometer la seguridad de su dispositivo!</string> + <string name="root_access_none">Desactivar</string> + <string name="root_access_apps">Sólo aplicaciones</string> + <string name="root_access_adb">Sólo ADB</string> + <string name="root_access_all">Aplicaciones y ADB</string> + <string name="ok">Aceptar</string> + <string name="quiet_hours_title">Modo \'tranquilidad\'</string> + <string name="quiet_hours_summary">Configurar las horas en las que el dispositivo debe de estar en modo \'tranquilidad\'</string> + <string name="quiet_hours_note_title">Nota</string> + <string name="quiet_hours_note_summary">Las llamadas entrantes se comportarán de manera normal durante este modo</string> + <string name="quiet_hours_enabled">Modo \'tranquilidad\'</string> + <string name="quiet_hours_enabled_on">Se forzará el modo \'tranquilidad\' durante las horas:</string> + <string name="quiet_hours_enabled_off">Las notificaciones se comportarán de manera normal</string> + <string name="quiet_hours_start">Inicio de modo \'tranquilidad\'</string> + <string name="quiet_hours_start_summary">Cuando forzar el inicio de modo \'tranquilidad\'</string> + <string name="quiet_hours_end">Fin de modo \'tranquilidad\'</string> + <string name="quiet_hours_end_summary">Cuando forzar la finalización del modo \'tranquilidad\'</string> + <string name="quiet_hours_mute">Notificaciones</string> + <string name="quiet_hours_mute_on">No se reproducirán sonidos de notificaciones</string> + <string name="quiet_hours_mute_off">Los sonidos de notificaciones se reproducirán de manera normal</string> + <string name="quiet_hours_still">Vibración</string> + <string name="quiet_hours_still_on">El dispositivo no vibrará</string> + <string name="quiet_hours_still_off">El dispositivo vibrará normalmente</string> + <string name="quiet_hours_dim">Notificaciones de luz</string> + <string name="quiet_hours_dim_on">Las notificaciones de luz se desactivarán</string> + <string name="quiet_hours_dim_off">Las notificaciones de luz se comportarán de manera normal</string> + <string name="quiet_hours_haptic">Respuesta háptica</string> + <string name="quiet_hours_haptic_on">La respuesta háptica se desactivará</string> + <string name="quiet_hours_haptic_off">La respuesta háptica se comportará de manera normal</string> + <string name="quiet_hours_active_from">Activo de</string> + <string name="quiet_hours_active_to">a</string> + <string name="start_time_title">Inicio</string> + <string name="end_time_title">Fin</string> + <string name="notification_convert_sound_to_vibration_title">Vibración en notificaciones</string> + <string name="notification_convert_sound_to_vibration_summary">En el modo vibración todas las notificaciones vibrarán, independientemente de la configuración específica de la aplicación</string> + <string name="device_hostname">Nombre del dispositivo</string> + <string name="mod_version">Versión CyanogenMod</string> + <string name="mod_version_default">Desconocida</string> + <string name="build_date">Fecha de compilación</string> + <string name="cpu_info">CPU</string> + <string name="mem_info">Memoria</string> + <string name="anonymous_statistics_title">Estadísticas CyanogenMod</string> + <string name="anonymous_statistics_summary">Ayude a mejorar CyanogenMod mediante el envío anónimo de estadísticas</string> + <string name="anonymous_statistics_warning_title">Aviso</string> + <string name="anonymous_statistics_warning">Permitiendo la recopilación y envío de estadísticas de CyanogenMod, autoriza el envío de información de carácter no personal a los desarrolladores de CyanogenMod para realizar un seguimiento de las instalaciones que realice en los dispositivos. La información enviada incluye un identificador único que no compromete su privacidad o su información personal. Esta información es enviada durante el arranque.\n\nPara ver un ejemplo de la información enviada, pulse en \'Previsualizar datos\'</string> + <string name="enable_reporting_title">Activar envío estadísticas</string> + <string name="preview_data_title">Previsualizar datos</string> + <string name="view_stats_title">Ver estadísticas</string> + <string name="anonymous_learn_more">Leer más</string> + <string name="anonymous_notification_desc">Activar o desactivar estadísticas de CyanogenMod</string> + <string name="preview_id_title">Identificador único</string> + <string name="preview_device_title">Dispositivo</string> + <string name="preview_version_title">Versión</string> + <string name="preview_country_title">País</string> + <string name="preview_carrier_title">Operadora móvil</string> + <string name="header_category_interface">Interfaz gráfica</string> + <string name="launcher_settings_title">Inicio</string> + <string name="themes_settings_title">Temas</string> + <string name="system_settings_title">Sistema</string> + <string name="system_interface_title">Interfaz</string> + <string name="notification_drawer_title">Área de notificación</string> + <string name="lock_screen_title">Bloqueo de pantalla</string> + <string name="lockscreen_target_info">Arrastre el control deslizante para ajustar los accesos directos</string> + <string name="lockscreen_target_title">Accesos directos</string> + <string name="lockscreen_target_summary">Añadir o configurar accesos directos</string> + <string name="lockscreen_target_reset">Valores por defecto restaurados</string> + <string name="lockscreen_target_save">Accesos directos guardados</string> + <string name="lockscreen_target_reset_title">Restaurar valores por defecto</string> + <string name="lockscreen_target_reset_message">¿Eliminar todos los accesos directos y restaurar valores por defecto?</string> + <string name="lockscreen_target_empty">Vacío</string> + <string name="lockscreen_target_edit_title">Editar acceso directo</string> + <string name="lockscreen_target_edit_msg">Seleccionar o cambiar la aplicación (o actividad) y su icono</string> + <string name="lockscreen_vibrate_enabled_title">Vibración</string> + <string name="lockscreen_vibrate_enabled_head">Vibrar al desbloquear</string> + <string name="lockscreen_battery_status_title">Estado de la batería</string> + <string name="lockscreen_battery_status_charging">Solamente en carga</string> + <string name="lockscreen_battery_status_alwayson">Siempre</string> + <string name="profiles_settings_title">Perfiles</string> + <string name="profiles_general_title">General</string> + <string name="profiles_add">Añadir</string> + <string name="profile_menu_delete">Eliminar</string> + <string name="profile_settings_title">Perfil</string> + <string name="profile_empty_list_profiles_off">Para configurar y usar los perfiles del sistema, hay que activarlos previamente</string> + <string name="add_profile_dialog_title">Crear un nuevo perfil</string> + <string name="profile_name_title">Nombre</string> + <string name="profile_profile_name_prompt">Introducir un nombre para el nuevo perfil</string> + <string name="menu_new_profile">Nuevo perfil</string> + <string name="menu_new_profile_summary">Añadir y configurar un nuevo perfil</string> + <string name="new_profile_name"><nuevo perfil></string> + <string name="rename_dialog_title">Renombrar</string> + <string name="rename_dialog_message">Introducir un nuevo nombre</string> + <string name="duplicate_profile_name">¡Nombre de perfil duplicado!</string> + <string name="duplicate_appgroup_name">¡Nombre de grupo de aplicación duplicado!</string> + <string name="profile_reset_title">Restablecer</string> + <string name="profile_reset_message">¿Eliminar todos los perfiles y grupos de aplicaciones creados y restaurar los valores por defecto?</string> + <string name="profile_delete_confirm">¿Borrar este perfil?</string> + <string name="profile_app_delete_confirm">¿Borrar esta aplicación?</string> + <string name="profile_cannot_delete">No se puede borrar el perfil activo</string> + <string name="profile_connectionoverrides_title">Conectividad</string> + <string name="profile_volumeoverrides_title">Volumen</string> + <string name="profile_vibratoroverrides_title">Vibración</string> + <string name="connection_state_disabled">Deshabilitado</string> + <string name="connection_state_enabled">Habilitado</string> + <string name="volume_override_summary">Establecer a</string> + <string name="vibrator_state_disabled">Deshabilitado</string> + <string name="vibrator_state_enabled">Habilitado</string> + <string name="vibrator_state_silent">Solamente en silencio</string> + <string name="profile_profiles_manage">Perfiles</string> + <string name="profile_profile_manage">Administrar perfil</string> + <string name="profile_applist_manage">Listado de aplicaciones</string> + <string name="profile_appgroups_manage">Grupo de aplicaciones</string> + <string name="profile_appgroup_manage">Administrar grupo de aplicaciones</string> + <string name="profile_settings">Ajustes de perfil</string> + <string name="profile_name">Nombre</string> + <string name="sound_mode">Modo de notificación</string> + <string name="ringer_mode">Llamadas</string> + <string name="lights_mode">Brillo</string> + <string name="vibrate_mode">Vibración</string> + <string name="choose_soundtone">Escoger tono de notificación</string> + <string name="choose_ringtone">Escoger tono del teléfono</string> + <string name="soundtone_title">Tono de notificación</string> + <string name="soundtone_summary"></string> + <string name="profile_appgroups_title">Grupo de aplicaciones</string> + <string name="profile_applist_title">Aplicaciones</string> + <string name="profile_new_appgroup">Nuevo grupo de aplicaciones</string> + <string name="profile_delete_appgroup">Borrar este grupo de aplicaciones</string> + <string name="profile_appgroup_name_prompt">Introducir un nombre para el nuevo grupo de aplicaciones</string> + <string name="profile_appgroup_name_title">Nombre</string> + <string name="profile_add_app">Añadir aplicación</string> + <string name="profile_delete_app">Eliminar aplicación</string> + <string name="profile_choose_app">Elegir aplicación</string> + <string name="profile_settings_header">Ajustes del perfil</string> + <string name="profile_system_settings_title">Sistema</string> + <string name="profile_lockmode_title">Bloqueo de pantalla</string> + <string name="profile_lockmode_default">Por defecto</string> + <string name="profile_lockmode_insecure">No seguro</string> + <string name="profile_lockmode_disabled">Desactivado</string> + <string name="profile_lockmode_default_summary">Utilizar valores por defecto</string> + <string name="profile_lockmode_insecure_summary">Utilizar bloqueo de pantalla no seguro</string> + <string name="profile_lockmode_disabled_summary">Bloqueo de pantalla desactivado</string> + <string name="profile_airplanemode_title">Modo avión</string> + <string name="profile_disable_screen_lock_summary">Desactivar seguridad de bloqueo de pantalla mientras este perfil esté activo</string> + <string name="vibrator_type_ringer">Llamadas</string> + <string name="vibrator_type_notification">Notificaciones</string> + <string name="possibleButtons">Botones posibles</string> + <string name="toggleWifi">Wi-Fi</string> + <string name="toggleWifiAp">Wi-Fi hotspot portátil</string> + <string name="toggleBluetooth">Bluetooth</string> + <string name="toggleGPS">GPS</string> + <string name="toggleData">Datos móviles</string> + <string name="toggleSync">Sincronización</string> + <string name="toggle2g3g">2G/3G</string> + <string name="toggleSound">Volumen</string> + <string name="toggleBrightness">Brillo</string> + <string name="toggleAutoRotate">Orientación</string> + <string name="toggleScreenTimeout">Tiempo espera pantalla</string> + <string name="toggleAirplane">Avión</string> + <string name="toggleFlashlight">Linterna</string> + <string name="toggleLockScreen">Bloqueo pantalla</string> + <string name="toggleWimax">WiMAX</string> + <string name="screen_security_category">Seguridad de pantalla</string> + <string name="screen_security_title">Bloqueo de pantalla</string> + <string name="screen_security_summary">Ver o cambiar seguridad de bloqueo de pantalla, retardos y configuración de tiempos de espera</string> + <string name="additional_options_title">Opciones adicionales</string> + <string name="unlock_menu_unlock_title">Botón Menú</string> + <string name="unlock_menu_unlock_summary">Presionar el botón Menú desbloquea el dispositivo</string> + <string name="unlock_home_unlock_title">Botón Inicio</string> + <string name="unlock_home_unlock_summary">Presionar el botón Inicio desbloquea el dispositivo</string> + <string name="unlock_quick_unlock_control_title">Desbloqueo rápido</string> + <string name="unlock_quick_unlock_control_summary">Desbloquear automáticamente cuando se introduce el PIN/clave correcto</string> + <string name="delay_and_timeout_title">Retardo y tiempo de espera</string> + <string name="slide_lock_delay_title">Habilitar retardo</string> + <string name="slide_lock_timeout_delay_title">Tiempo espera pantalla</string> + <string name="slide_lock_screenoff_delay_title">Apagado pantalla</string> + <string name="slide_lock_delay_none">Inmediatamente</string> + <string name="slide_lock_delay_1s">1 segundo</string> + <string name="slide_lock_delay_5s">5 segundos</string> + <string name="slide_lock_delay_10s">10 segundos</string> + <string name="slide_lock_delay_15s">15 segundos</string> + <string name="slide_lock_delay_30s">30 segundos</string> + <string name="slide_lock_delay_1m">1 minuto</string> + <string name="slide_lock_delay_5m">5 minutos</string> + <string name="slide_lock_delay_10m">10 minutos</string> + <string name="slide_lock_delay_30m">30 minutos</string> + <string name="performance_settings_title">Rendimiento</string> + <string name="performance_settings_warning_title">Proceder con precaución</string> + <string name="performance_settings_warning">Estas configuraciones han sido incluidas a modo de experimentación y cualquier cambiado realizado sobre ellas puedan causar inestabilidad, cierres de aplicaciones, pérdida de datos o fallos de hardware.\n\nNo comunicar informes de errores si cualquiera de estas configuraciones ha sido cambiada de su valor por defecto.</string> + <string name="processor_title">Procesador</string> + <string name="processor_summary">Cambiar el patrón de CPU y la velocidad del reloj</string> + <string name="cpu_cur_freq_title">Frecuencia actual de la CPU</string> + <string name="cpu_governors_title">Patrones CPU</string> + <string name="cpu_governors_summary">%S</string> + <string name="cpu_min_freq_title">Frecuencia mínima de la CPU</string> + <string name="cpu_min_freq_summary">%s</string> + <string name="cpu_max_freq_title">Frecuencia máxima de la CPU</string> + <string name="cpu_max_freq_summary">%s</string> + <string name="cpu_set_on_boot">Establecer al iniciar</string> + <string name="cpu_set_on_boot_summary">Restaurar la configuración del procesador al iniciar el sistema</string> + <string name="io_scheds_title">Planificador de E/S</string> + <string name="io_scheds_summary">Cambiar planificador de E/S</string> + <string name="io_sched_title">Planificador E/S</string> + <string name="io_sched_summary">%S</string> + <string name="io_sched_set_on_boot">Establecer al iniciar</string> + <string name="io_sched_set_on_boot_summary">Restaurar la configuración del planificador al iniciar el sistema</string> + <string name="memory_management_title">Gestión de la memoria</string> + <string name="memory_management_summary">Personalizar el uso de la memoria para cambiar el rendimiento del sistema</string> + <string name="pref_zram_title">zRam</string> + <string name="pref_zram_summary">Comprimir memoria para incrementar la capacidad virtual. (requiere reiniciar)</string> + <string name="pref_ksm_title">Memoria compartida de Kernel (KMS)</string> + <string name="pref_ksm_summary">KSM reduce los requerimientos de memoria física y mejora el rendimiento</string> + <string name="pref_purgeable_assets_title">Permitir purgar recursos</string> + <string name="pref_purgeable_assets_summary">Purgar recursos de imágenes en memoria permite liberar más memoria cuando se requiera</string> + <string name="pref_use_dithering_title">Interpolación de superficies</string> + <string name="dithering_no_dither">Deshabilitado</string> + <string name="dithering_color_banding">Corregir bandas de color (por defecto)</string> + <string name="dithering_blur_effect">Corregir bandas de color y efecto de difuminado</string> + <string name="pref_use_16bpp_alpha_title">Transparencia 16bit</string> + <string name="pref_use_16bpp_alpha_summary">Ofrece mejor rendimiento gráfico a costa de una menor calidad gráfica. Adicionalmente, puede causar defectos visuales (requiere reiniciar)</string> + <string name="display_rotation_title">Rotación</string> + <string name="display_rotation_disabled">Desactivada</string> + <string name="display_rotation_unit">grados</string> + <string name="display_rotation_category_title">Modos de rotación</string> + <string name="display_rotation_0_title">0 grados</string> + <string name="display_rotation_90_title">90 grados</string> + <string name="display_rotation_180_title">180 grados</string> + <string name="display_rotation_270_title">270 grados</string> + <string name="picker_activities">Actividades</string> + <string name="select_custom_app_title">Seleccionar aplicación personalizada</string> + <string name="select_custom_activity_title">Seleccionar actividad personalizada</string> + <string name="icon_picker_choose_icon_title">Seleccionar icono</string> + <string name="icon_picker_alarm">Alarma</string> + <string name="icon_picker_browser">Navegador</string> + <string name="icon_picker_calendar">Calendario</string> + <string name="icon_picker_camera">Cámara</string> + <string name="icon_picker_chrome">Chrome</string> + <string name="icon_picker_email">Email</string> + <string name="icon_picker_email2">Email Holo</string> + <string name="icon_picker_facebook">Facebook</string> + <string name="icon_picker_gallery">Galería</string> + <string name="icon_picker_google_small">Google (pequeño)</string> + <string name="icon_picker_googleplus">Google+</string> + <string name="icon_picker_googletalk">Google Talk</string> + <string name="icon_picker_maps">Mapas</string> + <string name="icon_picker_movie">Películas</string> + <string name="icon_picker_music">Música</string> + <string name="icon_picker_nav_normal">Navegación</string> + <string name="icon_picker_phone">Teléfono</string> + <string name="icon_picker_podcast">Podcast</string> + <string name="icon_picker_rss">Rss</string> + <string name="icon_picker_search">Búsqueda</string> + <string name="icon_picker_sms">Mensajes</string> + <string name="icon_picker_twitter">Twitter</string> + <string name="icon_picker_title">Seleccionar fuente de iconos</string> + <string name="icon_picker_system_icons_title">Iconos del sistema</string> + <string name="icon_picker_gallery_title">Galería</string> + <string name="icon_picker_pack_title">Paquete de iconos</string> + <string name="increasing_ring_title">Volumen ascendente</string> + <string name="checkbox_increasing_ring">Activar</string> + <string name="increasing_ring_min_volume_title">Volumen inicial</string> + <string name="increasing_ring_volume_notice">Nota:\nSi el volumen inicial se establece más alto que el volumen de llamada, prevalecerá el volumen de llamada</string> + <string name="increasing_ring_interval_title">Intervalo de incremento</string> + <string name="increasing_ring_interval_eachring">En cada tono</string> + <string name="increasing_ring_interval_half_second">Medio segundo</string> + <string name="increasing_ring_interval_1second">1 segundo</string> + <string name="increasing_ring_interval_2seconds">2 segundos</string> + <string name="increasing_ring_interval_3seconds">3 segundos</string> + <string name="increasing_ring_interval_5seconds">5 segundos</string> + <string name="increasing_ring_interval_10seconds">10 segundos</string> + <string name="profile_write_nfc_tag">Escribir a etiqueta NFC</string> + <string name="profile_write_touch_tag">Tocar etiqueta para escribir</string> + <string name="profile_write_success">Etiqueta escrita correctamente</string> + <string name="profile_write_failed">¡Fallo al escribir la etiqueta!</string> + <string name="profile_selected">Perfil seleccionado: %1$s</string> + <string name="profile_nfc_text">Escribir un perfil a una etiqueta NFC permite tocar la etiqueta para seleccionar el perfil. Tocar una segunda vez seleccionará el perfil seleccionado previamente</string> + <string name="profile_unknown_nfc_tag">Perfil desconocido</string> + <string name="profile_add_nfc_text">Esta etiqueta NFC hace referencia a un perfil desconocido. Añadir esta etiqueta NFC a un perfil existente permitirá seleccionar el perfil en el futuro</string> + <string name="profile_select">Seleccionar perfil</string> + <string name="link_volume_ringtones">Vincular volúmenes</string> + <string name="link_volume_mutes">Vincular silencio</string> + <string name="notification_light_general_title">General</string> + <string name="notification_light_applist_title">Aplicaciones</string> + <string name="notification_light_phonelist_title">Teléfono</string> + <string name="notification_light_use_custom">Usar valores personalizados</string> + <string name="notification_light_enabled">Activada</string> + <string name="notification_light_disabled">Desactivada</string> + <string name="notification_light_default_value">Por defecto</string> + <string name="notification_light_missed_call_title">Llamada perdida</string> + <string name="notification_light_voicemail_title">Buzón de voz</string> + <string name="edit_light_settings">Editar notificación</string> + <string name="pulse_speed_title">Duración y velocidad</string> + <string name="picker_arrow">→</string> + <string name="default_time">Normal</string> + <string name="custom_time">Por defecto</string> + <string name="dialog_test">Probar</string> + <string name="dialog_delete_title">Eliminar</string> + <string name="dialog_delete_message">¿Eliminar el elemento seleccionado?</string> + <string name="dialog_test_message">Apagar la pantalla para comprobar la notificación o descartar el diálogo actual para terminar la prueba</string> + <string name="dialog_test_button">Descartar</string> + <string name="pulse_length_always_on">Siempre encendida</string> + <string name="pulse_length_very_short">Muy corta</string> + <string name="pulse_length_short">Corta</string> + <string name="pulse_length_normal">Normal</string> + <string name="pulse_length_long">Larga</string> + <string name="pulse_length_very_long">Muy larga</string> + <string name="pulse_speed_very_fast">Muy rápida</string> + <string name="pulse_speed_fast">Rápida</string> + <string name="pulse_speed_normal">Normal</string> + <string name="pulse_speed_slow">Lenta</string> + <string name="pulse_speed_very_slow">Muy lenta</string> + <string name="battery_light_title">Indicador de batería</string> + <string name="battery_low_pulse_title">Parpadear con batería baja</string> + <string name="battery_light_list_title">Colores</string> + <string name="battery_light_low_color_title">Batería baja</string> + <string name="battery_light_medium_color_title">Cargando</string> + <string name="battery_light_full_color_title">Cargada</string> + <string name="volume_overlay_title">Panel de volumen</string> + <string name="volbtn_music_controls_title">Controles de volumen</string> + <string name="volbtn_music_controls_summary">Cuando la pantalla este apagada, una pulsación prolongada de los controles de volumen avanzará/retrocederá sobre las pistas de música activas</string> + <string name="headset_connect_player_title">Iniciar aplicación de música al conectar</string> + <string name="volume_ring_only_description">Tonos del teléfono</string> + <string name="ring_mode_title">Modo de sonido</string> + <string name="ring_mode_normal">Normal</string> + <string name="ring_mode_vibrate">Vibración</string> + <string name="ring_mode_mute">Silencio</string> + <string name="hardware_keys_title">Teclas físicas</string> + <string name="hardware_keys_bindings_title">Acciones de tecla</string> + <string name="hardware_keys_enable_custom_title">Habilitar acciones personalizadas</string> + <string name="hardware_keys_home_long_press_title">Tecla Inicio (pulsación larga)</string> + <string name="hardware_keys_menu_press_title">Tecla Menú</string> + <string name="hardware_keys_menu_long_press_title">Tecla Menú (pulsación larga)</string> + <string name="hardware_keys_assist_press_title">Tecla Búsqueda</string> + <string name="hardware_keys_assist_long_press_title">Tecla Búsqueda (pulsación larga)</string> + <string name="hardware_keys_app_switch_press_title">Tecla Cambio Aplicación</string> + <string name="hardware_keys_app_switch_long_press_title">Tecla Cambio Aplicación (pulsación larga)</string> + <string name="hardware_keys_show_overflow_title">Mostrar menú emergente</string> + <string name="hardware_keys_show_overflow_summary">Mostrar el icono del menú emergente dentro de las aplicaciones</string> + <string name="hardware_keys_show_overflow_toast_enable">El botón de menú emergente puede no mostrarse hasta que la aplicación sea reiniciada</string> + <string name="hardware_keys_show_overflow_toast_disable">El botón de menú emergente puede no ocultarse hasta que la aplicación sea reiniciada</string> + <string name="hardware_keys_action_nothing">Sin acción</string> + <string name="hardware_keys_action_menu">Abrir/Cerrar menú</string> + <string name="hardware_keys_action_app_switch">Cambio entre aplicaciones recientes</string> + <string name="hardware_keys_action_search">Asistente de búsqueda</string> + <string name="hardware_keys_action_voice_search">Búsqueda por voz</string> + <string name="hardware_keys_action_in_app_search">Búsqueda dentro de la aplicación</string> + <string name="power_widget_title">Controles de Energía</string> + <string name="title_expanded_widget">Barra de energía</string> + <string name="power_widget_behavior">Comportamiento</string> + <string name="title_expanded_hide_onchange">Ocultar al pulsar</string> + <string name="title_expanded_hide_indicator">Ocultar indicadores</string> + <string name="title_expanded_hide_scrollbar">Ocultar barra de desplazamiento</string> + <string name="title_widget_picker">Controles</string> + <string name="summary_widget_picker">Seleccionar que controles de energía se mostrarán en la barra de controles de energía</string> + <string name="title_widget_order">Orden de controles</string> + <string name="summary_widget_order">Seleccionar el orden de los controles mostradores en la barra de controles de energía</string> + <string name="title_buttons">Controles</string> + <string name="title_toggle_airplane">Modo avión</string> + <string name="title_toggle_autorotate">Orientación</string> + <string name="title_toggle_bluetooth">Bluetooth</string> + <string name="title_toggle_brightness">Brillo</string> + <string name="title_toggle_flashlight">Linterna</string> + <string name="title_toggle_gps">GPS</string> + <string name="title_toggle_lte">LTE</string> + <string name="title_toggle_lockscreen">Bloqueo pantalla</string> + <string name="title_toggle_media_play_pause">Medios: Reprod./Pausa</string> + <string name="title_toggle_media_previous">Medios: Anterior</string> + <string name="title_toggle_media_next">Medios: Siguiente</string> + <string name="title_toggle_mobiledata">Datos móviles</string> + <string name="title_toggle_networkmode">Modo de red</string> + <string name="title_toggle_screentimeout">Tiempo espera pantalla</string> + <string name="title_toggle_sleep">Modo en espera</string> + <string name="title_toggle_sound">Volumen</string> + <string name="title_toggle_sync">Sincronización</string> + <string name="title_toggle_wifi">Wi-Fi</string> + <string name="title_toggle_wifiap">Wi-Fi AP</string> + <string name="title_toggle_wimax">WiMAX</string> + <string name="title_button_modes">Modos</string> + <string name="pref_brightness_mode_title">Brillo</string> + <string name="pref_brightness_mode_summary">Escoja los niveles de luminosidad de la pantalla disponibles en la barra de controles de energía</string> + <string name="cm_brightness_mode_auto">Automático</string> + <string name="cm_brightness_mode_dim">Atenuar</string> + <string name="pref_network_mode_title">Conectividad móvil</string> + <string name="pref_screentimeout_mode_title">Tiempos espera pantalla</string> + <string name="pref_ring_mode_title">Volumen</string> + <string name="pref_ring_mode_summary">Escoger los modos de sonido disponibles</string> + <string name="cm_sound_mode_silent">Silencio</string> + <string name="cm_sound_mode_vibrate">Vibrar</string> + <string name="cm_sound_mode_sound">Sonar</string> + <string name="cm_sound_mode_soundVibrate">Sonar + Vibrar</string> + <string name="pref_flash_mode_title">Linterna</string> + <string name="expanded_haptic_feedback_title">Respuesta háptica</string> + <string name="kill_app_longpress_back">Botón Volver</string> + <string name="kill_app_longpress_back_summary">Cerrar aplicaciones mediante la pulsación prolongada del botón Volver</string> + <string name="changelog_title">Mostrar registro de cambios</string> + <string name="changelog_loading">Cargando registro de cambios\u2026</string> + <string name="changelog_error">Imposible cargar el registro de cambios</string> + <string name="changelog_unknown">Desconocido</string> + <string name="changelog_version">Versión</string> + <string name="power_menu_title">Menú de apagado</string> + <string name="power_menu_reboot_title">Reiniciar</string> + <string name="power_menu_screenshot_title">Capturar pantalla</string> + <string name="power_menu_expanded_desktop">Extender escritorio</string> + <string name="power_menu_profiles_title">Perfiles</string> + <string name="power_menu_airplane_title">Modo avión</string> + <string name="power_menu_user_title">Cambiar de usuario</string> + <string name="power_menu_sound_title">Panel de sonido</string> + <string name="cmupdate_settings_title">Actualizaciones CyanogenMod</string> + <string name="cmupdate_settings_summary">Comprobar, ver e instalar actualizaciones disponibles</string> + <string name="advanced_settings_title">Opciones avanzadas</string> + <string name="ime_switcher_notify">Selector en notificaciones</string> + <string name="ime_switcher_notify_summary">Muestra el selector de método de entrada de texto en la barra de notificaciones</string> + <string name="status_bar_title">Barra de estado</string> + <string name="status_bar_clock_title">Reloj</string> + <string name="status_bar_general_title">General</string> + <string name="status_bar_show_clock_title">Mostrar reloj</string> + <string name="status_bar_am_pm_title">Estilo AM/PM</string> + <string name="status_bar_am_pm_info">Activado el modo 24-horas</string> + <string name="status_bar_battery_title">Estilo batería</string> + <string name="status_bar_toggle_brightness">Ajuste de brillo</string> + <string name="status_bar_toggle_brightness_summary">Permitir ajustar la luminosidad de la pantalla mediante el deslizamiento por la barra de estado</string> + <string name="status_bar_toggle_info">Ajuste de brillo automático esta activado</string> + <string name="status_bar_signal_text_title">Estilo de la señal de estado</string> + <string name="status_bar_style_icon">Icono</string> + <string name="status_bar_style_hidden">Oculto</string> + <string name="status_bar_signal_text_show_text">Texto</string> + <string name="status_bar_battery_status_percentage">Porcentaje</string> + <string name="status_bar_battery_status_circle">Circular</string> + <string name="status_bar_battery_status_circle_percentage">Circular con porcentaje</string> + <string name="status_bar_notif_count_title">Mostrar contador notificaciones</string> + <string name="status_bar_notif_count_summary">Mostrar el número de notificaciones pendientes en la barra de estado</string> + <string name="display_category_wakeup_options_title">Opciones de reanudación</string> + <string name="pref_volume_wake_title">Controles de volumen</string> + <string name="pref_volume_wake_summary">Presionando los botones de control de volumen el dispositivo saldrá del modo en espera</string> + <string name="adb_notify">Notificar depuración USB</string> + <string name="adb_notify_summary">Mostrar una notificación cuando el modo de depuración USB esté conectado</string> + <string name="development_tools_title">Iniciar Herramientas</string> + <string name="usb_mass_storage_title">Almacenamiento masivo</string> + <string name="usb_mass_storage_summary">Habilitar el almacenamiento masivo USB</string> + <string name="adb_over_network">ADB sobre TCP/IP</string> + <string name="adb_over_network_summary">Activar la depuración TCP/IP sobre las interfaces de red (Wi-Fi, redes USB). Esta configuración se restablece al reiniciar el dispositivo</string> + <string name="adb_over_network_warning">AVISO: ¡Cuando ADB sobre TCP/IP esté activo, su teléfono estará abierto a intrusiones en todas las redes conectadas, incluida la red de datos GSM!\n\nUse sólo esta característica cuando esté conectado a redes de confianza.\n\n¿Desea realmente activar esta función?</string> + <string name="lockscreen_buttons_title">Acciones de botones</string> + <string name="lockscreen_buttons_summary">Ver o cambiar las acciones de los botones en bloqueo de pantalla</string> + <string name="lockscreen_long_press_back_title">Pulsación larga para botón Atrás</string> + <string name="lockscreen_long_press_home_title">Pulsación larga para botón Inicio</string> + <string name="lockscreen_long_press_menu_title">Pulsación larga para botón Menú</string> + <string name="lockscreen_buttons_no_action">Sin acción</string> + <string name="lockscreen_buttons_flashlight">Linterna</string> + <string name="lockscreen_buttons_next">Pista siguiente</string> + <string name="lockscreen_buttons_previous">Pista anterior</string> + <string name="lockscreen_buttons_playpause">Reproducir/Pausar</string> + <string name="lockscreen_buttons_toggle_sound">Alternar sonido</string> + <string name="quick_settings_panel_title">Panel de ajustes rápidos</string> + <string name="quick_settings_title">Ajustes rápidos</string> + <string name="title_static_tiles">Controles estáticos</string> + <string name="tile_picker_title">Controles y disposición</string> + <string name="tile_picker_summary">Ver, seleccionar o cambiar la posición de los controles a mostrar</string> + <string name="tile_choose_title">Elegir un control</string> + <string name="title_tile_airplane">Modo avión</string> + <string name="title_tile_autorotate">Orientación</string> + <string name="title_tile_battery">Batería</string> + <string name="title_tile_bluetooth">Bluetooth</string> + <string name="title_tile_brightness">Brillo</string> + <string name="title_tile_gps">GPS</string> + <string name="title_tile_lte">LTE</string> + <string name="title_tile_lockscreen">Bloqueo</string> + <string name="title_tile_mobiledata">Datos móviles</string> + <string name="title_tile_networkmode">Modo de red</string> + <string name="title_tile_profile">Perfil</string> + <string name="title_tile_screen_timeout">Tiempo de espera</string> + <string name="title_tile_settings">Ajustes</string> + <string name="title_tile_sleep">Bloquear</string> + <string name="title_tile_sound">Sonido</string> + <string name="title_tile_sync">Sincronizar</string> + <string name="title_tile_torch">Linterna</string> + <string name="title_tile_usb_tether">Anclaje USB</string> + <string name="title_tile_quiet_hours">Modo tranquilidad</string> + <string name="title_tile_user">Cambio de usuario</string> + <string name="title_tile_wifi">Wi-Fi</string> + <string name="title_tile_wifiap">Wi-Fi AP</string> + <string name="title_tile_wimax">WiMAX</string> + <string name="title_dynamic_tiles">Controles dinámicos</string> + <string name="dynamic_tiles_note_title">Nota</string> + <string name="dynamic_tiles_note_summary">Los controles dinámicos no siempre estarán visibles y sólo se mostrarán por un evento del sistema</string> + <string name="title_dynamic_alarm">Alarma</string> + <string name="title_dynamic_bugreport">Informe de error</string> + <string name="title_dynamic_ime">Selector IME</string> + <string name="title_dynamic_usbtether">Anclaje USB</string> + <string name="title_dynamic_wifi">Indicador Wi-Fi</string> + <string name="title_general">General</string> + <string name="title_quick_pulldown">Despliegue rápido</string> + <string name="summary_quick_pulldown">El borde %1$s de la barra de notificaciones desplegará el panel de ajustes rápidos</string> + <string name="quick_pulldown_summary_left">izquierdo</string> + <string name="quick_pulldown_summary_right">derecho</string> + <string name="quick_pulldown_off">Desactivado</string> + <string name="quick_pulldown_left">Borde izquierdo</string> + <string name="quick_pulldown_right">Borde derecho</string> + <string name="title_collapse_panel">Cierre automático</string> + <string name="summary_collapse_panel">Cerrar el panel de ajustes rápidos al pulsar un control</string> + <string name="tiles_reset_title">Restablecer</string> + <string name="tiles_reset_message">¿Restablecer los controles y la disposición?</string> + <string name="volume_key_cursor_control_title">Control del cursor</string> + <string name="volume_key_cursor_control_off">Deshabilitado</string> + <string name="volume_key_cursor_control_on">Los botones subir y bajar volumen moverán el cursor a izquierda y derecha respectivamente</string> + <string name="volume_key_cursor_control_on_reverse">Los botones subir y bajar volumen moverán el cursor a derecha e izquierda respectivamente</string> + <string name="wifi_setting_countrycode_title">Código de región Wi-Fi</string> + <string name="wifi_setting_countrycode_summary">Especificar el código de región para Wi-Fi</string> + <string name="wifi_setting_countrycode_error">Ocurrió un error al establecer el código de región</string> + <string name="wifi_setting_priority_title">Prioridad Wi-Fi</string> + <string name="wifi_setting_priority_summary">Especificar la prioridad de las redes Wi-Fi</string> + <string name="pref_wifi_disable_hdcp_title">Omitir negociación HDCP</string> + <string name="pref_wifi_disable_hdcp_summary">Intente esta opción si puede conectar a la red pero no se consigue salida al exterior</string> + <string name="app_security_title">Seguridad en aplicaciones</string> + <string name="sms_security_check_limit_title">Límite de mensajes SMS</string> + <string name="sms_security_check_limit_summary">Las aplicaciones pueden enviar hasta %d mensajes SMS en 30 minutos antes de requerir confirmación</string> + <string name="sms_security_check_limit_default">30 (por defecto)</string> + <string name="lock_clock_title">Widget cLock</string> + <string name="lock_clock_summary">Ver o cambiar cómo se mostrará el widget del reloj cLock</string> + <string name="stylus_icon_enabled_title">Stylus</string> + <string name="stylus_icon_enabled_summary">Mostrar el cursor cuando se arrastra o dibuja con Stylus</string> + <string name="navigation_bar_title">Barra de navegación</string> + <string name="navigation_bar_help_text">1 - Para empezar a editar, tocar el candado.\n\n2 - Tocar cualquier botón para asignar o cambiar una acción.\n\n3 - Mantener presionado un botón para reorganizar.\n\n4 - Para guardar, tocar el candado nuevamente.\n\n5 - Para restaurar la configuración por defecto, tocar el icono de restablecer.\n\n</string> + <string name="navigation_bar_tips">\u2022 Sólo se puede asignar una acción a un botón a la vez.\n\n\u2022 El botón de inicio no puede ser reasignado.\n\n\u2022 Los botones laterales, no pueden ser reorganizados.</string> + <string name="navigation_bar_tips_title">Consejos rápidos</string> + <string name="navigation_bar_reset_message">¿Borrar configuración actual y restaurar valores por defecto?</string> + <string name="navigation_bar_save_message">Barra de navegación guardada</string> + <string name="navigation_bar_reset_toast">Barra de navegación restaurada</string> + <string name="navigation_bar_menu_editable">Editable</string> + <string name="navigation_bar_menu_locked">Bloqueada</string> + <string name="lockscreen_maximize_widgets_title">Maximizar widgets</string> + <string name="lockscreen_maximize_widgets_summary">Mostrar los widgets maximizados y el widget de bloqueo minimizado al encender la pantalla</string> + <string name="bluetooth_mas_request">Solicitud de acceso a mensajes</string> + <string name="bluetooth_mas_acceptance_dialog_text">%1$s intenta acceder a los mensajes. ¿Permitir acceso a %2$s?</string> + <string name="bluetooth_mas_remember_choice">No volver a preguntar</string> + <string name="accessibility_home_button_answers_call_prerefence_title">Botón Inicio descuelga</string> + <string name="headset_category_title">Auriculares</string> + <string name="lockscreen_custom_background_title">Fondo</string> + <string name="lockscreen_custom_background_dialog_title">Elegir color</string> + <string name="lockscreen_background_result_successful">Fondo cambiado correctamente</string> + <string name="lockscreen_background_result_not_successful">El fondo no pudo ser cambiado</string> + <string name="lockscreen_background_color_fill">Color de relleno</string> + <string name="lockscreen_background_custom_image">Imagen personalizada</string> + <string name="lockscreen_background_default_wallpaper">Fondo por defecto</string> + <string name="safe_headset_volume_title">Volumen seguro</string> + <string name="safe_headset_volume_summary">Prevenir un volumen alto en los auriculares cuando sean conectados por primera vez</string> + <string name="cyanogenmod_waiver_title">Renuncia</string> + <string name="cyanogenmod_waiver_body">Cambiar este ajuste puede ir en contra de la leyes de su estado o país.\n\nPulsando \'Aceptar\', usted reconoce esta advertencia y exime de cualquier responsabilidad legal a CyanogenMod y sus colaboradores, renunciando así a cualquier reclamación por daños y perjuicios.</string> + + <!-- CYANOGENMOD ADDITIONS END --> </resources> diff --git a/res/values-fi/arrays.xml b/res/values-fi/arrays.xml index 41dfd36..afe6337 100644 --- a/res/values-fi/arrays.xml +++ b/res/values-fi/arrays.xml @@ -107,13 +107,6 @@ <item msgid="5660739516542454527">"Estetty"</item> <item msgid="1805837518286731242">"Vältetään huonoa yhteyttä tilapäisesti"</item> </string-array> - <!-- no translation found for wifi_security:0 (8491993170197127709) --> - <!-- no translation found for wifi_security:1 (6524315248437318854) --> - <!-- no translation found for wifi_security:2 (1532568756571457140) --> - <!-- no translation found for wifi_security:3 (3620707702811709779) --> - <!-- no translation found for wifi_security_no_eap:0 (2084555984818107151) --> - <!-- no translation found for wifi_security_no_eap:1 (397579322683471524) --> - <!-- no translation found for wifi_security_no_eap:2 (1968820975358150484) --> <string-array name="wifi_eap_method"> <item msgid="1160193392455075561">"PEAP"</item> <item msgid="7981731051382306293">"TLS"</item> @@ -295,4 +288,40 @@ <item msgid="5077768429488260031">"Älä salli koskaan"</item> <item msgid="1417929597727989746">"Salli aina"</item> </string-array> + <!-- **** CYANOGENMOD EDITS START **** --> + <string-array name="volume_overlay_entries"> + <item>Yksittäinen</item> + <item>Laajennettava</item> + <item>Laajennettu</item> + <item>Pois käytöstä</item> + </string-array> + <string-array name="profile_entries"> + <item>On</item> + <item>Off</item> + <item>No override</item> + </string-array> + <string-array name="profile_connection_entries"> + <item>Pois käytöstä</item> + <item>Ota käyttöön</item> + </string-array> + <string-array name="entries_network_widget"> + <item>2G/3G+2G</item> + <item>Vain 2G/3G</item> + <item>Vain 2G/3G /3G+2G</item> + </string-array> + <string-array name="entries_flash_widget"> + <item>Normaali</item> + <item>Korkea</item> + </string-array> + <string-array name="haptic_feedback_entries"> + <item>Käytä yleisiä asetuksia</item> + <item>Päällä</item> + <item>Pois</item> + </string-array> + <string-array name="entries_status_bar_am_pm"> + <item>Normaali</item> + <item>Pieni</item> + <item>Ei käytössä</item> + </string-array> + <!-- **** CYANOGENMOD EDITS END **** --> </resources> diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml index d050119..4570ef1 100644 --- a/res/values-fi/strings.xml +++ b/res/values-fi/strings.xml @@ -1,5 +1,6 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2007 The Android Open Source Project +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2007 The Android Open Source Project + 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. @@ -26,8 +27,8 @@ <item quantity="one" msgid="5295687242294085452">"Kehittäjäasetukset otetaan käyttöön <xliff:g id="STEP_COUNT">%1$d</xliff:g> vaiheen päästä."</item> <item quantity="other" msgid="6722953419953594148">"Kehittäjäasetukset otetaan käyttöön <xliff:g id="STEP_COUNT">%1$d</xliff:g> vaiheen päästä."</item> </plurals> - <string name="show_dev_on" msgid="1110711554982716293">"Olet nyt kehittäjä!"</string> - <string name="show_dev_already" msgid="2151632240145446227">"Ei tarvitse klikata, olet jo kehittäjä."</string> + <string name="show_dev_on" msgid="1110711554982716293">"Kehittäjäasetukset otettu käyttöön"</string> + <string name="show_dev_already" msgid="2151632240145446227">"Ei tarvitse klikata, olet jo ottanut kehittäjäasetukset käyttöön."</string> <string name="header_category_wireless_networks" msgid="4944823405420438623">"LANGATTOMAT YHTEYDET JA VERKOT"</string> <string name="header_category_device" msgid="5781174212691167553">"LAITE"</string> <string name="header_category_personal" msgid="6225932173498802187">"HENKILÖKOHTAINEN"</string> @@ -171,8 +172,6 @@ <string name="normal_date_format" msgid="7636406984925498359">"Paikallinen (<xliff:g id="DATE">%s</xliff:g>)"</string> <string name="display_preview_label" msgid="1127597250917274792">"Esikatselu:"</string> <string name="display_font_size_label" msgid="8941851418397475389">"Kirjasimen koko:"</string> - <!-- no translation found for intent_sender_data_label (6332324780477289261) --> - <skip /> <string name="intent_sender_sendbroadcast_text" msgid="1415735148895872715">"Lähetä <xliff:g id="BROADCAST">broadcast</xliff:g>"</string> <string name="intent_sender_action_label" msgid="616458370005452389">"<xliff:g id="ACTION">Action</xliff:g>:"</string> <string name="intent_sender_startactivity_text" msgid="5080516029580421895">"Käynnistä <xliff:g id="ACTIVITY">activity</xliff:g>"</string> @@ -255,7 +254,7 @@ <string name="activity_picker_label" msgid="6295660302548177109">"Valitse toiminto"</string> <string name="device_info_label" msgid="6551553813651711205">"Laitteen tiedot"</string> <string name="battery_info_label" msgid="4132685016148679403">"Akun tiedot"</string> - <string name="display_label" msgid="8074070940506840792">"Ruutu"</string> + <string name="display_label" msgid="8074070940506840792">"Näyttö"</string> <string name="phone_info_label" product="tablet" msgid="7820855350955963628">"Tablet-laitteen tiedot"</string> <string name="phone_info_label" product="default" msgid="2127552523124277664">"Puhelimen tiedot"</string> <string name="sd_card_settings_label" product="nosdcard" msgid="8101475181301178428">"USB-tallennustila"</string> @@ -268,7 +267,7 @@ <string name="airplane_mode" msgid="8837269988154128601">"Lentokonetila"</string> <string name="radio_controls_title" msgid="6889937359495515769">"Lisää..."</string> <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Langaton verkko ja verkot"</string> - <string name="radio_controls_summary" msgid="2998818677094465517">"Hallinnoi wifi- ja Bluetooth-yhteyksiä, lentokonetilaa ja mobiili- ja VPN-verkkoja"</string> + <string name="radio_controls_summary" msgid="2998818677094465517">"Hallinnoi Wi-Fi- ja Bluetooth-yhteyksiä, lentokonetilaa ja mobiili- ja VPN-verkkoja"</string> <string name="roaming" msgid="3596055926335478572">"Roaming-tiedonsiirto"</string> <string name="roaming_enable" msgid="3737380951525303961">"Yhdistä verkkoon roaming-tilassa"</string> <string name="roaming_disable" msgid="1295279574370898378">"Yhdistä verkkoon roaming-tilassa"</string> @@ -303,13 +302,13 @@ <string name="biometric_weak_liveliness_summary" msgid="4199587000948042325">"Vaadi silmänräpäytys poistettaessa lukitusta"</string> <string name="lock_after_timeout" msgid="4590337686681194648">"Lukitse automaattisesti"</string> <string name="lock_after_timeout_summary" msgid="6128431871360905631">"<xliff:g id="TIMEOUT_STRING">%1$s</xliff:g> virransäästötilan jälkeen"</string> - <string name="show_owner_info_on_lockscreen_label" msgid="5074906168357568434">"Näytä omistajan tiedot lukitusruudulla"</string> + <string name="show_owner_info_on_lockscreen_label" msgid="5074906168357568434">"Näytä omistajan tiedot lukitusnäytöllä"</string> <string name="owner_info_settings_title" msgid="2723190010708381889">"Omistajan tiedot"</string> <string name="owner_info_settings_summary" msgid="3800834657847339570"></string> - <string name="owner_info_settings_edit_text_hint" msgid="4608681417960923911">"Kirjoita tekstiä näytettäväksi lukitusruudulla."</string> - <string name="show_user_info_on_lockscreen_label" msgid="8408914624925608365">"Näytä käyttäjän tiedot lukitusruudulla"</string> + <string name="owner_info_settings_edit_text_hint" msgid="4608681417960923911">"Kirjoita tekstiä näytettäväksi lukitusnäytöllä."</string> + <string name="show_user_info_on_lockscreen_label" msgid="8408914624925608365">"Näytä käyttäjän tiedot lukitusnäytöllä"</string> <string name="user_info_settings_title" msgid="1195015434996724736">"Käyttäjätiedot"</string> - <string name="location_settings_title" msgid="4483843407328665068">"Sijainnin käyttöoikeus"</string> + <string name="location_settings_title" msgid="4483843407328665068">"Sijaintiasetukset"</string> <string name="security_settings_title" msgid="7945465324818485460">"Suojaus"</string> <string name="security_settings_summary" msgid="967393342537986570">"Aseta Oma sijainti, näytön lukituksen poisto, SIM-kortin lukitus, käyttöoikeustietojen tallennustilan lukitus"</string> <string name="cdma_security_settings_summary" msgid="6068799952798901542">"Aseta Oma sijainti, näytön lukituksen poisto, käyttöoikeustietojen tallennustilan lukitus"</string> @@ -326,8 +325,8 @@ <string name="crypt_keeper_button_text" product="default" msgid="2008346408473255519">"Salaa puhelin"</string> <string name="crypt_keeper_low_charge_text" msgid="2029407131227814893">"Lataa akku ja yritä uudelleen."</string> <string name="crypt_keeper_unplugged_text" msgid="4785376766063053901">"Yhdistä laturi ja yritä uudelleen."</string> - <string name="crypt_keeper_dialog_need_password_title" msgid="4058971800557767">"Ei ruudunlukitus-PIN-koodia tai -salasanaa"</string> - <string name="crypt_keeper_dialog_need_password_message" msgid="4071395977297369642">"Sinun täytyy asettaa lukitusruudun PIN-koodi tai salasana ennen kuin voit aloittaa salauksen."</string> + <string name="crypt_keeper_dialog_need_password_title" msgid="4058971800557767">"Ei näytönlukitus-PIN-koodia tai -salasanaa"</string> + <string name="crypt_keeper_dialog_need_password_message" msgid="4071395977297369642">"Sinun täytyy asettaa lukitusnäytön PIN-koodi tai salasana ennen kuin voit aloittaa salauksen."</string> <string name="crypt_keeper_confirm_title" msgid="5100339496381875522">"Salataanko?"</string> <string name="crypt_keeper_final_desc" product="tablet" msgid="4453629424172409792">"Salausta ei voi peruuttaa, ja jos keskeytät sen, menetät tietoja. Salaus kestää vähintään tunnin, ja sen aikana tablet-laite käynnistyy uudelleen useita kertoja."</string> <string name="crypt_keeper_final_desc" product="default" msgid="5682944380460921880">"Salausta ei voi peruuttaa, ja jos keskeytät sen, menetät tietoja. Salaus kestää vähintään tunnin, ja sen aikana puhelin käynnistyy uudelleen useita kertoja."</string> @@ -340,12 +339,12 @@ <string name="crypt_keeper_failed_summary" product="tablet" msgid="4478225241476039013">"Salaus keskeytyi, eikä sitä voi suorittaa loppuun. Tästä johtuen tablet-laitteesi tietoja ei voi enää käyttää. "\n\n"Voit jatkaa tablet-laitteesi käyttöä, kun palautat tehdasasetukset. Kun olet määrittänyt tablet-laitteesi asetukset tehdasasetusten palautuksen jälkeen, voit palauttaa tiedot, jotka olet varmuuskopioinut Google-tiliisi."</string> <string name="crypt_keeper_failed_summary" product="default" msgid="3083477162766772532">"Salaus keskeytyi, eikä sitä voi suorittaa loppuun. Tästä johtuen puhelimesi tietoja ei voi enää käyttää. "\n\n"Voit jatkaa puhelimesi käyttöä, kun palautat tehdasasetukset. Kun olet määrittänyt puhelimesi asetukset tehdasasetusten palautuksen jälkeen, voit palauttaa tiedot, jotka olet varmuuskopioinut Google-tiliisi."</string> <string name="crypt_keeper_switch_input_method" msgid="4168332125223483198">"Vaihda syöttötapaa"</string> - <string name="lock_settings_picker_title" msgid="1095755849152582712">"Valitse ruudunlukitus"</string> + <string name="lock_settings_picker_title" msgid="1095755849152582712">"Valitse näyttölukitus"</string> <string name="backup_lock_settings_picker_title" msgid="8530380598637963916">"Valitse varalukko"</string> - <string name="unlock_set_unlock_launch_picker_title" msgid="2084576942666016993">"Ruudun lukitus"</string> - <string name="unlock_set_unlock_launch_picker_change_title" msgid="5045866882028324941">"Vaihda ruudunlukitusta"</string> + <string name="unlock_set_unlock_launch_picker_title" msgid="2084576942666016993">"Näytön lukitus"</string> + <string name="unlock_set_unlock_launch_picker_change_title" msgid="5045866882028324941">"Vaihda näytönlukitusta"</string> <string name="unlock_set_unlock_launch_picker_change_summary" msgid="2790960639554590668">"Vaihda tai poista käytöstä kuvio-, PIN-koodi- tai salasanasuojaus"</string> - <string name="unlock_set_unlock_launch_picker_enable_summary" msgid="4791110798817242301">"Valitse ruudunlukitustapa"</string> + <string name="unlock_set_unlock_launch_picker_enable_summary" msgid="4791110798817242301">"Valitse näytönlukitustapa"</string> <string name="unlock_backup_info_summary" msgid="108524727803788172">"Kun Face Unlock ei näe kasvojasi, miten haluat poistaa lukituksen?"</string> <string name="unlock_set_unlock_off_title" msgid="7117155352183088342">"Ei mitään"</string> <string name="unlock_set_unlock_off_summary" msgid="94361581669110415"></string> @@ -461,14 +460,14 @@ <string name="bluetooth_profile_headset" msgid="8658779596261212609">"Puhelimen ääni"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"Tiedostonsiirto"</string> <string name="bluetooth_profile_hid" msgid="3680729023366986480">"Syöttölaite"</string> - <string name="bluetooth_profile_pan" msgid="3391606497945147673">"Internetyhteys"</string> - <string name="bluetooth_profile_pan_nap" msgid="8429049285027482959">"Internetyhteyden jakaminen"</string> + <string name="bluetooth_profile_pan" msgid="3391606497945147673">"Internet-yhteys"</string> + <string name="bluetooth_profile_pan_nap" msgid="8429049285027482959">"Internet-yhteyden jakaminen"</string> <string name="bluetooth_disconnect_a2dp_profile" msgid="3524648279150937177">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> irrotetaan median äänentoistosta."</string> <string name="bluetooth_disconnect_headset_profile" msgid="8635908811168780720">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> irrotetaan handsfree-äänentoistosta."</string> <string name="bluetooth_disconnect_hid_profile" msgid="3282295189719352075">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> irrotetaan syöttölaitteesta."</string> - <string name="bluetooth_disconnect_pan_user_profile" msgid="8037627994382458698">"Laitteen <xliff:g id="DEVICE_NAME">%1$s</xliff:g> kautta muodostettu internetyhteys katkaistaan."</string> - <string name="bluetooth_disconnect_pan_nap_profile" product="tablet" msgid="5455448395850929200">"Laitteelta <xliff:g id="DEVICE_NAME">%1$s</xliff:g> katkaistaan tämän tablet-laitteen kautta muodostettu internetyhteys."</string> - <string name="bluetooth_disconnect_pan_nap_profile" product="default" msgid="5266851881175033601">"Laitteelta <xliff:g id="DEVICE_NAME">%1$s</xliff:g> katkaistaan tämän puhelimen kautta muodostettu internetyhteys."</string> + <string name="bluetooth_disconnect_pan_user_profile" msgid="8037627994382458698">"Laitteen <xliff:g id="DEVICE_NAME">%1$s</xliff:g> kautta muodostettu internet-yhteys katkaistaan."</string> + <string name="bluetooth_disconnect_pan_nap_profile" product="tablet" msgid="5455448395850929200">"Laitteelta <xliff:g id="DEVICE_NAME">%1$s</xliff:g> katkaistaan tämän tablet-laitteen kautta muodostettu internet-yhteys."</string> + <string name="bluetooth_disconnect_pan_nap_profile" product="default" msgid="5266851881175033601">"Laitteelta <xliff:g id="DEVICE_NAME">%1$s</xliff:g> katkaistaan tämän puhelimen kautta muodostettu internet-yhteys."</string> <string name="bluetooth_device_advanced_title" msgid="6066342531927499308">"Bluetooth-laitepari"</string> <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"Yhdistä"</string> <string name="bluetooth_device_advanced_online_mode_summary" msgid="1204424107263248336">"Yhdistä Bluetooth-laitteeseen"</string> @@ -480,13 +479,13 @@ <string name="bluetooth_opp_profile_summary_connected" msgid="2611913495968309066">"Yhdistetty tiedostonsiirtopalvelimeen"</string> <string name="bluetooth_opp_profile_summary_not_connected" msgid="1267091356089086285">"Ei yhdistetty tiedostonsiirtopalvelimeen"</string> <string name="bluetooth_hid_profile_summary_connected" msgid="3381760054215168689">"Yhdistetty syöttölaitteeseen"</string> - <string name="bluetooth_pan_user_profile_summary_connected" msgid="4602294638909590612">"Yhdistetty laitteen internetyhteyteen"</string> - <string name="bluetooth_pan_nap_profile_summary_connected" msgid="1561383706411975199">"Paikallinen internetyhteys jaetaan laitteen kanssa"</string> + <string name="bluetooth_pan_user_profile_summary_connected" msgid="4602294638909590612">"Yhdistetty laitteen internet-yhteyteen"</string> + <string name="bluetooth_pan_nap_profile_summary_connected" msgid="1561383706411975199">"Paikallinen internet-yhteys jaetaan laitteen kanssa"</string> <string name="bluetooth_a2dp_profile_summary_use_for" msgid="4630849022250168427">"Käytä median äänille"</string> <string name="bluetooth_headset_profile_summary_use_for" msgid="8705753622443862627">"Käytä puhelimen äänille"</string> <string name="bluetooth_opp_profile_summary_use_for" msgid="1255674547144769756">"Käytä tiedostojen siirtoon"</string> <string name="bluetooth_hid_profile_summary_use_for" msgid="232727040453645139">"Käytä syöttöön"</string> - <string name="bluetooth_pan_profile_summary_use_for" msgid="5664884523822068653">"Käytä internetyhteyteen"</string> + <string name="bluetooth_pan_profile_summary_use_for" msgid="5664884523822068653">"Käytä internet-yhteyteen"</string> <string name="bluetooth_dock_settings" msgid="3218335822716052885">"Telakointiasetukset"</string> <string name="bluetooth_dock_settings_title" msgid="5543069893044375188">"Käytä telakointia äänelle"</string> <string name="bluetooth_dock_settings_headset" msgid="1001821426078644650">"Kaiuttimena"</string> @@ -494,7 +493,7 @@ <string name="bluetooth_dock_settings_remember" msgid="5551459057010609115">"Muista asetukset"</string> <string name="wifi_display_settings_title" msgid="564299108014609382">"Langaton näyttö"</string> <string name="wifi_display_settings_empty_list_wifi_display_off" msgid="1225626898926363100">"Näet laitteet ottamalla langattoman näytön käyttöön."</string> - <string name="wifi_display_settings_empty_list_wifi_display_disabled" msgid="7363832031876872257">"Langaton näyttäminen ei ole käytössä, koska wifi-yhteyttä ei ole muodostettu."</string> + <string name="wifi_display_settings_empty_list_wifi_display_disabled" msgid="7363832031876872257">"Langaton näyttäminen ei ole käytössä, koska Wi-Fi-yhteyttä ei ole muodostettu."</string> <string name="wifi_display_search_for_devices" msgid="5065526281193354502">"Etsi näyttöjä"</string> <string name="wifi_display_searching_for_devices" msgid="5172373825348672137">"Etsitään..."</string> <string name="wifi_display_no_devices_found" msgid="8180582698282377626">"Ei lähellä olevia langattomia näyttöjä."</string> @@ -524,50 +523,50 @@ <string name="android_beam_explained" msgid="6981652347448777459">"Kun tämä ominaisuus on käytössä, voit lähettää sovellusten sisältöä toiseen NFC-yhteensopivaan laitteeseen pitämällä laitteita lähekkäin. Voit lähettää esimerkiksi selaimen sivuja, YouTube-videoita ja yhteystietoja."\n\n"Aseta laitteet lähekkäin (yleensä taustat vastakkain) ja kosketa näyttöä. Sovellus määrittää lähetettävät tiedot."</string> <string name="nsd_quick_toggle_title" msgid="3125572815278848258">"Verkkopalveluhaku"</string> <string name="nsd_quick_toggle_summary" msgid="155692215972781276">"Anna muiden laitteiden sovelluksien löytää tämän laitteen sovelluksia"</string> - <string name="wifi_quick_toggle_title" msgid="874495178395350104">"Wifi"</string> - <string name="wifi_quick_toggle_summary" msgid="1047950931623694366">"Ota wifi-yhteys käyttöön"</string> - <string name="wifi_settings" msgid="1277428034634973011">"Wifi"</string> - <string name="wifi_settings_category" msgid="2810363951104753710">"Wifi-asetukset"</string> - <string name="wifi_settings_title" msgid="4351120897298124250">"Wifi"</string> + <string name="wifi_quick_toggle_title" msgid="874495178395350104">"Wi-Fi"</string> + <string name="wifi_quick_toggle_summary" msgid="1047950931623694366">"Ota Wi-Fi-yhteys käyttöön"</string> + <string name="wifi_settings" msgid="1277428034634973011">"Wi-Fi"</string> + <string name="wifi_settings_category" msgid="2810363951104753710">"Wi-Fi-asetukset"</string> + <string name="wifi_settings_title" msgid="4351120897298124250">"Wi-Fi"</string> <string name="wifi_settings_summary" msgid="668767638556052820">"Ota käyttöön ja hallinnoi langattoman yhteyden tukiasemia"</string> - <string name="wifi_setup_wizard_title" msgid="70277346338812325">"Valitse wifi-verkko"</string> - <string name="wifi_starting" msgid="6716593470710880000">"Wifiä otetaan käyttöön..."</string> - <string name="wifi_stopping" msgid="244864762599017659">"Sammutetaan wifi-yhteyttä…"</string> + <string name="wifi_setup_wizard_title" msgid="70277346338812325">"Valitse Wi-Fi-verkko"</string> + <string name="wifi_starting" msgid="6716593470710880000">"Wi-Fiä otetaan käyttöön..."</string> + <string name="wifi_stopping" msgid="244864762599017659">"Sammutetaan Wi-Fi-yhteyttä…"</string> <string name="wifi_error" msgid="3207971103917128179">"Virhe"</string> <string name="wifi_in_airplane_mode" msgid="8652520421778203796">"Lentokonetilassa"</string> <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Verkkoja ei voi etsiä."</string> <string name="wifi_notify_open_networks" msgid="3755768188029653293">"Verkkoilmoitus"</string> <string name="wifi_notify_open_networks_summary" msgid="3038290727701553612">"Ilmoita, kun avoin verkko on käytettävissä"</string> <string name="wifi_poor_network_detection" msgid="4925789238170207169">"Vältä huonoja yhteyksiä"</string> - <string name="wifi_poor_network_detection_summary" msgid="2466956369738047669">"Älä käytä wifi-verkkoa, jos sillä on huono internetyhteys."</string> - <string name="wifi_setting_sleep_policy_title" msgid="9107237003911220057">"Wifi käytössä lepotilassa"</string> + <string name="wifi_poor_network_detection_summary" msgid="2466956369738047669">"Älä käytä Wi-Fi-verkkoa, jos sillä on huono internet-yhteys."</string> + <string name="wifi_setting_sleep_policy_title" msgid="9107237003911220057">"Wi-Fi käytössä lepotilassa"</string> <string name="wifi_setting_sleep_policy_error" msgid="8174902072673071961">"Asetuksen vaihtaminen epäonnistui"</string> - <string name="wifi_suspend_optimizations" msgid="387215679583759376">"Wifi-optimointi"</string> - <string name="wifi_suspend_optimizations_summary" msgid="7774946457510541054">"Vähennä akun kulutusta, kun wifi on käytössä"</string> + <string name="wifi_suspend_optimizations" msgid="387215679583759376">"Wi-Fi-optimointi"</string> + <string name="wifi_suspend_optimizations_summary" msgid="7774946457510541054">"Vähennä akun kulutusta, kun Wi-Fi on käytössä"</string> <string name="wifi_add_network" msgid="6234851776910938957">"Lisää verkko"</string> - <string name="wifi_access_points" msgid="2664629396767022441">"Wifi-verkot"</string> + <string name="wifi_access_points" msgid="2664629396767022441">"Wi-Fi-verkot"</string> <string name="wifi_menu_wps_pbc" msgid="2668564692207863017">"WPS-painike"</string> <string name="wifi_menu_more_options" msgid="2448097861752719396">"Lisää asetuksia"</string> <string name="wifi_menu_wps_pin" msgid="6426448256268695933">"WPS-PIN"</string> - <string name="wifi_menu_p2p" msgid="2575893749303670353">"Suora wifi-yhteys"</string> + <string name="wifi_menu_p2p" msgid="2575893749303670353">"Suora Wi-Fi-yhteys"</string> <string name="wifi_menu_scan" msgid="1470911530412095868">"Etsi"</string> <string name="wifi_menu_advanced" msgid="7522252991919573664">"Lisäasetukset"</string> <string name="wifi_menu_connect" msgid="4996220309848349408">"Yhdistä verkkoon"</string> <string name="wifi_menu_forget" msgid="8736964302477327114">"Unohda verkko"</string> <string name="wifi_menu_modify" msgid="2068554918652440105">"Muokkaa verkkoa"</string> - <string name="wifi_empty_list_wifi_off" msgid="4722299515264875943">"Näet käytettävissä olevat verkot, kun otat wifin käyttöön."</string> - <string name="wifi_empty_list_wifi_on" msgid="3354911729026237372">"Haetaan wifi-verkkoja..."</string> + <string name="wifi_empty_list_wifi_off" msgid="4722299515264875943">"Näet käytettävissä olevat verkot, kun otat Wi-Fin käyttöön."</string> + <string name="wifi_empty_list_wifi_on" msgid="3354911729026237372">"Haetaan Wi-Fi-verkkoja..."</string> <string name="wifi_other_network" msgid="1048006316504242214">"Muu verkko..."</string> <string name="wifi_more" msgid="3195296805089107950">"Lisää"</string> <string name="wifi_setup_wps" msgid="8128702488486283957">"Automaattiset aset. (WPS)"</string> - <string name="wifi_required_info_text" msgid="9014073093293520112">"Asetuksien viimeistelyyn vaaditaan wifi-yhteys. Asetuksien määrittämisen jälkeen voit käyttää mobiiliverkkoyhteyttä tai wifi-yhteyttä."</string> + <string name="wifi_required_info_text" msgid="9014073093293520112">"Asetuksien viimeistelyyn vaaditaan Wi-Fi-yhteys. Asetuksien määrittämisen jälkeen voit käyttää mobiiliverkkoyhteyttä tai wifi-yhteyttä."</string> <string name="wifi_show_advanced" msgid="1793703023711426246">"Näytä lisäasetukset"</string> - <string name="wifi_wps_setup_title" msgid="6034518116333042484">"Suojatut wifi-asetukset"</string> + <string name="wifi_wps_setup_title" msgid="6034518116333042484">"Suojatut Wi-Fi-asetukset"</string> <string name="wifi_wps_setup_msg" msgid="315174329121275092">"Käynnistetään WPS:ää..."</string> <string name="wifi_wps_onstart_pbc" msgid="7204827509934892103">"Paina reitittimen Wi-Fi Protected Setup -painiketta. Siinä voi lukea WPS tai se voi sisältää seuraavan symbolin:"</string> - <string name="wifi_wps_onstart_pin" msgid="8067502591043979939">"Näppäile wifi-reitittimen pin-koodi <xliff:g id="NUMBER">%1$s</xliff:g>. Asennus voi kestää kaksi minuuttia."</string> + <string name="wifi_wps_onstart_pin" msgid="8067502591043979939">"Näppäile Wi-Fi-reitittimen pin-koodi <xliff:g id="NUMBER">%1$s</xliff:g>. Asennus voi kestää kaksi minuuttia."</string> <string name="wifi_wps_complete" msgid="2388138550456729134">"WPS onnistui. Muodostetaan yhteyttä verkkoon..."</string> - <string name="wifi_wps_connected" msgid="5754399645462924103">"Yhdistetty wifi-verkkoon <xliff:g id="NETWORK_NAME">%s</xliff:g>"</string> + <string name="wifi_wps_connected" msgid="5754399645462924103">"Yhdistetty Wi-Fi-verkkoon <xliff:g id="NETWORK_NAME">%s</xliff:g>"</string> <string name="wifi_wps_in_progress" msgid="3372311348221357944">"WPS on jo käynnissä ja voi kestää kaksi minuuttia"</string> <string name="wifi_wps_failed_generic" msgid="5668775022238832527">"WPS epäonnistui. Yritä uudelleen muutaman minuutin kuluttua."</string> <string name="wifi_wps_failed_wep" msgid="2702820087105284461">"Langattoman reitittimen suojausasetusta (WEP) ei tueta."</string> @@ -614,10 +613,10 @@ <string name="wifi_skipped_message" product="default" msgid="1192848364146401759">"VAROITUS: Voit joutua maksamaan ylimääräisiä tiedonsiirtomaksuja."\n\n"Puhelimen asetusten määrittäminen voi vaatia paljon tiedonsiirtoa."</string> <string name="wifi_and_mobile_skipped_message" product="tablet" msgid="7682836089429990118">"VAROITUS: tablet-laite ei voi tarkistaa, onko ohjelmisto ajan tasalla."</string> <string name="wifi_and_mobile_skipped_message" product="default" msgid="3324261421359832263">"VAROITUS: puhelin ei voi tarkistaa, onko ohjelmisto ajan tasalla."</string> - <string name="wifi_connect_failed_message" product="tablet" msgid="6904081070290941807">"Tablet-laite ei voi muodostaa yhteyttä tähän wifi-verkkoon."</string> - <string name="wifi_connect_failed_message" product="default" msgid="3894921379368046855">"Puhelin ei voi muodostaa yhteyttä tähän wifi-verkkoon."</string> - <string name="wifi_advanced_titlebar" msgid="1627063574532930090">"Edistynyt wifi"</string> - <string name="wifi_setting_frequency_band_title" msgid="7493768705046080060">"Wifi-taajuusalue"</string> + <string name="wifi_connect_failed_message" product="tablet" msgid="6904081070290941807">"Tablet-laite ei voi muodostaa yhteyttä tähän Wi-Fi-verkkoon."</string> + <string name="wifi_connect_failed_message" product="default" msgid="3894921379368046855">"Puhelin ei voi muodostaa yhteyttä tähän Wi-Fi-verkkoon."</string> + <string name="wifi_advanced_titlebar" msgid="1627063574532930090">"Edistynyt Wi-Fi"</string> + <string name="wifi_setting_frequency_band_title" msgid="7493768705046080060">"Wi-Fi-taajuusalue"</string> <string name="wifi_setting_frequency_band_summary" msgid="3250740757118009784">"Määritä toiminnan taajuusalue"</string> <string name="wifi_setting_frequency_band_error" msgid="837281974489794378">"Ongelma taajuusalueen asettamisessa."</string> <string name="wifi_advanced_mac_address_title" msgid="6571335466330978393">"MAC-osoite"</string> @@ -633,7 +632,7 @@ <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string> <string name="wifi_gateway" msgid="163914742461092086">"Yhdyskäytävä"</string> <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Verkon etuliitteen pituus"</string> - <string name="wifi_p2p_settings_title" msgid="400503541488064638">"Suora wifi-yhteys"</string> + <string name="wifi_p2p_settings_title" msgid="400503541488064638">"Suora Wi-Fi-yhteys"</string> <string name="wifi_p2p_device_info" msgid="3191876744469364173">"Laitteen tiedot"</string> <string name="wifi_p2p_persist_network" msgid="1646424791818168590">"Muista tämä yhteys"</string> <string name="wifi_p2p_menu_search" msgid="3436429984738771974">"Etsi laitteita"</string> @@ -649,13 +648,13 @@ <string name="wifi_p2p_cancel_connect_title" msgid="255267538099324413">"Peruutetaanko kutsu?"</string> <string name="wifi_p2p_cancel_connect_message" msgid="7477756213423749402">"Haluatko peruuttaa laitteelle <xliff:g id="PEER_NAME">%1$s</xliff:g> lähetetyn yhteydenmuodostuskutsun?"</string> <string name="wifi_p2p_delete_group_message" msgid="834559380069647086">"Unohdetaanko tämä ryhmä?"</string> - <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Kannettava wifi-yhteyspiste"</string> + <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Kannettava Wi-Fi-yhteyspiste"</string> <string name="wifi_tether_starting" msgid="1322237938998639724">"Otetaan yhteyspiste käyttöön..."</string> <string name="wifi_tether_stopping" msgid="4835852171686388107">"Poistetaan yhteyspiste käytöstä..."</string> <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Kannettava yhteyspiste <xliff:g id="NETWORK_SSID">%1$s</xliff:g> käytössä"</string> - <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Kannettavan wifi-yhteyspisteen virhe"</string> - <string name="wifi_tether_configure_ap_text" msgid="61237027772641155">"Luo wifi-hotspot"</string> - <string name="wifi_tether_configure_subtext" msgid="1927454307836232128">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g><xliff:g id="NETWORK_SECURITY">%2$s</xliff:g> kannettava wifi-yhteyspiste"</string> + <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Kannettavan Wi-Fi-yhteyspisteen virhe"</string> + <string name="wifi_tether_configure_ap_text" msgid="61237027772641155">"Luo Wi-Fi-hotspot"</string> + <string name="wifi_tether_configure_subtext" msgid="1927454307836232128">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g><xliff:g id="NETWORK_SECURITY">%2$s</xliff:g> kannettava Wi-Fi-yhteyspiste"</string> <string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string> <string name="display_settings_title" msgid="1708697328627382561">"Näyttö"</string> <string name="sound_settings" msgid="5534671337768745343">"Ääni"</string> @@ -666,7 +665,6 @@ <string name="ring_volume_title" msgid="7938706566797464165">"Soittoäänen voimakkuus"</string> <string name="vibrate_in_silent_title" msgid="3897968069156767036">"Käytä värinää äänettömässä tilassa"</string> <string name="notification_sound_title" msgid="5137483249425507572">"Ilmoituksen oletusääni"</string> - <string name="notification_pulse_title" msgid="1247988024534030629">"Vilkuta ilmoitusvaloa"</string> <string name="incoming_call_volume_title" msgid="8073714801365904099">"Soittoääni"</string> <string name="notification_volume_title" msgid="2012640760341080408">"Ilmoitus"</string> <string name="checkbox_notification_same_as_incoming_call" msgid="1073644356290338921">"Käytä ilmoituksille puhelun äänenvoimakkuutta"</string> @@ -677,7 +675,7 @@ <string name="dock_settings_summary" msgid="455802113668982481">"Liitetyn telakan ääniasetukset"</string> <string name="dtmf_tone_enable_title" msgid="8533399267725365088">"Valintanäppäimien näppäinäänet"</string> <string name="sound_effects_enable_title" msgid="1171590821131077296">"Kosketusäänet"</string> - <string name="lock_sounds_enable_title" msgid="450098505659399520">"Ruudun lukitus -ääni"</string> + <string name="lock_sounds_enable_title" msgid="450098505659399520">"Näytön lukitus -ääni"</string> <string name="haptic_feedback_enable_title" msgid="2438293710530828760">"Käytä värinää kosketettaessa"</string> <string name="audio_record_proc_title" msgid="4271091199976457534">"Taustahälyn vaimennus"</string> <string name="volume_media_description" msgid="7949355934788807863">"Musiikki, videot, pelit ja muu media"</string> @@ -708,7 +706,7 @@ <string name="account_settings" msgid="6403589284618783461">"Tilit"</string> <string name="search_settings" msgid="1910951467596035063">"Haku"</string> <string name="search_settings_summary" msgid="9205656546570654169">"Hallinnoi hakuasetuksia ja historiaa"</string> - <string name="display_settings" msgid="7965901687241669598">"Ruutu"</string> + <string name="display_settings" msgid="7965901687241669598">"Näyttö"</string> <string name="accelerometer_title" msgid="7854608399547349157">"Kierrä näyttöä automaattisesti"</string> <string name="accelerometer_summary_on" product="tablet" msgid="429982132339828942">"Vaihda suuntaa automaattisesti, kun tablet-laitetta kierretään"</string> <string name="accelerometer_summary_on" product="default" msgid="1133737282813048021">"Vaihda suuntaa automaattisesti, kun puhelinta käännetään"</string> @@ -772,7 +770,7 @@ <string name="device_status" msgid="607405385799807324">"Tila"</string> <string name="device_status_summary" product="tablet" msgid="3292717754497039686">"Akun ja verkon tila ja muita tietoja"</string> <string name="device_status_summary" product="default" msgid="2599162787451519618">"Puhelinnumero, signaali jne."</string> - <string name="storage_settings" msgid="4211799979832404953">"Tallentaminen"</string> + <string name="storage_settings" msgid="4211799979832404953">"Tallennustila"</string> <string name="storage_settings_title" msgid="8746016738388094064">"Tallennusasetukset"</string> <string name="storage_settings_summary" product="nosdcard" msgid="3543813623294870759">"Poista USB-tila käytöstä, katso käytettävissä oleva tallennustila"</string> <string name="storage_settings_summary" product="default" msgid="9176693537325988610">"Poista SD-kortti käytöstä, näytä käytettävissä oleva tallennustila"</string> @@ -790,7 +788,7 @@ <string name="status_signal_strength" msgid="3732655254188304547">"Signaalin vahvuus"</string> <string name="status_roaming" msgid="2638800467430913403">"Roaming"</string> <string name="status_operator" msgid="2274875196954742087">"Verkko"</string> - <string name="status_wifi_mac_address" msgid="33109409206264790">"Wifi-yhteyden MAC-osoite"</string> + <string name="status_wifi_mac_address" msgid="33109409206264790">"Wi-Fi-yhteyden MAC-osoite"</string> <string name="status_bt_address" msgid="4195174192087439720">"Bluetooth-osoite"</string> <string name="status_serial_number" msgid="2257111183374628137">"Sarjanumero"</string> <string name="status_unavailable" msgid="7862009036663793314">"Ei käytettävissä"</string> @@ -928,36 +926,36 @@ <string name="media_format_gesture_explanation" product="default" msgid="6288926293245938415">"Varmista SD-kortin tyhjennys piirtämällä lukituksenpoistokuviosi."</string> <string name="call_settings_title" msgid="5188713413939232801">"Puheluasetukset"</string> <string name="call_settings_summary" msgid="7291195704801002886">"Ota käyttöön puhelinvastaaja, soitonsiirrot, koputuspalvelu, soittajan tunnus"</string> - <string name="tether_settings_title_usb" msgid="6688416425801386511">"Jaettu yhteys USB:n kautta"</string> - <string name="tether_settings_title_wifi" msgid="3277144155960302049">"Kannettava yhteyspiste"</string> - <string name="tether_settings_title_bluetooth" msgid="355855408317564420">"Jaettu Bluetooth-yhteys"</string> + <string name="tether_settings_title_usb" msgid="6688416425801386511">"Internet-yhteys USB:n kautta"</string> + <string name="tether_settings_title_wifi" msgid="3277144155960302049">"Kannettava Wi-Fi tukiasema"</string> + <string name="tether_settings_title_bluetooth" msgid="355855408317564420">"Internet-yhteys Bluetoothin kautta"</string> <string name="tether_settings_title_usb_bluetooth" msgid="5355828977109785001">"Jaettu yhteys"</string> - <string name="tether_settings_title_all" msgid="8356136101061143841">"Jaettu yhteys ja kannettava yhteyspiste"</string> + <string name="tether_settings_title_all" msgid="8356136101061143841">"Internet-yhteyden jako"</string> <string name="usb_title" msgid="7483344855356312510">"USB"</string> - <string name="usb_tethering_button_text" msgid="585829947108007917">"Internetyhteyden jakaminen USB:n kautta"</string> - <string name="usb_tethering_available_subtext" msgid="156779271296152605">"USB yhdistetty, jaa internetyhteys valitsemalla tämä"</string> - <string name="usb_tethering_active_subtext" msgid="8916210851136467042">"Internetyhteys jaettu"</string> - <string name="usb_tethering_storage_active_subtext" msgid="5210094834194907094">"Internetyhteyttä ei voi jakaa USB-tallennustilan ollessa käytössä."</string> + <string name="usb_tethering_button_text" msgid="585829947108007917">"Internet-yhteyden jakaminen USB:n kautta"</string> + <string name="usb_tethering_available_subtext" msgid="156779271296152605">"USB yhdistetty, jaa internet-yhteys tästä"</string> + <string name="usb_tethering_active_subtext" msgid="8916210851136467042">"Internet-yhteys jaettu"</string> + <string name="usb_tethering_storage_active_subtext" msgid="5210094834194907094">"Internet-yhteyttä ei voi jakaa USB-tallennustilan ollessa käytössä."</string> <string name="usb_tethering_unavailable_subtext" msgid="1044622421184007254">"USB ei yhdistetty"</string> - <string name="usb_tethering_errored_subtext" msgid="1377574819427841992">"Virhe internetyhteyden jakamisessa USB:n kautta"</string> + <string name="usb_tethering_errored_subtext" msgid="1377574819427841992">"Virhe internet-yhteyden jakamisessa USB:n kautta"</string> <string name="bluetooth_tether_checkbox_text" msgid="2379175828878753652">"Jaettu Bluetooth-yhteys"</string> - <string name="bluetooth_tethering_available_subtext" product="tablet" msgid="8811610320942954709">"Tablet-laitteen internetyhteys jaetaan"</string> - <string name="bluetooth_tethering_available_subtext" product="default" msgid="4229220575771946723">"Puhelimen internetyhteys jaetaan"</string> - <string name="bluetooth_tethering_device_connected_subtext" product="tablet" msgid="2730938191906597896">"Tablet-laitteen internetyhteys jaettu 1 laitteelle"</string> - <string name="bluetooth_tethering_device_connected_subtext" product="default" msgid="1666736165420290466">"Puhelimen internetyhteys jaettu 1 laitteelle"</string> - <string name="bluetooth_tethering_devices_connected_subtext" product="tablet" msgid="1180765608259580143">"Tablet-laitteen internetyhteys jaettu <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> laitteelle"</string> - <string name="bluetooth_tethering_devices_connected_subtext" product="default" msgid="8248942539362173005">"Puhelimen internetyhteys jaettu <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> laitteelle"</string> - <string name="bluetooth_tethering_off_subtext" product="tablet" msgid="2093881379028235555">"Tablet-laitteen internetyhteyttä ei jaeta"</string> - <string name="bluetooth_tethering_off_subtext" product="default" msgid="706860924389041342">"Puhelimen internetyhteyttä ei jaeta"</string> + <string name="bluetooth_tethering_available_subtext" product="tablet" msgid="8811610320942954709">"Tablet-laitteen internet-yhteys jaetaan"</string> + <string name="bluetooth_tethering_available_subtext" product="default" msgid="4229220575771946723">"Puhelimen internet-yhteys jaetaan"</string> + <string name="bluetooth_tethering_device_connected_subtext" product="tablet" msgid="2730938191906597896">"Tablet-laitteen internet-yhteys jaettu 1 laitteelle"</string> + <string name="bluetooth_tethering_device_connected_subtext" product="default" msgid="1666736165420290466">"Puhelimen internet-yhteys jaettu 1 laitteelle"</string> + <string name="bluetooth_tethering_devices_connected_subtext" product="tablet" msgid="1180765608259580143">"Tablet-laitteen internet-yhteys jaettu <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> laitteelle"</string> + <string name="bluetooth_tethering_devices_connected_subtext" product="default" msgid="8248942539362173005">"Puhelimen internet-yhteys jaettu <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> laitteelle"</string> + <string name="bluetooth_tethering_off_subtext" product="tablet" msgid="2093881379028235555">"Tablet-laitteen internet-yhteyttä ei jaeta"</string> + <string name="bluetooth_tethering_off_subtext" product="default" msgid="706860924389041342">"Puhelimen internet-yhteyttä ei jaeta"</string> <string name="bluetooth_tethering_errored_subtext" msgid="4926566308991142264">"Ei kytketty"</string> <string name="bluetooth_tethering_overflow_error" msgid="6285122039489881969">"Voidaan yhdistää korkeintaan <xliff:g id="MAXCONNECTION">%1$d</xliff:g> laitteeseen."</string> - <string name="bluetooth_untether_blank" msgid="2871192409329334813">"Jaettu internetyhteys katkaistaan laitteesta <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string> + <string name="bluetooth_untether_blank" msgid="2871192409329334813">"Jaettu internet-yhteys katkaistaan laitteesta <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string> <string name="tethering_help_button_text" msgid="656117495547173630">"Ohje"</string> <string name="network_settings_title" msgid="7967552516440151852">"Mobiiliverkot"</string> <string name="location_title" msgid="1029961368397484576">"Oma sijainti"</string> - <string name="location_network_based" msgid="7472814266821714527">"Wifi- ja mobiiliverkkosijainti"</string> + <string name="location_network_based" msgid="7472814266821714527">"Wi-Fi- ja mobiiliverkkosijainti"</string> <string name="location_neighborhood_level" msgid="5626515380188353712">"Anna sovellusten arvioida sijaintisi Googlen sijaintipalvelulla. Anonyymejä sijaintitietoja kerätään ja lähetetään Googlelle."</string> - <string name="location_neighborhood_level_wifi" msgid="7457348712272184793">"Sijainti määritetty wifi-yhteyden perusteella"</string> + <string name="location_neighborhood_level_wifi" msgid="7457348712272184793">"Sijainti määritetty Wi-Fi-yhteyden perusteella"</string> <string name="location_gps" msgid="8392461023569708478">"GPS-satelliitit"</string> <string name="location_street_level" product="tablet" msgid="1669562198260860802">"Anna sovellusten määrittää sijaintisi tablet-laitteen GPS:n avulla"</string> <string name="location_street_level" product="default" msgid="4617445745492014203">"Anna sovellusten määrittää sijaintisi puhelimen GPS:n avulla"</string> @@ -966,7 +964,7 @@ <string name="assisted_gps_disabled" msgid="6982698333968010748">"Käytä palvelinta GPS:n apuna (poista valinta parantaaksesi GPS:n tehokkuutta)"</string> <string name="use_location_title" msgid="5206937465504979977">"Sijainti ja Google-haku"</string> <string name="use_location_summary" msgid="3978805802386162520">"Anna Googlen käyttää sijaintia hakutulosten ja muiden palveluiden parantamiseen."</string> - <string name="location_access_title" msgid="7064108942964081243">"Sijaintitietojen käyttö"</string> + <string name="location_access_title" msgid="7064108942964081243">"Sijainnin käyttö"</string> <string name="location_access_summary" msgid="69031404093194341">"Anna pyytäneille sovelluksille lupa käyttää sijaintitietoja"</string> <string name="location_sources_heading" msgid="1278732419851088319">"Sijainnin lähteet"</string> <string name="about_settings" product="tablet" msgid="593457295516533765">"Tietoja tablet-laitteesta"</string> @@ -983,7 +981,7 @@ <string name="settings_license_activity_loading" msgid="3337535809093591740">"Ladataan…"</string> <string name="settings_safetylegal_title" msgid="1289483965535937431">"Suojaustiedot"</string> <string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"Suojaustiedot"</string> - <string name="settings_safetylegal_activity_unreachable" msgid="232523852222964470">"Laite ei ole yhteydessä verkkoon. Voit tarkastella näitä tietoja osoitteessa %s tietokoneella, jolla on internetyhteys."</string> + <string name="settings_safetylegal_activity_unreachable" msgid="232523852222964470">"Laite ei ole yhteydessä verkkoon. Voit tarkastella näitä tietoja osoitteessa %s tietokoneella, jolla on internet-yhteys."</string> <string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"Ladataan…"</string> <string name="lockpassword_choose_your_password_header" msgid="8624900666929394990">"Valitse salasana"</string> <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Valitse kuvio"</string> @@ -997,7 +995,7 @@ <string name="lockpassword_password_set_toast" msgid="4875050283108629383">"Salasana on asetettu"</string> <string name="lockpassword_pin_set_toast" msgid="6011826444725291475">"PIN-koodi asetettu"</string> <string name="lockpassword_pattern_set_toast" msgid="6867259621331406236">"Kuvio on asetettu"</string> - <string name="lock_settings_title" msgid="335025124489630932">"Ruudun suojaus"</string> + <string name="lock_settings_title" msgid="335025124489630932">"Näytön suojaus"</string> <string name="lockpattern_change_lock_pattern_label" msgid="5679630792003440352">"Vaihda lukituksenpoistokuvio"</string> <string name="lockpattern_change_lock_pin_label" msgid="266707138486731661">"Muuta lukituksen poistoon tarvittava PIN-koodi"</string> <string name="lockpattern_need_to_unlock" msgid="757935356911054465">"Vahvista tallennettu kuvio"</string> @@ -1025,6 +1023,12 @@ <string name="lockpattern_too_many_failed_confirmation_attempts_header" msgid="819903817323783498">"Liikaa virheellisiä yrityksiä!"</string> <string name="lockpattern_too_many_failed_confirmation_attempts_footer" msgid="6759029360597122873">"Yritä uudelleen <xliff:g id="NUMBER">%d</xliff:g> sekunnin kuluttua."</string> <string name="activity_not_found" msgid="5551664692991605325">"Sovellusta ei ole asennettu puhelimeesi."</string> + <string name="skip_button_label" msgid="8680422740354436943">"Peruuta"</string> + <string name="next_button_label" msgid="8890792540116568321">"Seuraava"</string> + <string name="lock_title" product="tablet" msgid="2909697418179419990">"Tablet-laitteen suojaaminen"</string> + <string name="lock_title" product="default" msgid="4059246467204273930">"Puhelimen suojaaminen"</string> + <string name="lock_intro_message" product="tablet" msgid="8616353869251700776">"Suojaa tablet-laitetta luvattomalta käytöltä luomalla henkilökohtainen näytön lukituksenpoistokuvio. Yhdistä seuraavassa näytössä olevat pisteet sormellasi haluamassasi järjestyksessä. Yhdistä vähintään neljä pistettä. "\n\n"Oletko valmis? Kosketa Seuraava."</string> + <string name="lock_intro_message" product="default" msgid="8393155371327584659">"Suojaa puhelintasi luvattomalta käytöltä luomalla henkilökohtainen näytön lukituksenpoistokuvio. Yhdistä seuraavassa näytössä olevat pisteet (vähintään neljä) sormellasi haluamassasi järjestyksessä."\n\n"Oletko valmis? Kosketa Seuraava."</string> <string name="manageapplications_settings_title" msgid="7041951105633616745">"Hallinnoi sovelluksia"</string> <string name="manageapplications_settings_summary" msgid="1794401500935451259">"Hallinnoi ja poista asennettuja sovelluksia"</string> <string name="applications_settings" msgid="1721442176406964682">"Sovellukset"</string> @@ -1042,7 +1046,7 @@ <string name="storage_label" msgid="8700867073480107253">"Tallennustila"</string> <string name="auto_launch_label" msgid="3012617472833815382">"Käynnistä oletuksena"</string> <string name="auto_launch_label_generic" msgid="3230569852551968694">"Oletukset"</string> - <string name="screen_compatibility_label" msgid="663250687205465394">"Ruudun yhteensopivuus"</string> + <string name="screen_compatibility_label" msgid="663250687205465394">"Näytön yhteensopivuus"</string> <string name="permissions_label" msgid="2605296874922726203">"Käyttöluvat"</string> <string name="cache_header_label" msgid="1877197634162461830">"Välimuisti"</string> <string name="clear_cache_btn_text" msgid="5756314834291116325">"Tyhjennä välimuisti"</string> @@ -1066,7 +1070,7 @@ <string name="always_allow_bind_appwidgets_text" msgid="3368654672141202604">"Olet antanut sovellukselle oikeuden luoda widgetejä ja käyttää niiden tietoja."</string> <string name="auto_launch_disable_text" msgid="7800385822185540166">"Oletuksia ei asetettu."</string> <string name="clear_activities" msgid="7408923511535174430">"Tyhjennä oletukset"</string> - <string name="screen_compatibility_text" msgid="1616155457673106022">"Tätä sovellusta ei välttämättä ole suunniteltu ruudullesi sopivaksi. Voit muuttaa asetuksia täältä."</string> + <string name="screen_compatibility_text" msgid="1616155457673106022">"Tätä sovellusta ei välttämättä ole suunniteltu näytöllesi sopivaksi. Voit muuttaa asetuksia täältä."</string> <string name="ask_compatibility" msgid="7225195569089607846">"Kysy käynnistettäessä"</string> <string name="enable_compatibility" msgid="5806819252068617811">"Muuta sovelluksen kokoa"</string> <string name="unknown" msgid="1592123443519355854">"Tuntematon"</string> @@ -1149,13 +1153,9 @@ <string name="cached" msgid="1059590879740175019">"Välimuistissa oleva taustaprosessi"</string> <string name="no_running_services" msgid="2059536495597645347">"Ei palveluita käynnissä."</string> <string name="service_started_by_app" msgid="818675099014723551">"Käynnistäjäsovellus"</string> - <!-- no translation found for service_client_name (4037193625611815517) --> - <skip /> <string name="service_background_processes" msgid="6844156253576174488">"<xliff:g id="MEMORY">%1$s</xliff:g> vapaa"</string> <string name="service_foreground_processes" msgid="7583975676795574276">"<xliff:g id="MEMORY">%1$s</xliff:g> käyt."</string> <string name="memory" msgid="6609961111091483458">"RAM"</string> - <!-- no translation found for service_process_name (4098932168654826656) --> - <skip /> <string name="running_process_item_user_label" msgid="3129887865552025943">"Käyttäjä: <xliff:g id="USER_NAME">%1$s</xliff:g>"</string> <string name="running_process_item_removed_user_label" msgid="8250168004291472959">"Poistettu käyttäjä"</string> <string name="running_processes_item_description_s_s" msgid="5790575965282023145">"<xliff:g id="NUMPROCESS">%1$d</xliff:g> prosessi ja <xliff:g id="NUMSERVICES">%2$d</xliff:g> palvelu"</string> @@ -1258,7 +1258,7 @@ <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"Näyttönäppäimistön asetukset"</string> <string name="builtin_keyboard_settings_title" msgid="7688732909551116798">"Fyysinen näppäimistö"</string> <string name="builtin_keyboard_settings_summary" msgid="2392531685358035899">"Fyysisen näppäimistön asetukset"</string> - <string name="development_settings_title" msgid="215179176067683667">"Kehittäjävaihtoehdot"</string> + <string name="development_settings_title" msgid="215179176067683667">"Kehittäjäasetukset"</string> <string name="development_settings_summary" msgid="1815795401632854041">"Valitse sovellusten kehittämisasetukset"</string> <string name="enable_adb" msgid="7982306934419797485">"USB-vianetsintä"</string> <string name="enable_adb_summary" msgid="4881186971746056635">"Vianetsintätila USB-liitännän ollessa käytössä"</string> @@ -1297,16 +1297,16 @@ <string name="app_name_label" msgid="5440362857006046193">"Sovellus"</string> <string name="launch_count_label" msgid="4019444833263957024">"Laske"</string> <string name="usage_time_label" msgid="295954901452833058">"Käyttöaika"</string> - <string name="accessibility_settings" msgid="3975902491934816215">"Esteettömyys"</string> + <string name="accessibility_settings" msgid="3975902491934816215">"Helppokäyttöisyys"</string> <string name="accessibility_settings_title" msgid="2130492524656204459">"Esteettömyysasetukset"</string> <string name="accessibility_services_title" msgid="2592221829284342237">"Palvelut"</string> <string name="accessibility_system_title" msgid="7187919089874130484">"Järjestelmä"</string> <string name="accessibility_screen_magnification_title" msgid="7001782548715744981">"Suurennuseleet"</string> - <string name="accessibility_screen_magnification_summary" msgid="2380627654189671754">"Kun tämä ominaisuus on käytössä, voit lähentää ja loitontaa kolmoisnapauttamalla ruutua."\n\n"Lähennetyssä tilassa voit"\n<ul><li>"panoroida vetämällä vähintään kahta sormea ruudun poikki"</li>\n<li>"säätää lähennyksen tasoa nipistämällä vähintään kaksi sormea yhteen tai levittämällä ne erilleen."</li></ul>\n\n"Voit myös suurentaa sormesi alla olevan kohteen väliaikaisesti kolmoisnapauttamalla ja pitämällä viimeisen napautuksen ruudulla. Suurennetussa tilassa voit tutkia ruudun eri osia sormella vetämällä. Nostamalla sormen pääset takaisin edelliseen tilaan."\n\n"Huomaa: suurennus kolmoisnapauttamalla toimii kaikkialla paitsi näppäimistössä ja siirtymispalkissa."</string> + <string name="accessibility_screen_magnification_summary" msgid="2380627654189671754">"Kun tämä ominaisuus on käytössä, voit lähentää ja loitontaa kolmoisnapauttamalla näyttöä."\n\n"Lähennetyssä tilassa voit"\n<ul><li>"panoroida vetämällä vähintään kahta sormea näytön poikki"</li>\n<li>"säätää lähennyksen tasoa nipistämällä vähintään kaksi sormea yhteen tai levittämällä ne erilleen."</li></ul>\n\n"Voit myös suurentaa sormesi alla olevan kohteen väliaikaisesti kolmoisnapauttamalla ja pitämällä viimeisen napautuksen näytöllä. Suurennetussa tilassa voit tutkia näytön eri osia sormella vetämällä. Nostamalla sormen pääset takaisin edelliseen tilaan."\n\n"Huomaa: suurennus kolmoisnapauttamalla toimii kaikkialla paitsi näppäimistössä ja siirtymispalkissa."</string> <string name="accessibility_global_gesture_preference_title" msgid="6752037184140789970">"Esteettömyystilan pikakuvake"</string> <string name="accessibility_global_gesture_preference_summary_on" msgid="6180927399052022181">"Käytössä"</string> <string name="accessibility_global_gesture_preference_summary_off" msgid="8102103337813609849">"Pois käytöstä"</string> - <string name="accessibility_global_gesture_preference_description" msgid="750438015254396963">"Kun tämä ominaisuus on käytössä, voit ottaa esteettömyystoiminnot käyttöön nopeasti kahden vaiheen kautta."\n\n"Vaihe 1: paina virtapainiketta, kunnes kuulet äänen tai tunnet värinän."\n\n"Vaihe 2: kosketa kahdella sormella, kunnes kuulet äänivahvistuksen."\n\n"Jos laitteella on useita käyttäjiä, tämän pikanäppäimen käyttö lukitusruudussa ottaa esteettömyystilan käyttöön väliaikaisesti, kunnes laitteen lukitus poistetaan."</string> + <string name="accessibility_global_gesture_preference_description" msgid="750438015254396963">"Kun tämä ominaisuus on käytössä, voit ottaa esteettömyystoiminnot käyttöön nopeasti kahden vaiheen kautta."\n\n"Vaihe 1: paina virtapainiketta, kunnes kuulet äänen tai tunnet värinän."\n\n"Vaihe 2: kosketa kahdella sormella, kunnes kuulet äänivahvistuksen."\n\n"Jos laitteella on useita käyttäjiä, tämän pikanäppäimen käyttö lukitusnäytössä ottaa esteettömyystilan käyttöön väliaikaisesti, kunnes laitteen lukitus poistetaan."</string> <string name="accessibility_toggle_large_text_preference_title" msgid="6307247527580207161">"Suuri teksti"</string> <string name="accessibility_toggle_screen_magnification_preference_title" msgid="2472285215737820469">"Näytön suurennus"</string> <string name="accessibility_toggle_screen_magnification_auto_update_preference_title" msgid="7218498768415430963">"Päivitä näytön suurennus automaatt."</string> @@ -1342,24 +1342,22 @@ <string name="battery_stats_on_battery" msgid="4970762168505236033">"<xliff:g id="TIME">%1$s</xliff:g> akkuvirralla"</string> <string name="battery_stats_duration" msgid="7464501326709469282">"<xliff:g id="TIME">%1$s</xliff:g> laturin irrottamisen jälkeen"</string> <string name="battery_stats_charging_label" msgid="4223311142875178785">"Ladataan"</string> - <string name="battery_stats_screen_on_label" msgid="7150221809877509708">"Ruutu käytössä"</string> + <string name="battery_stats_screen_on_label" msgid="7150221809877509708">"Näyttö käytössä"</string> <string name="battery_stats_gps_on_label" msgid="1193657533641951256">"GPS käytössä"</string> - <string name="battery_stats_wifi_running_label" msgid="3093545080361658269">"Wifi"</string> + <string name="battery_stats_wifi_running_label" msgid="3093545080361658269">"Wi-Fi"</string> <string name="battery_stats_wake_lock_label" msgid="1908942681902324095">"Käytössä"</string> <string name="battery_stats_phone_signal_label" msgid="4137799310329041341">"Mobiiliverkon signaali"</string> - <!-- no translation found for battery_stats_last_duration (1535831453827905957) --> - <skip /> <string name="awake" msgid="387122265874485088">"Laitteen käytössäoloaika"</string> - <string name="wifi_on_time" msgid="6310209835617490616">"Wifi ajoissa"</string> - <string name="bluetooth_on_time" msgid="6157799524996162271">"Wifi ajoissa"</string> + <string name="wifi_on_time" msgid="6310209835617490616">"Wi-Fi ajoissa"</string> + <string name="bluetooth_on_time" msgid="6157799524996162271">"Wi-Fi ajoissa"</string> <string name="usage_name_percent" msgid="7976919382448235858">"<xliff:g id="NAME">%1$s</xliff:g> - <xliff:g id="NUMBER">%2$s</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string> <string name="history_details_title" msgid="3608240585315506067">"Historiatiedot"</string> <string name="details_title" msgid="3792801565213935385">"Käyttötiedot"</string> <string name="details_subtitle" msgid="32593908269911734">"Käyttötiedot"</string> <string name="controls_subtitle" msgid="390468421138288702">"Säädä virrankäyttöä"</string> <string name="packages_subtitle" msgid="4736416171658062768">"Sisältyvät paketit"</string> - <string name="power_screen" msgid="3023346080675904613">"Ruutu"</string> - <string name="power_wifi" msgid="2382791137776486974">"Wifi"</string> + <string name="power_screen" msgid="3023346080675904613">"Näyttö"</string> + <string name="power_wifi" msgid="2382791137776486974">"Wi-Fi"</string> <string name="power_bluetooth" msgid="4373329044379008289">"Bluetooth"</string> <string name="power_cell" msgid="6596471490976003056">"Kennot virransäästötilassa"</string> <string name="power_phone" msgid="5392641106474567277">"Äänipuhelut"</string> @@ -1369,7 +1367,7 @@ <string name="usage_type_cpu_foreground" msgid="6500579611933211831">"Suorittimen käyttö etualalla"</string> <string name="usage_type_wake_lock" msgid="5125438890233677880">"Ei virransäästötilaa"</string> <string name="usage_type_gps" msgid="7989688715128160790">"GPS"</string> - <string name="usage_type_wifi_running" msgid="8234997940652067049">"Wifi käytössä"</string> + <string name="usage_type_wifi_running" msgid="8234997940652067049">"Wi-Fi käytössä"</string> <string name="usage_type_phone" product="tablet" msgid="262638572890253393">"Tablet"</string> <string name="usage_type_phone" product="default" msgid="9108247984998041853">"Puhelin"</string> <string name="usage_type_data_send" msgid="2857401966985425427">"Tiedot lähetetty"</string> @@ -1381,8 +1379,8 @@ <string name="battery_action_stop" msgid="649958863744041872">"Pakota lopetus"</string> <string name="battery_action_app_details" msgid="7861051816778419018">"Sovelluksen tiedot"</string> <string name="battery_action_app_settings" msgid="4570481408106287454">"Sovellusasetukset"</string> - <string name="battery_action_display" msgid="7338551244519110831">"Ruudun asetukset"</string> - <string name="battery_action_wifi" msgid="2272741639606146903">"Wifi-asetukset"</string> + <string name="battery_action_display" msgid="7338551244519110831">"Näytön asetukset"</string> + <string name="battery_action_wifi" msgid="2272741639606146903">"Wi-Fi-asetukset"</string> <string name="battery_action_bluetooth" msgid="8374789049507723142">"Bluetooth-asetukset"</string> <string name="battery_desc_voice" msgid="8980322055722959211">"Äänipuhelujen käyttämä akku"</string> <string name="battery_desc_standby" product="tablet" msgid="6284747418668280364">"Käytetty akun virta tablet-laitteen ollessa pois käytöstä"</string> @@ -1391,8 +1389,8 @@ <string name="battery_sugg_radio" msgid="8211336978326295047">"Vaihda lentokonetilaan säästääksesi akkua ollessasi katvealueella."</string> <string name="battery_desc_display" msgid="5432795282958076557">"Näytön ja taustavalon käyttämä akku"</string> <string name="battery_sugg_display" msgid="3370202402045141760">"Vähennä näytön kirkkautta ja/tai näytön sammumista"</string> - <string name="battery_desc_wifi" msgid="1702486494565080431">"Wifi-yhteyden käyttämä akku"</string> - <string name="battery_sugg_wifi" msgid="2085605314976704287">"Poista wifi käytöstä, kun sitä ei käytetä tai kun yhteys ei ole käytettävissä."</string> + <string name="battery_desc_wifi" msgid="1702486494565080431">"Wi-Fi-yhteyden käyttämä akku"</string> + <string name="battery_sugg_wifi" msgid="2085605314976704287">"Poista Wi-Fi käytöstä, kun sitä ei käytetä tai kun yhteys ei ole käytettävissä."</string> <string name="battery_desc_bluetooth" msgid="8069070756186680367">"Bluetooth-yhteyden käyttämä akun virta"</string> <string name="battery_sugg_bluetooth_basic" msgid="1942935021750897422">"Poista Bluetooth-yhteys käytöstä, kun et käytä sitä."</string> <string name="battery_sugg_bluetooth_headset" msgid="4071352514714259230">"Yritä yhdistää eri Bluetooth-laitteeseen."</string> @@ -1455,14 +1453,14 @@ <string name="tts_engine_preference_section_title" msgid="448294500990971413">"Ensisijainen moottori"</string> <string name="tts_general_section_title" msgid="4402572014604490502">"Yleiset"</string> <string name="gadget_title" msgid="5519037532720577836">"Virranhallinta"</string> - <string name="gadget_toggle_wifi" msgid="2382963973155082629">"Päivitetään wifi-asetuksia"</string> + <string name="gadget_toggle_wifi" msgid="2382963973155082629">"Päivitetään Wi-Fi-asetuksia"</string> <string name="gadget_toggle_bluetooth" msgid="7538903239807020826">"Päivitetään Bluetooth-asetuksia"</string> <string name="gadget_state_template" msgid="5156935629902649932">"<xliff:g id="ID_1">%1$s</xliff:g> <xliff:g id="ID_2">%2$s</xliff:g>"</string> <string name="gadget_state_on" msgid="6909119593004937688">"käytössä"</string> <string name="gadget_state_off" msgid="5220212352953066317">"pois käytöstä"</string> <string name="gadget_state_turning_on" msgid="3395992057029439039">"otetaan käyttöön"</string> <string name="gadget_state_turning_off" msgid="2395546048102176157">"poistetaan käytöstä"</string> - <string name="gadget_wifi" msgid="5960290421313061434">"Wifi"</string> + <string name="gadget_wifi" msgid="5960290421313061434">"Wi-Fi"</string> <string name="gadget_bluetooth" msgid="8998572807378694410">"Bluetooth"</string> <string name="gadget_gps" msgid="1558173602059236567">"GPS"</string> <string name="gadget_sync" msgid="858895763714222152">"Synkronointi"</string> @@ -1494,7 +1492,7 @@ <string name="credentials_erased" msgid="2907836028586342969">"Käyttöoikeustietojen tallennustila on tyhjennetty."</string> <string name="credentials_not_erased" msgid="93461830775441220">"Käyttöoik.tiet. ei poistettu."</string> <string name="credentials_enabled" msgid="7588607413349978930">"Käyttöoikeustietojen tallentaminen on käytössä."</string> - <string name="credentials_configure_lock_screen_hint" msgid="6757119179588664966">"Ruudunlukituksen PIN-koodi tai salasana on asetettava ennen kuin käyttöoikeustietojen tallennustilaa voi käyttää."</string> + <string name="credentials_configure_lock_screen_hint" msgid="6757119179588664966">"Näytönlukituksen PIN-koodi tai salasana on asetettava ennen kuin käyttöoikeustietojen tallennustilaa voi käyttää."</string> <string name="emergency_tone_title" msgid="1055954530111587114">"Hätäpuhelun ääni"</string> <string name="emergency_tone_summary" msgid="722259232924572153">"Aseta toiminta hätäpuhelun tapauksessa"</string> <string name="privacy_settings" msgid="5446972770562918934">"Varmuuskopioi ja palauta"</string> @@ -1502,7 +1500,7 @@ <string name="backup_section_title" msgid="7952232291452882740">"Varmuuskopiointi & palautus"</string> <string name="personal_data_section_title" msgid="7815209034443782061">"Henkilötiedot"</string> <string name="backup_data_title" msgid="1239105919852668016">"Varmuuskopioi tiedot"</string> - <string name="backup_data_summary" msgid="9157861529438245957">"Varmuuskopioi sovelluksen tiedot, wifi-salasanat ja muut asetukset Googlen palvelimille."</string> + <string name="backup_data_summary" msgid="9157861529438245957">"Varmuuskopioi sovelluksen tiedot, Wi-Fi-salasanat ja muut asetukset Googlen palvelimille."</string> <string name="backup_configure_account_title" msgid="3790872965773196615">"Varmuuskopiotili"</string> <string name="backup_configure_account_default_summary" msgid="2436933224764745553">"Mikään tili ei tällä hetkellä tallenna varmuuskopioituja tietoja"</string> <string name="auto_restore_title" msgid="5397528966329126506">"Automaattinen palauttaminen"</string> @@ -1514,7 +1512,7 @@ <string name="local_backup_password_toast_confirmation_mismatch" msgid="3495167398824569524">"Uusi salasana ja vahvistus eivät täsmää"</string> <string name="local_backup_password_toast_validation_failure" msgid="5646377234895626531">"Varasalasanan asetus epäonnistui"</string> <string name="backup_erase_dialog_title" msgid="1027640829482174106"></string> - <string name="backup_erase_dialog_message" msgid="7218566008912418809">"Haluatko lopettaa wifi-salasanojen, kirjanmerkkien, muiden asetuksien ja sovellustietojen varmuuskopioinnin ja poistaa kaikki kopiot Googlen palvelimilta?"</string> + <string name="backup_erase_dialog_message" msgid="7218566008912418809">"Haluatko lopettaa Wi-Fi-salasanojen, kirjanmerkkien, muiden asetuksien ja sovellustietojen varmuuskopioinnin ja poistaa kaikki kopiot Googlen palvelimilta?"</string> <string name="device_admin_settings_title" msgid="1335557832906433309">"Laitteen järjestelmänvalvoja-asetukset"</string> <string name="active_device_admin_msg" msgid="6930903262612422111">"Laitteen järjestelmänvalvoja"</string> <string name="remove_device_admin" msgid="3596845261596451437">"Poista käytöstä"</string> @@ -1530,10 +1528,10 @@ <string name="sound_category_notification_title" msgid="3502115998790286943">"Ilmoitukset"</string> <string name="sound_category_call_ringtone_vibrate_title" msgid="1543777228646645163">"Soittoääni ja värinä"</string> <string name="sound_category_system_title" msgid="1480844520622721141">"Järjestelmä"</string> - <string name="wifi_setup_title" msgid="661074868726906436">"Wifi-asetukset"</string> - <string name="wifi_setup_title_editing_network" msgid="7304321031985059969">"Yhdistä wifi-verkkoon <xliff:g id="NETWORK_NAME">%s</xliff:g>"</string> - <string name="wifi_setup_title_connecting_network" msgid="3747859666621319757">"Yhdistetään wifi-verkkoon <xliff:g id="NETWORK_NAME">%s</xliff:g>..."</string> - <string name="wifi_setup_title_connected_network" msgid="209755856836003839">"Yhdistetty wifi-verkkoon <xliff:g id="NETWORK_NAME">%s</xliff:g>"</string> + <string name="wifi_setup_title" msgid="661074868726906436">"Wi-Fi-asetukset"</string> + <string name="wifi_setup_title_editing_network" msgid="7304321031985059969">"Yhdistä Wi-Fi-verkkoon <xliff:g id="NETWORK_NAME">%s</xliff:g>"</string> + <string name="wifi_setup_title_connecting_network" msgid="3747859666621319757">"Yhdistetään Wi-Fi-verkkoon <xliff:g id="NETWORK_NAME">%s</xliff:g>..."</string> + <string name="wifi_setup_title_connected_network" msgid="209755856836003839">"Yhdistetty Wi-Fi-verkkoon <xliff:g id="NETWORK_NAME">%s</xliff:g>"</string> <string name="wifi_setup_title_add_network" msgid="6932651000151032301">"Lisää verkko"</string> <string name="wifi_setup_not_connected" msgid="6997432604664057052">"Ei yhdistetty"</string> <string name="wifi_setup_add_network" msgid="5939624680150051807">"Lisää verkko"</string> @@ -1555,9 +1553,9 @@ <string name="wifi_setup_status_connecting" msgid="4971421484401530740">"Yhdistetään…"</string> <string name="wifi_setup_status_proceed_to_next" msgid="6708250000342940031">"Siirry seuraavaan vaiheeseen"</string> <string name="wifi_setup_status_eap_not_supported" msgid="5335338851032315905">"EAP ei ole tuettu."</string> - <string name="wifi_setup_eap_not_supported" msgid="595556546597351489">"Et voi määrittää EAP wifi -yhteyttä asennuksen aikana. Voit määrittää yhteyden asennuksen jälkeen kohdassa Asetukset > Langaton verkko ja verkot."</string> + <string name="wifi_setup_eap_not_supported" msgid="595556546597351489">"Et voi määrittää EAP Wi-Fi -yhteyttä asennuksen aikana. Voit määrittää yhteyden asennuksen jälkeen kohdassa Asetukset > Langaton verkko ja verkot."</string> <string name="wifi_setup_description_connecting" msgid="2793554932006756795">"Yhteyden muodostaminen voi kestää muutaman minuutin..."</string> - <string name="wifi_setup_description_connected" msgid="5235991893829582459">"Jatka asetuksien määrittämistä koskettamalla "<b>"Seuraava"</b>"."\n\n"Muodosta yhteys eri wifi-verkkoon koskettamalla "<b>"Takaisin"</b>"."</string> + <string name="wifi_setup_description_connected" msgid="5235991893829582459">"Jatka asetuksien määrittämistä koskettamalla "<b>"Seuraava"</b>"."\n\n"Muodosta yhteys eri Wi-Fi-verkkoon koskettamalla "<b>"Takaisin"</b>"."</string> <string name="accessibility_sync_enabled" msgid="558480439730263116">"Synkronointi käytössä"</string> <string name="accessibility_sync_disabled" msgid="1741194106479011384">"Synkronointi pois käytöstä"</string> <string name="accessibility_sync_error" msgid="8703299118794272041">"Synkronointivirhe."</string> @@ -1599,8 +1597,6 @@ <string name="remove_account_failed" product="tablet" msgid="3086620478225952725">"Jotkut sovellukset käyttävät tätä tiliä. Voit poistaa tilin vain palauttamalla tablet-laitteeseen tehdasasetukset (tällöin kaikki henkilökohtaistet tietosi poistetaan) kohdassa Asetukset > Varmuuskopiointi & palautus."</string> <string name="remove_account_failed" product="default" msgid="6217238709175617517">"Jotkut sovellukset käyttävät tätä tiliä. Voit poistaa tilin vain palauttamalla puhelimeen tehdasasetukset (tällöin kaikki henkilökohtaistet tietosi poistetaan) kohdassa Asetukset > Varmuuskopiointi & palautus."</string> <string name="provider_label" msgid="7724593781904508866">"Push-tilaukset"</string> - <!-- no translation found for sync_item_title (4782834606909853006) --> - <skip /> <string name="cant_sync_dialog_title" msgid="8923508322291625282">"Manuaalinen synkronointi epäonnistui"</string> <string name="cant_sync_dialog_message" msgid="1938380442159016449">"Tämän kohteen synkronointi on tällä hetkellä pois käytöstä. Voit muuttaa asetuksia ottamalla taustatiedot ja automaattisen synkronoinnin väliaikaisesti käyttöön."</string> <string name="wimax_settings" msgid="1574837328738396794">"4G-asetukset"</string> @@ -1629,7 +1625,7 @@ <string name="strict_mode" msgid="1938795874357830695">"Tiukka tila käytössä"</string> <string name="strict_mode_summary" msgid="142834318897332338">"Vilkuta näyttöä sovellusten tehdessä pitkiä toimia"</string> <string name="pointer_location" msgid="6084434787496938001">"Osoittimen sijainti"</string> - <string name="pointer_location_summary" msgid="840819275172753713">"Ruudun peittokuva näyttää nykyiset kosketustiedot"</string> + <string name="pointer_location_summary" msgid="840819275172753713">"Näytön peittokuva näyttää nykyiset kosketustiedot"</string> <string name="show_touches" msgid="1356420386500834339">"Näytä kosketukset"</string> <string name="show_touches_summary" msgid="6684407913145150041">"Näytä kosketukset visuaalisesti"</string> <string name="show_screen_updates" msgid="5470814345876056420">"Näytä pintapäivitykset"</string> @@ -1641,7 +1637,7 @@ <string name="show_hw_overdraw" msgid="1136884304711318251">"Näytä GPU-ylitys"</string> <string name="show_hw_overdraw_summary" msgid="4295714000923082647">"Paras -> huonoin: sin., vihr., vaal.pun., pun."</string> <string name="disable_overlays" msgid="2074488440505934665">"Poista HW-peittok. käyt."</string> - <string name="disable_overlays_summary" msgid="3578941133710758592">"Käytä GPU:ta ruudun koostamiseen"</string> + <string name="disable_overlays_summary" msgid="3578941133710758592">"Käytä GPU:ta näytön koostamiseen"</string> <string name="enable_traces_title" msgid="7448835465859512430">"Ota jäljitys käyttöön"</string> <string name="enable_traces_dialog_title" msgid="5026490474669452929">"Valitse käytettävät jälj."</string> <string name="enable_traces_summary_none" msgid="1867562808503494163">"Jäljityksiä ei käytössä"</string> @@ -1668,12 +1664,12 @@ <string name="app_process_limit_title" msgid="4280600650253107163">"Taustapros. enintään"</string> <string name="show_all_anrs" msgid="28462979638729082">"Näytä kaikki ANR:t"</string> <string name="show_all_anrs_summary" msgid="641908614413544127">"Näytä Sovellus ei vastaa -ikkuna taustasovell."</string> - <string name="data_usage_summary_title" msgid="3804110657238092929">"Tietojen käyttö"</string> + <string name="data_usage_summary_title" msgid="3804110657238092929">"Datan käyttö"</string> <string name="data_usage_cycle" msgid="5652529796195787949">"Tiedonsiirtojakso"</string> <string name="data_usage_menu_roaming" msgid="8042359966835203296">"Verkkoyhteys roaming-tilassa"</string> <string name="data_usage_menu_restrict_background" msgid="1989394568592253331">"Taustatiedonsiirr. rajoittaminen"</string> <string name="data_usage_menu_split_4g" msgid="5322857680792601899">"Erittele 4G-tiedonsiirto"</string> - <string name="data_usage_menu_show_wifi" msgid="8266875319417201085">"Näytä wifi-tiedonsiirto"</string> + <string name="data_usage_menu_show_wifi" msgid="8266875319417201085">"Näytä Wi-Fi-tiedonsiirto"</string> <string name="data_usage_menu_show_ethernet" msgid="5181361208532314097">"Näytä Ethernet-käyttö"</string> <string name="data_usage_menu_metered" msgid="5056695223222541863">"Mobiiliyhteyden hotspotit"</string> <string name="data_usage_menu_auto_sync" msgid="8203999775948778560">"Tietojen automaattinen synkronointi"</string> @@ -1687,8 +1683,8 @@ <string name="data_usage_disable_mobile_limit" msgid="4644364396844393848">"Aseta mobiilitiedonsiirtoraja"</string> <string name="data_usage_disable_4g_limit" msgid="6233554774946681175">"Aseta 4G-tiedonsiirtoraja"</string> <string name="data_usage_disable_3g_limit" msgid="2558557840444266906">"Aseta 2G-3G-tiedonsiirtoraja"</string> - <string name="data_usage_disable_wifi_limit" msgid="8575537650560665657">"Aseta wifi-tiedonsiirtoraja"</string> - <string name="data_usage_tab_wifi" msgid="1728851922959017766">"Wifi"</string> + <string name="data_usage_disable_wifi_limit" msgid="8575537650560665657">"Aseta Wi-Fi-tiedonsiirtoraja"</string> + <string name="data_usage_tab_wifi" msgid="1728851922959017766">"Wi-Fi"</string> <string name="data_usage_tab_ethernet" msgid="7298064366282319911">"Ethernet"</string> <string name="data_usage_tab_mobile" msgid="454140350007299045">"Mobiili"</string> <string name="data_usage_tab_4g" msgid="1301978716067512235">"4G"</string> @@ -1700,7 +1696,7 @@ <string name="data_usage_enable_4g" msgid="3635854097335036738">"4G-tiedonsiirto"</string> <string name="data_usage_app_settings" msgid="8430240158135453271">"Näytä sovellusasetukset"</string> <string name="data_usage_app_restrict_background" msgid="9149728936265100841">"Taustatiedonsiirr. rajoittaminen"</string> - <string name="data_usage_app_restrict_background_summary" msgid="518658001418490405">"Ei taustatiedons. mobiiliverkossa. Käytä wifiä, jos mahdollista."</string> + <string name="data_usage_app_restrict_background_summary" msgid="518658001418490405">"Ei taustatiedons. mobiiliverkossa. Käytä Wi-Fiä, jos mahdollista."</string> <string name="data_usage_app_restrict_background_summary_disabled" msgid="7401927377070755054">"Aseta mobiilitiedonsiirtoraja sov. taustatiedonsiirron rajoittamiseksi"</string> <string name="data_usage_app_restrict_dialog_title" msgid="1613108390242737923">"Rajoitetaanko taustatiedonsiirtoa?"</string> <string name="data_usage_app_restrict_dialog" msgid="1466689968707308512">"Toiminto saattaa estää taustatiedonsiirrosta riippuvaisten sovellusten toiminnan, jos käytettävissä on vain mobiiliverkkoja."\n\n"Voit säätää tiedonsiirron asetuksia tarkemmin sovelluksessa."</string> @@ -1719,9 +1715,9 @@ <string name="data_usage_limit_dialog_mobile" product="tablet" msgid="3893348029612821262">"Mobiiliyhteytesi poistetaan käytöstä, jos määritetty tiedonsiirtoraja saavutetaan."\n\n"Tablet-laite mittaa tiedonsiirron. Operaattorisi voi kuitenkin käyttää eri mittaustapaa, joten suosittelemme määrittämään rajan todellista käyttöä tiukemmaksi."</string> <string name="data_usage_limit_dialog_mobile" product="default" msgid="7962145861903746827">"Mobiiliyhteytesi poistetaan käytöstä, jos määritetty tiedonsiirtoraja saavutetaan."\n\n"Puhelin mittaa tiedonsiirron. Operaattorisi voi kuitenkin käyttää eri mittaustapaa, joten suosittelemme määrittämään rajan todellista käyttöä tiukemmaksi."</string> <string name="data_usage_restrict_background_title" msgid="2201315502223035062">"Rajoitetaanko taustatiedonsiirtoa?"</string> - <string name="data_usage_restrict_background" msgid="6387252645350792955">"Jos rajoitat taustalla tapahtuvaa mobiilitiedonsiirtoa, jotkin sovellukset ja palvelut eivät toimi, ellei wifi-verkko ole käytettävissä."</string> - <string name="data_usage_restrict_background_multiuser" product="tablet" msgid="2609163428726042269">"Jos rajoitat taustalla tapahtuvaa mobiilitiedonsiirtoa, jotkin sovellukset ja palvelut eivät toimi, ellet ole yhteydessä wifi-verkkoon."\n\n"Tämä asetus vaikuttaa kaikkiin tämän tablet-laitteen käyttäjiin."</string> - <string name="data_usage_restrict_background_multiuser" product="default" msgid="8025473178302056174">"Jos rajoitat taustalla tapahtuvaa mobiilitiedonsiirtoa, jotkin sovellukset ja palvelut eivät toimi, ellet ole yhteydessä wifi-verkkoon."\n\n"Tämä asetus vaikuttaa kaikkiin tämän puhelimen käyttäjiin."</string> + <string name="data_usage_restrict_background" msgid="6387252645350792955">"Jos rajoitat taustalla tapahtuvaa mobiilitiedonsiirtoa, jotkin sovellukset ja palvelut eivät toimi, ellei Wi-Fi-verkko ole käytettävissä."</string> + <string name="data_usage_restrict_background_multiuser" product="tablet" msgid="2609163428726042269">"Jos rajoitat taustalla tapahtuvaa mobiilitiedonsiirtoa, jotkin sovellukset ja palvelut eivät toimi, ellet ole yhteydessä Wi-Fi-verkkoon."\n\n"Tämä asetus vaikuttaa kaikkiin tämän tablet-laitteen käyttäjiin."</string> + <string name="data_usage_restrict_background_multiuser" product="default" msgid="8025473178302056174">"Jos rajoitat taustalla tapahtuvaa mobiilitiedonsiirtoa, jotkin sovellukset ja palvelut eivät toimi, ellet ole yhteydessä Wi-Fi-verkkoon."\n\n"Tämä asetus vaikuttaa kaikkiin tämän puhelimen käyttäjiin."</string> <string name="data_usage_sweep_warning" msgid="6387081852568846982"><font size="21">"<xliff:g id="NUMBER">^1</xliff:g>"</font>" "<font size="9">"<xliff:g id="UNIT">^2</xliff:g>"</font>\n<font size="12">"varoitus"</font></string> <string name="data_usage_sweep_limit" msgid="860566507375933039"><font size="21">"<xliff:g id="NUMBER">^1</xliff:g>"</font><font size="9">"<xliff:g id="UNIT">^2</xliff:g>"</font>\n<font size="12">"rajoitus"</font></string> <string name="data_usage_uninstalled_apps" msgid="614263770923231598">"Poistetut sovellukset"</string> @@ -1731,10 +1727,10 @@ <string name="data_usage_total_during_range_mobile" product="tablet" msgid="5961720793603268572">"<xliff:g id="RANGE">%2$s</xliff:g>: n. <xliff:g id="TOTAL">%1$s</xliff:g> käytetty tablet-laitteen mukaan. Operaattorin mittaustulos voi erota tästä."</string> <string name="data_usage_total_during_range_mobile" product="default" msgid="1625833170144610767">"<xliff:g id="RANGE">%2$s</xliff:g>: n. <xliff:g id="TOTAL">%1$s</xliff:g> käytetty puhelimen mukaan. Operaattorin mittaustulos voi erota tästä."</string> <string name="data_usage_metered_title" msgid="6204750602856383278">"Mobiiliyhteyden hotspotit"</string> - <string name="data_usage_metered_body" msgid="2446827764036316131">"Valitse wifi-verkot, joita käytetään mobiiliyhteyden hotspotteina. Sovelluksia voidaan kieltää käyttämästä näitä verkkoja niiden toimiessa taustalla. Sovellukset voivat myös näyttää varoituksen ennen suurien tiedostojen lataamista näiden verkkojen kautta."</string> + <string name="data_usage_metered_body" msgid="2446827764036316131">"Valitse Wi-Fi-verkot, joita käytetään mobiiliyhteyden hotspotteina. Sovelluksia voidaan kieltää käyttämästä näitä verkkoja niiden toimiessa taustalla. Sovellukset voivat myös näyttää varoituksen ennen suurien tiedostojen lataamista näiden verkkojen kautta."</string> <string name="data_usage_metered_mobile" msgid="5423305619126978393">"Mobiiliverkot"</string> - <string name="data_usage_metered_wifi" msgid="4151511616349458705">"Wifi-verkot"</string> - <string name="data_usage_metered_wifi_disabled" msgid="7566012564261138417">"Ota wifi käyttöön valitaksesi mobiiliyhteyden hotspotteja."</string> + <string name="data_usage_metered_wifi" msgid="4151511616349458705">"Wi-Fi-verkot"</string> + <string name="data_usage_metered_wifi_disabled" msgid="7566012564261138417">"Ota Wi-Fi käyttöön valitaksesi mobiiliyhteyden hotspotteja."</string> <string name="cryptkeeper_emergency_call" msgid="198578731586097145">"Hätäpuhelu"</string> <string name="cryptkeeper_return_to_call" msgid="5613717339452772491">"Palaa puheluun"</string> <string name="vpn_name" msgid="4689699885361002297">"Nimi"</string> @@ -1801,7 +1797,7 @@ <string name="user_owner" msgid="3879126011135546571">"Omistaja"</string> <string name="user_nickname" msgid="5148818000228994488">"Lempinimi"</string> <string name="user_add_user_title" msgid="3961861593718285403">"Lisää uusi käyttäjä"</string> - <string name="user_add_user_message_long" msgid="2278524063301283723">"Voit jakaa tämän laitteen muiden kanssa luomalla uusia käyttäjiä. Jokaisella käyttäjällä on oma tila, johon he voivat lisätä omia sovelluksiaan, taustakuvan ynnä muuta. Käyttäjät voivat myös muokata kaikkiin käyttäjiin vaikuttavia tablet-laitteen asetuksia, kuten wifi-yhteysasetuksia."\n\n"Kun luot uuden käyttäjän, hänen täytyy määrittää omat asetuksensa."\n\n"Kaikki käyttäjät voivat hyväksyä päivitettyjä sovelluksien lupia muiden käyttäjien puolesta."</string> + <string name="user_add_user_message_long" msgid="2278524063301283723">"Voit jakaa tämän laitteen muiden kanssa luomalla uusia käyttäjiä. Jokaisella käyttäjällä on oma tila, johon he voivat lisätä omia sovelluksiaan, taustakuvan ynnä muuta. Käyttäjät voivat myös muokata kaikkiin käyttäjiin vaikuttavia tablet-laitteen asetuksia, kuten Wi-Fi-yhteysasetuksia."\n\n"Kun luot uuden käyttäjän, hänen täytyy määrittää omat asetuksensa."\n\n"Kaikki käyttäjät voivat hyväksyä päivitettyjä sovelluksien lupia muiden käyttäjien puolesta."</string> <string name="user_add_user_message_short" msgid="3310933423737035428">"Kun luot uuden käyttäjän, hänen täytyy määrittää omat asetuksensa."\n\n"Kaikki käyttäjät voivat hyväksyä päivitettyjä sovelluksien lupia muiden käyttäjien puolesta."</string> <string name="user_setup_dialog_title" msgid="1765794166801864563">"Määritetäänkö käyttäjän asetukset nyt?"</string> <string name="user_setup_dialog_message" msgid="614037943337008555">"Varmista, että tämä henkilö voi ottaa tablet-laitteen käyttöönsä, ja määritä hänen tilansa asetukset"</string> @@ -1830,4 +1826,506 @@ <string name="user_picture_title" msgid="7297782792000291692">"Kuvatunnus"</string> <string name="cell_broadcast_settings" msgid="8415582011920085222">"Cell Broadcast -lähetykset"</string> <string name="cell_broadcast_settings_summary" msgid="3301339398950905913">"Valitse näytettävät hätäilmoitukset."</string> + <string name="root_access">Root-oikeudet</string> + <string name="root_access_warning_title">Ota root-oikeudet käyttöön?</string> + <string name="root_access_warning_message">Root-oikeuksien käyttöönotto on vaarallista ja voi vahingoittaa laitettasi!</string> + <string name="root_access_none">Pois käytöstä</string> + <string name="root_access_apps">Vain sovellukset</string> + <string name="root_access_adb">Vain ADB</string> + <string name="root_access_all">Sovellukset ja ADB</string> + <!-- CYANOGENMOD EDITS START --> + <string name="ok">OK</string> + <string name="quiet_hours_title">Hiljaisuusaika</string> + <string name="quiet_hours_summary">Tarkastele tai vaihda aikoja, jolloin haluat puhelimen olevan äänetön</string> + <string name="quiet_hours_note_title">Huomautus</string> + <string name="quiet_hours_note_summary">Saapuvat puhelut käyttäytyvät normaalisti hiljaisuudesta riippumatta</string> + <string name="quiet_hours_enabled">Hiljaisuusaika</string> + <string name="quiet_hours_enabled_on">Hiljaisuusaika otettu käyttöön</string> + <string name="quiet_hours_enabled_off">Ilmoitukset toimivat normaalisti</string> + <string name="quiet_hours_start">Hiljaisuusajan alku</string> + <string name="quiet_hours_start_summary">Milloin hiljaisuusaika alkaa</string> + <string name="quiet_hours_end">Hiljaisuusajan loppu</string> + <string name="quiet_hours_end_summary">Milloin hiljaisuusaika päättyy</string> + <string name="quiet_hours_mute">Äänettömät ilmoitukset</string> + <string name="quiet_hours_mute_on">Äänet pois päältä</string> + <string name="quiet_hours_mute_off">Äänet kuuluvat normaalisti</string> + <string name="quiet_hours_still">Estä värinä</string> + <string name="quiet_hours_still_on">Puhelin ei värise</string> + <string name="quiet_hours_still_off">Puhelin värisee normaalisti</string> + <string name="quiet_hours_dim">Estä ilmoitusvalo</string> + <string name="quiet_hours_dim_on">Ilmoituksen merkkivalo ei ole päällä</string> + <string name="quiet_hours_dim_off">Ilmoituksen merkkivalo palaa normaalisti</string> + <string name="quiet_hours_haptic">Estä haptinen palaute</string> + <string name="quiet_hours_haptic_on">Haptinen palaute on pois päältä</string> + <string name="quiet_hours_haptic_off">Haptinen palaute toimii normaalisti</string> + <string name="quiet_hours_active_from">Aktiivisena tästä</string> + <string name="quiet_hours_active_to">tähän</string> + <string name="start_time_title">Alkaa</string> + <string name="end_time_title">Loppuu</string> + <string name="device_hostname">Laitteen verkkonimi</string> + <string name="mod_version">CyanogenMod-versio</string> + <string name="mod_version_default">Tuntematon</string> + <string name="build_date">Luontipäivä</string> + <string name="build_date_default">2012-01-01-0000</string> + <string name="cpu_info">Prosessori</string> + <string name="mem_info">Muisti</string> + <string name="anonymous_statistics_title">CyanogenMod-tilastointi</string> + <string name="anonymous_statistics_summary">Auta tekemään CyanogenModista parempi tarjoamalla anonyymejä tilastoraportteja</string> + <string name="anonymous_statistics_warning_title">Tietoja</string> + <string name="anonymous_statistics_warning">CyanogenMod-tilastojen käyttöönotto sallii anonyymien tietojen lähettämisen CyanogenModin kehittäjille, jotta laitteiden järjestelmäasennuksia voidaan seurata. Informaatio sisältää uniikin tunnisteen, joka ei sisällä henkilökohtaisia tietojasi. Tietoa lähetetään jokaisella uudelleenkäynnistyskerralla.\n\nValitse Esikatsele tietoja nähdäksesi, minkälaisia tietoja laitteestasi lähetetään.</string> + <string name="enable_reporting_title">Ota lähettäminen käyttöön</string> + <string name="preview_data_title">Esikatsele tietoja</string> + <string name="preview_data_summary">%s</string> + <string name="view_stats_title">Näytä tilastot</string> + <string name="anonymous_learn_more">Lue lisää</string> + <string name="anonymous_notification_desc">Salli tai estä CyanogenMod-tilastointi</string> + <string name="preview_id_title">Uniikki tunniste</string> + <string name="preview_device_title">Laite</string> + <string name="preview_version_title">Versio</string> + <string name="preview_country_title">Valtio</string> + <string name="preview_carrier_title">Operaattori</string> + <string name="header_category_interface">KÄYTTÖLIITTYMÄ</string> + <string name="launcher_settings_title">Launcher</string> + <string name="themes_settings_title">Teemat</string> + <string name="system_settings_title">Järjestelmä</string> + <string name="system_interface_title">Järjestelmän ulkoasu</string> + <string name="notification_drawer_title">Ilmoitusvalikko</string> + <string name="lock_screen_title">Lukitusnäyttö</string> + <string name="lockscreen_target_info">Liu\'uta valitsin kohdalle valitaksesi pikakuvakkeen</string> + <string name="lockscreen_target_title">Lukitusnäytön pikakuvakkeet</string> + <string name="lockscreen_target_summary">Katso tai muokkaa omia lukitusnäytön pikakuvakkeita</string> + <string name="lockscreen_target_reset">Nollaa pikakuvakkeet oletuksiin</string> + <string name="lockscreen_target_save">Lukitusnäytön pikakuvakkeet tallennettu</string> + <string name="lockscreen_target_reset_title">Nollaa</string> + <string name="lockscreen_target_reset_message">Poista kaikki käyttäjän luomat pikakuvakkeet ja palauta oletukset?</string> + <string name="lockscreen_target_empty">Tyhjä</string> + <string name="lockscreen_target_edit_title">Muokkaa pikakuvaketta ja ikonia</string> + <string name="lockscreen_target_edit_msg">Valitse tai muokkaa valittua sovellusta tai aktiviteettia ja sen ikonia</string> + <string name="lockscreen_vibrate_enabled_title">Värinä</string> + <string name="lockscreen_vibrate_enabled_head">Värinä lukitusta poistettaessa</string> + <string name="lockscreen_battery_status_title">Akun tila</string> + <string name="lockscreen_battery_status_charging">Vain ladattaessa</string> + <string name="lockscreen_battery_status_alwayson">Aina</string> + <string name="profiles_settings_title">Profiilit</string> + <string name="profiles_general_title">Yleiset</string> + <string name="profiles_add">Lisää</string> + <string name="profile_menu_delete">Poista</string> + <string name="profile_settings_title">Profiili</string> + <string name="profile_empty_list_profiles_off">Muuttaaksesi ja käyttääksesi järjestelmäprofiileja, ota Profiilit käyttöön.</string> + <string name="add_profile_dialog_title">Luo uusi profiili</string> + <string name="profile_name_title">Nimi</string> + <string name="profile_profile_name_prompt">Syötä uuden profiilin nimi</string> + <string name="menu_new_profile">Uusi profiili</string> + <string name="menu_new_profile_summary">Hallinnoi uutta profiili</string> + <string name="new_profile_name"><uusi profiili></string> + <string name="rename_dialog_title">Uudelleennimeä</string> + <string name="rename_dialog_message">Syötä uusi nimi</string> + <string name="duplicate_profile_name">Profiilin nimi on jo käytössä!</string> + <string name="duplicate_appgroup_name">Sovellusryhmän nimi on jo käytössä!</string> + <string name="profile_reset_title">Nollaa</string> + <string name="profile_reset_message">Poista kaikki käyttäjän tekemät profiilit ja sovellusryhmät ja palauta ne oletuksiinsa?</string> + <string name="profile_delete_confirm">Poista tämä profiili?</string> + <string name="profile_app_delete_confirm">Poista tämä sovellus?</string> + <string name="profile_cannot_delete">Aktiivista profiilia ei voi poistaa</string> + <string name="profile_connectionoverrides_title">Yhteyksien käsiohjaus</string> + <string name="profile_volumeoverrides_title">Äänenvoimakkuuden käsiohjaus</string> + <string name="profile_vibratoroverrides_title">Värinän ohitus</string> + <string name="connection_state_disabled">Pois käytöstä</string> + <string name="connection_state_enabled">Ota käyttöön</string> + <string name="volume_override_summary">Aseta</string> + <string name="vibrator_state_disabled">Poista käytöstä</string> + <string name="vibrator_state_enabled">Ota käyttöön</string> + <string name="vibrator_state_silent">Vain kun äänetön</string> + <string name="profile_profiles_manage">Profiilit</string> + <string name="profile_profile_manage">Hallitse profiilia</string> + <string name="profile_applist_manage">Sovelluslista</string> + <string name="profile_appgroups_manage">Sovellusryhmät</string> + <string name="profile_appgroup_manage">Hallitse sovellusryhmää</string> + <string name="profile_settings">Profiilin asetukset</string> + <string name="profile_name">Nimi</string> + <string name="sound_mode">Ilmoitus</string> + <string name="ringer_mode">Äänet</string> + <string name="lights_mode">Valot</string> + <string name="vibrate_mode">Värinä</string> + <string name="choose_soundtone">Valitse ilmoitusääni</string> + <string name="choose_ringtone">Valitse soittoääni</string> + <string name="soundtone_title">Ilmoitusääni</string> + <string name="soundtone_summary">""</string> + <string name="profile_appgroups_title">Sovellusryhmät</string> + <string name="profile_applist_title">Sovellukset</string> + <string name="profile_new_appgroup">Uusi sovellusryhmä</string> + <string name="profile_delete_appgroup">Poista tämä sovellusryhmä?</string> + <string name="profile_appgroup_name_prompt">Anna uuden sovellusryhmän nimi</string> + <string name="profile_appgroup_name_title">Nimi</string> + <string name="profile_add_app">Lisää sovellus</string> + <string name="profile_delete_app">Poista sovellus</string> + <string name="profile_choose_app">Valitse sovellus</string> + <string name="profile_settings_header">Profiilin asetukset</string> + <string name="profile_system_settings_title">Järjestelmän asetukset</string> + <string name="profile_lockmode_title">Lukitusnäyttötyyppi</string> + <string name="profile_lockmode_default">Oletus</string> + <string name="profile_lockmode_insecure">Epäturvallinen</string> + <string name="profile_lockmode_disabled">Pois päältä</string> + <string name="profile_lockmode_default_summary">Käytä järjestelmän oletusta</string> + <string name="profile_lockmode_insecure_summary">Käytä epäturvallista lukitustapaa </string> + <string name="profile_lockmode_disabled_summary">Lukitusnäyttö pois päältä</string> + <string name="profile_airplanemode_title">Lentokonetila</string> + <string name="profile_disable_screen_lock_summary">Ota lukitusnäytön turvallisuus pois käytöstä, jos tämä profiili on aktiivinen</string> + <string name="vibrator_type_ringer">Puhelut</string> + <string name="vibrator_type_notification">Ilmoitukset</string> + <string name="possibleButtons">Mahdolliset näppäimet</string> + <string name="toggleWifi">Wi-Fi</string> + <string name="toggleWifiAp">Langaton Wi-Fi tukiasema</string> + <string name="toggleBluetooth">Bluetooth</string> + <string name="toggleGPS">GPS</string> + <string name="toggleData">Mobiilidata</string> + <string name="toggleSync">Synkronointi</string> + <string name="toggle2g3g">2G/3G</string> + <string name="toggleSound">Äänet</string> + <string name="toggleBrightness">Kirkkaus</string> + <string name="toggleAutoRotate">Näytön asento</string> + <string name="toggleScreenTimeout">Näytön aikakatkaisu</string> + <string name="toggleAirplane">Lentokone</string> + <string name="toggleFlashlight">Lamppu</string> + <string name="toggleLockScreen">Lukitusnäyttö</string> + <string name="toggleWimax">WiMAX</string> + <string name="screen_security_category">Näytön turvallisuus</string> + <string name="screen_security_title">Lukitusnäyttö</string> + <string name="screen_security_summary">Muuta lukitusnäytön turvallisuutta, viivettä ja aikakatkaisun asetuksia</string> + <string name="additional_options_title">Lisäasetukset</string> + <string name="unlock_menu_unlock_title">Menu-näppäimen lukituksen avaaminen</string> + <string name="unlock_menu_unlock_summary">Painamalla Menu-näppäintä lukitus aukeaa</string> + <string name="unlock_home_unlock_title">Kotinäppäimen lukituksen avaaminen</string> + <string name="unlock_home_unlock_summary">Painamalla Koti-näppäintä lukitus aukeaa</string> + <string name="unlock_quick_unlock_control_title">Nopea lukituksen avaaminen</string> + <string name="unlock_quick_unlock_control_summary">Avaa automaattisesti kun oikea PIN/salasana on syötetty</string> + <string name="delay_and_timeout_title">Lukituksen viive</string> + <string name="slide_lock_delay_title">Viivästytä näyttölukitusta</string> + <string name="slide_lock_timeout_delay_title">Näytön aikakatkaisun viive</string> + <string name="slide_lock_screenoff_delay_title">Näytön sammuttamisen viive</string> + <string name="slide_lock_delay_none">Ei käytössä</string> + <string name="slide_lock_delay_1s">1 sekunti</string> + <string name="slide_lock_delay_5s">5 sekuntia</string> + <string name="slide_lock_delay_10s">10 sekuntia</string> + <string name="slide_lock_delay_15s">15 sekuntia</string> + <string name="slide_lock_delay_30s">30 sekuntia</string> + <string name="slide_lock_delay_1m">1 minuutti</string> + <string name="slide_lock_delay_5m">5 minuuttia</string> + <string name="slide_lock_delay_10m">10 minuuttia</string> + <string name="slide_lock_delay_30m">30 minuuttia</string> + <string name="performance_settings_title">Suorituskyky</string> + <string name="performance_settings_warning_title">Jatka varovaisesti</string> + <string name="performance_settings_warning">Nämä asetukset ovat kokeellisia ja niiten muuttaminen voi mahdollisesti aiheuttaa epävakautta, kaatumisia, tiedon häviämistä tai laitteistovikoja.\n\nPyydämme, ettet lähetä virheraportteja näihin asetuksiin liittyen.</string> + <string name="display_rotation_title">Näytön kierto</string> + <string name="display_rotation_disabled">Pois käytöstä</string> + <string name="display_rotation_unit">astetta</string> + <string name="display_rotation_category_title">Näytön asento</string> + <string name="display_rotation_0_title">0 astetta</string> + <string name="display_rotation_90_title">90 astetta</string> + <string name="display_rotation_180_title">180 astetta</string> + <string name="display_rotation_270_title">270 astetta</string> + <string name="picker_activities">Aktiviteetit</string> + <string name="select_custom_app_title">Valitse oma sovellus</string> + <string name="select_custom_activity_title">Valitse oma aktiviteetti</string> + <string name="icon_picker_choose_icon_title">Valitse ikoni</string> + <string name="icon_picker_alarm">Herätys</string> + <string name="icon_picker_browser">Selain</string> + <string name="icon_picker_calendar">Kalenteri</string> + <string name="icon_picker_camera">Kamera</string> + <string name="icon_picker_chrome">Chrome</string> + <string name="icon_picker_email">Sähköposti</string> + <string name="icon_picker_email2">Sähköposti (holo)</string> + <string name="icon_picker_facebook">Facebook</string> + <string name="icon_picker_gallery">Galleria</string> + <string name="icon_picker_google_small">Google (pieni)</string> + <string name="icon_picker_googleplus">Google+</string> + <string name="icon_picker_googletalk">Google Talk</string> + <string name="icon_picker_maps">Maps</string> + <string name="icon_picker_movie">Elokuva</string> + <string name="icon_picker_music">Musiikki</string> + <string name="icon_picker_nav_normal">Navigointi</string> + <string name="icon_picker_phone">Puhelin</string> + <string name="icon_picker_podcast">Podcast</string> + <string name="icon_picker_rss">RSS</string> + <string name="icon_picker_search">Haku</string> + <string name="icon_picker_sms">Viestit</string> + <string name="icon_picker_twitter">Twitter</string> + <string name="icon_picker_title">Valitse ikonin lähde</string> + <string name="icon_picker_system_icons_title">Järjestelmän ikonit</string> + <string name="icon_picker_gallery_title">Galleria</string> + <string name="icon_picker_pack_title">Ikonipaketti</string> + <string name="increasing_ring_title">Voimistuva soittoääni</string> + <string name="checkbox_increasing_ring">Ota käyttöön</string> + <string name="increasing_ring_min_volume_title">Äänenvoimakkuus alussa</string> + <string name="increasing_ring_volume_notice">Huomaa:\nJos asetat alun äänenvoimakkuuden kovemmaksi kuin alkuperäisen äänenvoimakkuuden, soittoääni soi alkuperäisellä äänenvoimakkuudella</string> + <string name="increasing_ring_interval_title">Nousuväli</string> + <string name="increasing_ring_interval_eachring">Jokaisella soitolla</string> + <string name="increasing_ring_interval_half_second">0.5 sekuntia</string> + <string name="increasing_ring_interval_1second">1 sekunti</string> + <string name="increasing_ring_interval_2seconds">2 sekuntia</string> + <string name="increasing_ring_interval_3seconds">3 sekuntia</string> + <string name="increasing_ring_interval_5seconds">5 sekuntia</string> + <string name="increasing_ring_interval_10seconds">10 sekuntia</string> + + <string name="profile_write_nfc_tag">Kirjoita NFC-tagi</string> + <string name="profile_write_touch_tag">Kosketa tagia kirjoittaaksesi</string> + <string name="profile_write_success">Tagi kirjoitettu onnistuneesti</string> + <string name="profile_write_failed">Tagin kirjoittaminen epäonnistui!</string> + <string name="profile_selected">Valittu profiili: %1$s</string> + <string name="profile_nfc_text">Profiilin kirjoittaminen NFC-tagiin antaa sinun hipaista tagia valitaksesi profiilin. Toisen kerran hipaistessa edellinen profiili valitaan.</string> + <string name="profile_unknown_nfc_tag">Tuntematon profiili</string> + <string name="profile_add_nfc_text">Tämä NFC-tagi viittaa tuntemattomaan profiiliin. Liittämällä tämän tagin olemassa olevaan profiiliin antaa sinun valita profiilin myöhemmin.</string> + <string name="profile_select">Valitse profiili</string> + <string name="link_volume_ringtones">Yhdistä soittoääni ja ilmoitusääni</string> + <string name="link_volume_mutes">Yhdistä soittoäänen ja ilmoitusäänen äänettömyys</string> + <string name="notification_pulse_title">Vilkuta ilmoitusvaloa</string> + <string name="notification_light_general_title">Yleinen</string> + <string name="notification_light_applist_title">Sovellukset</string> + <string name="notification_light_phonelist_title">Puhelin</string> + <string name="notification_light_use_custom">Käytä omia arvoja</string> + <string name="notification_light_enabled">Käytössä</string> + <string name="notification_light_disabled">Pois käytöstä</string> + <string name="notification_light_default_value">Oletus</string> + <string name="notification_light_missed_call_title">Vastaamaton puhelu</string> + <string name="notification_light_voicemail_title">Vastaaja</string> + <string name="edit_light_settings">Muuta valon asetuksia</string> + <string name="pulse_speed_title">Vilkun pituus ja nopeus</string> + <string name="picker_arrow">→</string> + <string name="default_time">Normaali</string> + <string name="custom_time">Kustomoitu</string> + <string name="dialog_test">Testi</string> + <string name="dialog_delete_title">Poista</string> + <string name="dialog_delete_message">Poista valittu kohde?</string> + <string name="dialog_test_message">Sulje näyttö nähdäksesi ilmoitus tai sulje tämä ilmoitus lopettaaksesi testin</string> + <string name="dialog_test_button">Sulje</string> + <string name="pulse_length_always_on">Aina päällä</string> + <string name="pulse_length_very_short">Todella lyhyt</string> + <string name="pulse_length_short">Lyhyt</string> + <string name="pulse_length_normal">Normaali</string> + <string name="pulse_length_long">Pitkä</string> + <string name="pulse_length_very_long">Todella pitkä</string> + <string name="pulse_speed_very_fast">Todella nopea</string> + <string name="pulse_speed_fast">Nopea</string> + <string name="pulse_speed_normal">Normaali</string> + <string name="pulse_speed_slow">Hidas</string> + <string name="pulse_speed_very_slow">Todella hidas</string> + <string name="battery_light_title">Akun valo</string> + <string name="battery_low_pulse_title">Vilku jos akku lähes tyhjä</string> + <string name="battery_light_list_title">Värit</string> + <string name="battery_light_low_color_title">Akku lähes tyhjä</string> + <string name="battery_light_medium_color_title">Latautuu</string> + <string name="battery_light_full_color_title">Ladattu</string> + <string name="volume_overlay_title">Äänipaneeli</string> + <string name="volbtn_music_controls_title">Äänenvoimakkuuspainikkeiden kappaleen vaihto</string> + <string name="volbtn_music_controls_summary">Kun näyttö on suljettu, painamalla pitkään painikkeita, kappale vaihtuu</string> + <string name="volume_ring_only_description">Soittoäänet</string> + <string name="ring_mode_title">Äänitila</string> + <string name="ring_mode_normal">Normaali</string> + <string name="ring_mode_vibrate">Värinä</string> + <string name="ring_mode_mute">Äänetön</string> + <string name="hardware_keys_title">Fyysiset näppäimet</string> + <string name="hardware_keys_bindings_title">Näppäimen tehtävä</string> + <string name="hardware_keys_enable_custom_title">Ota tehtävien valinta käyttöön</string> + <string name="hardware_keys_home_long_press_title">Kotinäppäin (pitkä painallus)</string> + <string name="hardware_keys_menu_press_title">Menu-näppäin</string> + <string name="hardware_keys_menu_long_press_title">Menu-näppäin (pitkä painallus)</string> + <string name="hardware_keys_assist_press_title">Hakunäppäin</string> + <string name="hardware_keys_assist_long_press_title">Hakunäppäin (pitkä painallus)</string> + <string name="hardware_keys_app_switch_press_title">Vaihtonäppäin</string> + <string name="hardware_keys_app_switch_long_press_title">Vaihtonäppäin (pitkä painallus)</string> + <string name="hardware_keys_show_overflow_title">Näytä tehtävät yllä</string> + <string name="hardware_keys_show_overflow_summary">Näyttää kolme pistettä menu-näppäimen yläpuolella sovelluksissa</string> + <string name="hardware_keys_show_overflow_toast_enable">Tehtävänäppäin yläpuolella ei välttämättä näy ennenkuin sovellukset käynnistetään uudelleen</string> + <string name="hardware_keys_show_overflow_toast_disable">Tehtävänäppäin yläpuolella saattaa näkyä ennenkuin sovellukset käynnistetään uudelleen</string> + <string name="hardware_keys_action_nothing">Ei tehtävää</string> + <string name="hardware_keys_action_menu">Avaa/sulje valikko</string> + <string name="hardware_keys_action_app_switch">Viimeisimmät sovellukset</string> + <string name="hardware_keys_action_search">Haku</string> + <string name="hardware_keys_action_voice_search">Äänihaku</string> + <string name="hardware_keys_action_in_app_search">Haku sovelluksessa</string> + <string name="power_widget_title">Pikanäppäimet</string> + <string name="title_expanded_widget">Pikanäppäimet</string> + <string name="power_widget_behavior">Näppäimen käytös</string> + <string name="title_expanded_hide_indicator">Piilota osoittimet</string> + <string name="title_expanded_hide_onchange">Piilota muutettaessa</string> + <string name="title_expanded_hide_scrollbar">Piilota vierityspalkki</string> + <string name="title_widget_picker">Pikanäppäimet</string> + <string name="summary_widget_picker">Valitse haluamasi pikanäppäimet</string> + <string name="title_widget_order">Näppäinten järjestys</string> + <string name="summary_widget_order">Valitse näppäinten järjestys</string> + <string name="title_buttons">Näppäimet</string> + <string name="title_toggle_wifi">Wi-Fi</string> + <string name="title_toggle_bluetooth">Bluetooth</string> + <string name="title_toggle_gps">GPS</string> + <string name="title_toggle_sound">Äänet</string> + <string name="title_toggle_brightness">Kirkkaus</string> + <string name="title_toggle_sync">Synkronointi</string> + <string name="title_toggle_wifiap">Wi-Fi-tukiasema</string> + <string name="title_toggle_screentimeout">Näytön aikakatkaisu</string> + <string name="title_toggle_mobiledata">Mobiilidata</string> + <string name="title_toggle_lockscreen">Lukitusnäyttö</string> + <string name="title_toggle_networkmode">Verkkotila</string> + <string name="title_toggle_autorotate">Näytön asento</string> + <string name="title_toggle_airplane">Lentokonetila</string> + <string name="title_toggle_flashlight">LED-valaisin</string> + <string name="title_toggle_sleep">Lepotila</string> + <string name="title_toggle_media_play_pause">Media: Play/Pause</string> + <string name="title_toggle_media_previous">Media: Edellinen</string> + <string name="title_toggle_media_next">Media: Seuraava</string> + <string name="title_toggle_lte">LTE</string> + <string name="title_toggle_wimax">WiMax</string> + <string name="title_button_modes">Näppäinvalinnat</string> + <string name="pref_brightness_mode_title">Kirkkauden valinnat</string> + <string name="pref_brightness_mode_summary">Valitse kirkkauspainikkeen valinnat</string> + <string name="cm_brightness_mode_auto">Automaattinen</string> + <string name="cm_brightness_mode_dim">Himmeä</string> + <string name="pref_network_mode_title">Verkkotilat</string> + <string name="pref_screentimeout_mode_title">Aikakatkaisun valinnat</string> + <string name="pref_ring_mode_title">Äänivalinnat</string> + <string name="pref_ring_mode_summary">Valitse äänitilojen valinnat</string> + <string name="cm_sound_mode_silent">Äänetön</string> + <string name="cm_sound_mode_vibrate">Värinä</string> + <string name="cm_sound_mode_sound">Äänet</string> + <string name="cm_sound_mode_soundVibrate">Äänet + Värinä</string> + <string name="pref_flash_mode_title">Valaisimen tilat</string> + <string name="expanded_haptic_feedback_title">Haptinen palaute</string> + <string name="kill_app_longpress_back">Tapa sovellus</string> + <string name="kill_app_longpress_back_summary">Tappaa etualalla olevan sovelluksen takaisin-painikkeella</string> + <string name="changelog_title">Näytä muutosloki</string> + <string name="changelog_loading">Ladataan muutoslokia</string> + <string name="changelog_error">Muutoslokin lataus ei onnistu</string> + <string name="changelog_unknown">Tuntematon</string> + <string name="changelog_version">Versio</string> + <string name="power_menu_title">Käynnistysvalikko</string> + <string name="power_menu_reboot_title">Uudelleenkäynnistys</string> + <string name="power_menu_screenshot_title">Kuvakaappaus</string> + <string name="power_menu_profiles_title">Profiilit</string> + <string name="power_menu_expanded_desktop">Laajennettu työpöytä</string> + <string name="power_menu_airplane_title">Lentokonetila</string> + <string name="power_menu_sound_title">Äänipaneeli</string> + <string name="power_menu_user_title">Käyttäjät</string> + <string name="cmupdate_settings_title">CyanogenMod-päivitykset</string> + <string name="cmupdate_settings_summary">Tarkista, katso tai asenna saatavilla olevat päivitykset</string> + <string name="advanced_settings_title">Lisäasetukset</string> + <string name="ime_switcher_notify">Syöttötavan ilmoitus</string> + <string name="ime_switcher_notify_summary">Näytä käytettävä syöttötapa ilmoituksissa</string> + <string name="status_bar_title">Tilapalkki</string> + <string name="status_bar_clock_title">Kello</string> + <string name="status_bar_general_title">Yleiset</string> + <string name="status_bar_show_clock_title">Näytä kello</string> + <string name="status_bar_am_pm_title">AM/PM kello</string> + <string name="status_bar_am_pm_info">24 tunnin kello on valittu</string> + <string name="status_bar_battery_title">Akkunäytön ulkoasu</string> + <string name="status_bar_toggle_brightness">Kirkkauden säätö</string> + <string name="status_bar_toggle_brightness_summary">Säädä kirkkautta liu\'ttamalla pitkin tilapalkkia</string> + <string name="status_bar_toggle_info">Automaattinen kirkkaus on käytössä</string> + <string name="status_bar_signal_text_title">Signaalinäytön ulkoasu</string> + <string name="status_bar_style_icon">Ikoni</string> + <string name="status_bar_style_hidden">Piilotettu</string> + <string name="status_bar_signal_text_show_text">Teksti</string> + <string name="status_bar_battery_status_percentage">Prosentti</string> + <string name="status_bar_battery_status_circle">Ympyrä</string> + <string name="status_bar_battery_status_circle_percentage">Ympyrä ja prosentti</string> + <string name="status_bar_notif_count_title">Näytä ilmoitusten määrä</string> + <string name="status_bar_notif_count_summary">Näyttää ilmoitusten määrän</string> + <string name="display_category_wakeup_options_title">Heräämisen asetukset</string> + <string name="pref_volume_wake_title">Äänenvoimakkuuspainikkeen herätys</string> + <string name="pref_volume_wake_summary">Äänenvoimakkuuspainiketta painamalla laite herää</string> + <string name="adb_notify">USB-viankorjausilmoitus</string> + <string name="adb_notify_summary">Näytä ilmoitus kun USB-virheenkorjaus on käytössä</string> + <string name="development_tools_title">Avaa kehitystyökalut</string> + <string name="adb_over_network">ADB verkon yli</string> + <string name="adb_over_network_summary">Salli TCP/IP virheenkorjaus verkon ylitse (Wi-Fi, USB-verkot). Tämä asetus resetoidaan uudelleenkäynnistyksen yhteydessä</string> + <string name="adb_over_network_warning">VAROITUS: Kun ADB verkon yli on käytössä, laitteesi on vapaa hyökkäyksille kaikissa verkoissa, mukaanlukien mobiilidataverkossa!\n\nKäytä tätä ominaisuutta vain kun olet luotettavassa verkossa.\n\nHaluatko varmasti ottaa ominaisuuden käyttöön?</string> + <string name="lockscreen_buttons_title">Fyysisten näppäinten tehtävät</string> + <string name="lockscreen_buttons_summary">Katso tai muuta fyysistem näppäinten tehtäviä lukitusnäytössä</string> + <string name="lockscreen_long_press_back_title">Takaisin-näppäin</string> + <string name="lockscreen_long_press_home_title">Koti-näppäin</string> + <string name="lockscreen_long_press_menu_title">Menu-näppäin</string> + <string name="lockscreen_buttons_no_action">Ei mitään</string> + <string name="lockscreen_buttons_flashlight">Taskulamppu</string> + <string name="lockscreen_buttons_next">Seuraava kappale</string> + <string name="lockscreen_buttons_previous">Edellinen kappale</string> + <string name="lockscreen_buttons_playpause">Play/Pause</string> + <string name="lockscreen_buttons_toggle_sound">Äänet</string> + <string name="quick_settings_panel_title">Pika-asetuspaneeli</string> + <string name="quick_settings_title">Pika-asetukset</string> + <string name="title_static_tiles">Staattiset tiilet</string> + <string name="tile_picker_title">Tiilet ja ulkoasu</string> + <string name="tile_picker_summary">Katso, valitse tai muokkaa tiilien järjestystä</string> + <string name="tile_choose_title">Valitse tiili</string> + <string name="title_tile_airplane">Lentokonetila</string> + <string name="title_tile_battery">Akun tila</string> + <string name="title_tile_bluetooth">Bluetooth</string> + <string name="title_tile_brightness">Kirkkaus</string> + <string name="title_tile_sleep">Lepotila</string> + <string name="title_tile_gps">GPS</string> + <string name="title_tile_torch">Lamppu</string> + <string name="title_tile_lockscreen">Lukitusnäyttö</string> + <string name="title_tile_lte">LTE</string> + <string name="title_tile_mobiledata">Mobiilidata</string> + <string name="title_tile_profile">Profiili</string> + <string name="title_tile_autorotate">Näytön asento</string> + <string name="title_tile_settings">Asetukset</string> + <string name="title_tile_sound">Äänet</string> + <string name="title_tile_sync">Synkronointi</string> + <string name="title_tile_wifiap">Wi-Fi-tukiasema</string> + <string name="title_tile_wifi">Wi-Fi</string> + <string name="title_tile_wimax">WiMAX</string> + <string name="title_tile_user">Käyttäjätilin vaihto</string> + <string name="title_tile_networkmode">Verkkotila</string> + <string name="title_tile_nfc">NFC</string> + <string name="title_tile_screen_timeout">Näytön aikakatkaisu</string> + <string name="title_dynamic_tiles">Dynaamiset tiilet</string> + <string name="dynamic_tiles_note_title">Huomio</string> + <string name="dynamic_tiles_note_summary">Dynaamiset tiilet näkyvät vain järjestelmän käyttäessä niitä</string> + <string name="title_dynamic_alarm">Herätyskello</string> + <string name="title_dynamic_bugreport">Bugiraportti</string> + <string name="title_dynamic_ime">Syöttötavan valinta</string> + <string name="title_dynamic_wifi">Wi-Fi</string> + <string name="title_general">Yleiset</string> + <string name="title_quick_pulldown">Nopea avaaminen</string> + <string name="summary_quick_pulldown">Näytä pika-asetukset vedettäessä ilmoitusvalikko alas näytön %1$s laidasta</string> + <string name="quick_pulldown_summary_left">Vasemmasta</string> + <string name="quick_pulldown_summary_right">Oikeasta</string> + <string name="quick_pulldown_off">Pois käytöstä</string> + <string name="quick_pulldown_left">Vasen</string> + <string name="quick_pulldown_right">Oikea</string> + <string name="title_collapse_panel">Sulje paneeli automaattisesti</string> + <string name="summary_collapse_panel">Sulje ilmoitusvalikko valittaessa</string> + <string name="tiles_reset_title">Nollaa</string> + <string name="tiles_reset_message">Palauta oletustiilet ja järjestys?</string> + <string name="volume_key_cursor_control_title">Äänenvoimakkuusnäppäimen osoitimen ohjaus</string> + <string name="volume_key_cursor_control_off">Pois käytöstä</string> + <string name="volume_key_cursor_control_on">Äänenvoimakkuus ylös/alas ohjaa osoitinta vasemmalle/oikealle</string> + <string name="volume_key_cursor_control_on_reverse">Äänenvoimakkuus ylös/alas ohjaa osoitinta oikealle/vasemmalle</string> + + <string name="wifi_setting_countrycode_title">Wi-Fi aluekoodi</string> + <string name="wifi_setting_countrycode_summary">Aseta Wi-Fin aluekoodi</string> + <string name="wifi_setting_countrycode_error">Ongelma asetettaessa aluekoodia.</string> + <string name="accessibility_home_button_answers_call_prerefence_title">Vastaa puheluun kotinäppäimellä</string> + <string name="headset_category_title">Kuulokkeet</string> + <string name="headset_connect_player_title">Käynnistä musiikkisovellus kytkettäessäLaunch music app on connect</string> + <string name="navigation_bar_title">Navigointipalkki</string> + <string name="navigation_bar_help_text">1. Aloittaaksesi muokkaamisen, paina lukkoa\n\n2. Paina mitä tahansa painiketta valitaksesi tai muokataksesi toimintoa\n\n3. Pidä painiketta pohjassa siirtääksesi sitä\n\n4. Tallentaaksesi paina lukkoa uudelleen\n\n5. Palauttaaksesi oletusasetukset, paina "Reset" painiketta\n\n</string> + <string name="navigation_bar_tips">• Tehtäviä voi asettaa vain yhdelle painikkelle kerralla\n\n• Koti-painiketta ei voi muokata\n\n• Sivunäppäimiä ei voi siirtää</string> + <string name="navigation_bar_tips_title">Vinkit</string> + <string name="navigation_bar_reset_message">Poista nykyiset asetukset ja palauta oletukset?</string> + <string name="navigation_bar_save_message">Navigointipalkin asetukset tallennettu</string> + <string name="navigation_bar_reset_toast">Navigointipalkki palautettu nollattu</string> + <string name="navigation_bar_menu_editable">Muokattava</string> + <string name="navigation_bar_menu_locked">Lukittu</string> + <string name="pref_wifi_disable_hdcp_title">Ohita HDCP-selvitys</string> + <string name="pref_wifi_disable_hdcp_summary">Kokeile tätä asetusta jos yhdistäminen onnistuu mutta ei näytä mitään</string> + <string name="app_security_title">Sovellusten turvallisuus</string> + <string name="sms_security_check_limit_title">Tekstiviestirajoitus</string> + <string name="sms_security_check_limit_summary">Näyttää ilmoitusvalikon estääkseen sovelluksia lähettämästä tekstiviestejä liian nopeasti. Nykyinen raja: %d viestiä 15 minuutissa</string> + <string name="sms_security_check_limit_default">30 (Oletus)</string> + <string name="lock_clock_title">Kellowidget</string> + <string name="lock_clock_summary">Katso tai muuta \'cLock\' koti- ja lukitusnäyttöwidgetit näkyvät</string> + <string name="stylus_icon_enabled_title">Näytä kuvake stylus-kynää käyttäessä</string> + <string name="stylus_icon_enabled_summary">Näytä osoitinkuvake liikuttaessa kynää näytöllä tai näytön yläpuolella</string> + <string name="lockscreen_maximize_widgets_title">Suurenna widgetit</string> + <string name="lockscreen_maximize_widgets_summary">Näytä widgetit suurennettuna ja lukituksen poisto pienennettynä näyttöä avatessa</string> + <!-- **** CYANOGENMOD ADDITIONS END **** --> </resources> diff --git a/res/values-fr/arrays.xml b/res/values-fr/arrays.xml index 0e963b3..1e799f8 100644 --- a/res/values-fr/arrays.xml +++ b/res/values-fr/arrays.xml @@ -1,22 +1,19 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- -/* -** -** Copyright 2007 The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ - --> +<!-- Copyright (C) 2007 The Android Open Source Project + 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. +--> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> @@ -30,34 +27,34 @@ <item msgid="8392017019801393511">"Tous"</item> </string-array> <string-array name="screen_timeout_entries"> - <item msgid="3342301044271143016">"15 secondes"</item> - <item msgid="8881760709354815449">"30 secondes"</item> - <item msgid="7589406073232279088">"1 minute"</item> - <item msgid="7001195990902244174">"2 minutes"</item> - <item msgid="7489864775127957179">"5 minutes"</item> - <item msgid="2314124409517439288">"10 minutes"</item> - <item msgid="6864027152847611413">"30 minutes"</item> + <item msgid="3342301044271143016">"15 secondes"</item> + <item msgid="8881760709354815449">"30 secondes"</item> + <item msgid="7589406073232279088">"1 minute"</item> + <item msgid="7001195990902244174">"2 minutes"</item> + <item msgid="7489864775127957179">"5 minutes"</item> + <item msgid="2314124409517439288">"10 minutes"</item> + <item msgid="6864027152847611413">"30 minutes"</item> </string-array> <string-array name="dream_timeout_entries"> <item msgid="3149294732238283185">"Jamais"</item> - <item msgid="2194151041885903260">"15 secondes"</item> - <item msgid="5892295237131074341">"30 secondes"</item> - <item msgid="3538441365970038213">"1 minute"</item> - <item msgid="412343871668955639">"2 minutes"</item> - <item msgid="5076853889688991690">"5 minutes"</item> - <item msgid="1903860996174927898">"10 minutes"</item> - <item msgid="6415509612413178727">"30 minutes"</item> + <item msgid="2194151041885903260">"15 secondes"</item> + <item msgid="5892295237131074341">"30 secondes"</item> + <item msgid="3538441365970038213">"1 minute"</item> + <item msgid="412343871668955639">"2 minutes"</item> + <item msgid="5076853889688991690">"5 minutes"</item> + <item msgid="1903860996174927898">"10 minutes"</item> + <item msgid="6415509612413178727">"30 minutes"</item> </string-array> <string-array name="lock_after_timeout_entries"> <item msgid="8929270399652145290">"Immédiatement"</item> - <item msgid="6736512735606834431">"5 secondes"</item> - <item msgid="8044619388267891375">"15 secondes"</item> - <item msgid="1822002388249545488">"30 secondes"</item> - <item msgid="8538071621211916519">"1 minute"</item> - <item msgid="5663439580228932882">"2 minutes"</item> - <item msgid="49888496216106852">"5 minutes"</item> - <item msgid="9002737361305019353">"10 minutes"</item> - <item msgid="4322676235684793329">"30 minutes"</item> + <item msgid="6736512735606834431">"5 secondes"</item> + <item msgid="8044619388267891375">"15 secondes"</item> + <item msgid="1822002388249545488">"30 secondes"</item> + <item msgid="8538071621211916519">"1 minute"</item> + <item msgid="5663439580228932882">"2 minutes"</item> + <item msgid="49888496216106852">"5 minutes"</item> + <item msgid="9002737361305019353">"10 minutes"</item> + <item msgid="4322676235684793329">"30 minutes"</item> </string-array> <string-array name="entries_font_size"> <item msgid="8166647333858618801">"Petite"</item> @@ -83,7 +80,7 @@ <item msgid="1922181315419294640"></item> <item msgid="8934131797783724664">"Recherche…"</item> <item msgid="8513729475867537913">"Connexion…"</item> - <item msgid="515055375277271756">"Authentification..."</item> + <item msgid="515055375277271756">"Authentification\u2026"</item> <item msgid="1943354004029184381">"Récupération de l\'adresse IP…"</item> <item msgid="4221763391123233270">"Connecté"</item> <item msgid="624838831631122137">"Interrompu"</item> @@ -133,9 +130,9 @@ <item msgid="2330782789550628803">"Hors de portée"</item> </string-array> <string-array name="bluetooth_visibility_timeout_entries"> - <item msgid="8151962652413645395">"Deux minutes"</item> - <item msgid="8675215713017289017">"Cinq minutes"</item> - <item msgid="477015974247590543">"Une heure"</item> + <item msgid="8151962652413645395">"Deux minutes"</item> + <item msgid="8675215713017289017">"Cinq minutes"</item> + <item msgid="477015974247590543">"Une heure"</item> <item msgid="5198271470953124739">"Aucun délai"</item> </string-array> <string-array name="wifi_signal"> @@ -156,8 +153,8 @@ </string-array> <string-array name="wifi_frequency_band_entries"> <item msgid="624340809384223320">"Automatique"</item> - <item msgid="6670588712989942178">"5 GHz uniquement"</item> - <item msgid="2715516524973207876">"2,4 GHz uniquement"</item> + <item msgid="6670588712989942178">"5 GHz uniquement"</item> + <item msgid="2715516524973207876">"2,4 GHz uniquement"</item> </string-array> <string-array name="usage_stats_display_order_types"> <item msgid="2100172576767439288">"Temps d\'utilisation"</item> @@ -255,10 +252,10 @@ </string-array> <string-array name="overlay_display_devices_entries"> <item msgid="1606809880904982133">"Aucun"</item> - <item msgid="688482401508173818">"720 x 480 mdpi"</item> - <item msgid="1725473474827398815">"1 280 x 720 tvdpi"</item> - <item msgid="6813511923592083251">"1 920 x 1 080 xdpi"</item> - <item msgid="3646519549495410112">"1 280x720 tvdpi et 1 920x1 080 xhdpi"</item> + <item msgid="688482401508173818">"720 x 480 mdpi"</item> + <item msgid="1725473474827398815">"1 280 x 720 tvdpi"</item> + <item msgid="6813511923592083251">"1 920 x 1 080 xdpi"</item> + <item msgid="3646519549495410112">"1 280x720 tvdpi et 1 920x1 080 xhdpi"</item> </string-array> <string-array name="enable_opengl_traces_entries"> <item msgid="3191973083884253830">"Aucun"</item> @@ -270,9 +267,9 @@ <item msgid="3401625457385943795">"Limite standard"</item> <item msgid="4071574792028999443">"Aucun processus en arrière-plan"</item> <item msgid="4810006996171705398">"Un processus maximum"</item> - <item msgid="8586370216857360863">"Deux processus maximum"</item> - <item msgid="836593137872605381">"Trois processus maximum"</item> - <item msgid="7899496259191969307">"Quatre processus maximum"</item> + <item msgid="8586370216857360863">"Deux processus maximum"</item> + <item msgid="836593137872605381">"Trois processus maximum"</item> + <item msgid="7899496259191969307">"Quatre processus maximum"</item> </string-array> <string-array name="vpn_types_long"> <item msgid="2732002039459078847">"VPN PPTP"</item> @@ -284,8 +281,8 @@ </string-array> <string-array name="vpn_states"> <item msgid="8621078286418985762">"Déconnecté"</item> - <item msgid="6692305604213080515">"Initialisation en cours..."</item> - <item msgid="8001704909356800092">"Connexion en cours..."</item> + <item msgid="6692305604213080515">"Initialisation en cours\u2026"</item> + <item msgid="8001704909356800092">"Connexion en cours\u2026"</item> <item msgid="4039737283841672166">"Connecté"</item> <item msgid="4042143101664725090">"Expiration du délai"</item> <item msgid="7664124146786465092">"Échec."</item> @@ -295,4 +292,68 @@ <item msgid="5077768429488260031">"Ne jamais autoriser"</item> <item msgid="1417929597727989746">"Toujours autoriser"</item> </string-array> + + <!-- **** CYANOGENMOD ADDITIONS START **** --> + + <!-- Volume Overlay options. --> + <string-array name="volume_overlay_entries"> + <item>Simple</item> + <item>Extensible</item> + <item>Étendu</item> + <item>Caché</item> + </string-array> + <string-array name="pref_zram_size_entries"> + <item>Désactivé</item> + <item>10%</item> + <item>18% (défaut)</item> + <item>26%</item> + </string-array> + <string-array name="profile_entries"> + <item>Activé</item> + <item>Désactivé</item> + <item>Ne pas outrepasser</item> + </string-array> + <string-array name="profile_connection_entries"> + <item>Désactivé</item> + <item>Activé</item> + </string-array> + <string-array name="entries_network_widget"> + <item>2G | 2G+3G</item> + <item>2G | 3G</item> + <item>2G | 3G | 2G+3G</item> + </string-array> + <string-array name="entries_screentimeout_widget"> + <item>15s | 1m | 5m</item> + <item>30s | 2m | 5m</item> + </string-array> + <string-array name="entries_flash_widget"> + <item>Normal</item> + <item>Élevé</item> + </string-array> + <string-array name="haptic_feedback_entries"> + <item>Utiliser les paramètres globaux</item> + <item>Activé</item> + <item>Désactivé</item> + </string-array> + <string-array name="entries_status_bar_am_pm"> + <item>Normal</item> + <item>Petit</item> + <item>Aucun</item> + </string-array> + <string-array name="wifi_countrycode_entries"> + <item>États-Unis</item> + <item>Canada, Taiwan</item> + <item>Allemagne</item> + <item>Europe</item> + <item>Japan, Russie</item> + <item>Australie</item> + <item>Chine</item> + <item>Corée</item> + <item>Turquie</item> + <item>Singapour</item> + <item>Brésil</item> + </string-array> + + <!-- **** CYANOGENMOD ADDITIONS END **** --> + </resources> diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml index f2ee1b1..f49d3d9 100644 --- a/res/values-fr/strings.xml +++ b/res/values-fr/strings.xml @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2007 The Android Open Source Project +<!-- Copyright (C) 2007 The Android Open Source Project + 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. @@ -12,7 +13,7 @@ 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:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> @@ -1832,4 +1833,741 @@ <string name="user_picture_title" msgid="7297782792000291692">"ID de photo"</string> <string name="cell_broadcast_settings" msgid="8415582011920085222">"Diffusions cellulaires"</string> <string name="cell_broadcast_settings_summary" msgid="3301339398950905913">"Sélectionnez les types d\'alertes d\'urgence à afficher."</string> + + <!-- **** CYANOGENMOD ADDITIONS START **** --> + + <!-- time range preference --> + <string name="start_time_title">Début</string> + <string name="end_time_title">Fin</string> + + <!-- convert sound to vibration toggle --> + <string name="notification_convert_sound_to_vibration_title">Vibrer à la notification</string> + <string name="notification_convert_sound_to_vibration_summary">En mode vibreur, toutes les notifications vibrent indépendamment des paramètres individuels des applications</string> + + <!-- Hostname setting --> + <string name="device_hostname">Nom d\'hôte de l\'appareil</string> + + <string name="ok">OK</string> + + <!-- Quiet hours --> + <string name="quiet_hours_title">Heures silencieuses</string> + <string name="quiet_hours_summary">Configurer les heures où le téléphone doit être silencieux</string> + <string name="quiet_hours_note_title">Note</string> + <string name="quiet_hours_note_summary">Les appels entrants se comportent normalement pendant les heures silencieuses</string> + <string name="quiet_hours_enabled">Heures silencieuses</string> + <string name="quiet_hours_enabled_on">Heures silencieuses activées</string> + <string name="quiet_hours_enabled_off">Fonctionnement normal</string> + <string name="quiet_hours_start">Début des heures silencieuses</string> + <string name="quiet_hours_start_summary">Quand démarrer les heures silencieuses</string> + <string name="quiet_hours_end">Fin des heures silencieuses</string> + <string name="quiet_hours_end_summary">Quand arrêter les heures silencieuses</string> + <string name="quiet_hours_mute">Désactiver notifications</string> + <string name="quiet_hours_mute_on">Silencieux</string> + <string name="quiet_hours_mute_off">Fonctionnement normal</string> + <string name="quiet_hours_still">Désactiver les vibrations</string> + <string name="quiet_hours_still_on">Vibreur désactivé</string> + <string name="quiet_hours_still_off">Vibreur actif</string> + <string name="quiet_hours_dim">Désactiver les leds</string> + <string name="quiet_hours_dim_on">Leds de notification désactivées</string> + <string name="quiet_hours_dim_off">Leds de notification actives</string> + <string name="quiet_hours_haptic">Désactiver le retour haptique</string> + <string name="quiet_hours_haptic_on">Le retour haptique est désactivé</string> + <string name="quiet_hours_haptic_off">Le retour haptique est activé</string> + <string name="quiet_hours_active_from">Actif de</string> + <string name="quiet_hours_active_to">jusqu\'à</string> + + <!-- Category title for headset specific Settings. + [CHAR LIMIT=40] --> + <string name="headset_category_title">Casque audio</string> + + <!-- About phone screen, setting option name--> + <string name="mod_version">Version CyanogenMod</string> + <string name="mod_version_default">Inconnue</string> + <!-- About phone screen, build date of ROM --> + <string name="build_date">Date de compilation</string> + <string name="build_date_default">2012-01-01-0000</string> + <!-- About device screen, Cpu info. --> + <string name="cpu_info">CPU</string> + <!-- About phone screen, Free memory info --> + <string name="mem_info">Mémoire</string> + <!-- About phone screen, status item label --> + + <!-- Anonymous Statistics #CM --> + <!-- About device screen, list item title. Takes the user to the screen about opting in or out of anonymous statistics. --> + <string name="anonymous_statistics_title">Statistiques CyanogenMod</string> + <string name="anonymous_statistics_summary">Aidez CyanogenMod en participant à l\'envoi de données anonymes pour comptabiliser les installations par type d\'appareil</string> + <string name="anonymous_statistics_warning_title">À propos</string> + <string name="anonymous_statistics_warning">Autoriser l\'envoi de statistiques permet pour les développeurs du système CyanogenMod de collecter des données anonymes afin de comptabiliser le nombre d\'installations par type d\'appareil. Les informations envoyées contiennent un identifiant unique de appareil afin de limiter les doublons et en aucune manière ne compromet la sécurité de vos données. Ce jeu d\'informations est envoyé à chaque redémarrage pour ne conserver que les installations actives.\n\nVous pouvez visualiser ces données en sélectionnant \"Prévisualiser les données\".</string> + <string name="enable_reporting_title">Activer l\'envoi</string> + <string name="preview_data_title">Prévisualiser les données</string> + <string name="preview_data_summary">%s</string> + <string name="view_stats_title">Afficher les statistiques</string> + <string name="anonymous_learn_more">En savoir plus…</string> + + <!-- Anonymous Statistics - Notification --> + <string name="anonymous_notification_desc">Activer ou non les statistiques CyanogenMod</string> + + <!-- Anonymous Statistics - Preview --> + <string name="preview_id_title">Identifiant unique</string> + <string name="preview_device_title">Appareil</string> + <string name="preview_version_title">Version</string> + <string name="preview_country_title">Pays</string> + <string name="preview_carrier_title">Opérateur</string> + + <!-- INTERFACE Settings --> + <!-- Settings main menu category heading. Interface (Launcher, Themes, System). [CHAR LIMIT=40] --> + <string name="header_category_interface">INTERFACE</string> + + <!-- Launcher settings --> + <string name="launcher_settings_title">Trebuchet</string> + + <!-- Themes settings --> + <string name="themes_settings_title">Thèmes</string> + + <!-- System Interface settings --> + <string name="system_settings_title">Système</string> + <string name="system_interface_title">Interface système</string> + + <!-- Notification Drawer --> + <string name="notification_drawer_title">Barre de notification</string> + + <string name="lock_screen_title">Écran de verrouillage</string> + + <!-- Lock Screen Shortcuts --> + <string name="lockscreen_target_info">Glisser pour assigner les raccourcis</string> + <string name="lockscreen_target_title">Raccourcis</string> + <string name="lockscreen_target_summary">Configurer les raccourcis de l\'écran de verrouillage</string> + <string name="lockscreen_target_reset">Les raccourcis ont été réinitialisés</string> + <string name="lockscreen_target_save">Raccourcis enregistrés</string> + <string name="lockscreen_target_reset_title">Réinitialiser</string> + <string name="lockscreen_target_reset_message">Réinitialiser tous les raccourcis et revenir à la configuration d\'origine\u00A0?</string> + <string name="lockscreen_target_empty">Vide</string> + <string name="lockscreen_target_edit_title">Modifier le raccourci</string> + <string name="lockscreen_target_edit_msg">Sélectionner l\'application, l\'activité et l\'icône du raccourci</string> + + <!-- Lock screen vibrate settings --> + <string name="lockscreen_vibrate_enabled_title">Vibreur</string> + <string name="lockscreen_vibrate_enabled_head">Vibration lors du déverrouillage</string> + + <!-- Lock screen misc. settings --> + <string name="lockscreen_battery_status_title">État de la batterie</string> + <string name="lockscreen_battery_status_charging">Lors du chargement</string> + <string name="lockscreen_battery_status_alwayson">Toujours afficher</string> + + <!-- Profiles settings --> + <string name="profiles_settings_title">Profils</string> + <string name="profiles_general_title">Général</string> + <string name="profiles_add">Ajouter</string> + <string name="profile_menu_delete">Supprimer</string> + <string name="profile_settings_title">Profil</string> + <string name="profile_empty_list_profiles_off">Pour personnaliser et utiliser le système de profils, activer le.</string> + + <!-- Add Profile --> + <string name="add_profile_dialog_title">Créer nouveau profil</string> + <string name="profile_name_title">Nom du profil</string> + <string name="profile_profile_name_prompt">Entrer le nom du profil</string> + <string name="menu_new_profile">Nouveau profil</string> + <string name="menu_new_profile_summary">Ajouter et configurer un nouveau profil</string> + <string name="new_profile_name"><nouveau profil></string> + + <!-- Rename Dialog --> + <string name="rename_dialog_title">Renommer</string> + <string name="rename_dialog_message">Saisir un nouveau nom</string> + <string name="duplicate_appgroup_name">Ce groupe existe déjà\u00A0!</string> + <string name="duplicate_profile_name">Ce profil existe déjà\u00A0!</string> + + <!-- Title for the accessibility preference to home button to answers a call. [CHAR LIMIT=35] --> + <string name="accessibility_home_button_answers_call_prerefence_title">Bouton Home pour répondre aux appels</string> + + <!-- Reset Profiles --> + <string name="profile_reset_title">Réinitialiser</string> + <string name="profile_reset_message">Êtes-vous certain de vouloir supprimer tous les profils et groupes d\'applications\u00A0?</string> + + <!-- Delete confimation messages --> + <string name="profile_delete_confirm">Supprimer ce profil\u00A0?</string> + <string name="profile_app_delete_confirm">Supprimer cette application\u00A0?</string> + <string name="profile_cannot_delete">Vous ne pouvez pas supprimer le profil actif</string> + + <!-- Profile Config screen PreferenceGroup titles --> + <string name="profile_connectionoverrides_title">Connexions</string> + <string name="profile_volumeoverrides_title">Volume perso.</string> + <string name="profile_vibratoroverrides_title">Vibrations</string> + <string name="connection_state_disabled">Inactif</string> + <string name="connection_state_enabled">Actif</string> + <string name="volume_override_summary">Actuel</string> + <string name="vibrator_state_disabled">Jamais</string> + <string name="vibrator_state_enabled">Toujours</string> + <string name="vibrator_state_silent">En mode silencieux</string> + + <!-- Menu item for managing profiles --> + <string name="profile_profiles_manage">Profils</string> + <string name="profile_profile_manage">Gérer le profil</string> + <string name="profile_applist_manage">Liste des applications</string> + <string name="profile_appgroups_manage">Gérer les groupes</string> + <string name="profile_appgroup_manage">Profil</string> + + <!-- Profile settings screen, section header for settings related to notification profiles --> + <string name="profile_settings">Paramètres du Profil</string> + <string name="profile_name">Nom</string> + + <!-- Profile Settings sound modes labels --> + <string name="sound_mode">Mode de notification</string> + <string name="ringer_mode">Sonnerie</string> + <string name="lights_mode">Leds</string> + <string name="vibrate_mode">Vibreur</string> + <string name="choose_soundtone">Son de notification</string> + <string name="choose_ringtone">Choix de la sonnerie</string> + + <!-- Sound settings screen, setting option name to pick ringtone (a list dialog comes up)--> + <string name="soundtone_title">Notification tone</string> + <string name="soundtone_summary">""</string> + + <!-- Title for application group setting screen --> + <string name="profile_appgroups_title">Groupes d\'applications</string> + <string name="profile_applist_title">Applications</string> + <string name="profile_new_appgroup">Nouveau groupe d\'applications</string> + <string name="profile_delete_appgroup">Supprimer ce groupe d\'applications</string> + <string name="profile_appgroup_name_prompt">Saisir le nom du nouveau groupe</string> + <string name="profile_appgroup_name_title">Nom</string> + <string name="profile_add_app">Ajouter application</string> + <string name="profile_delete_app">Retirer application</string> + + <!-- Add application dialog box title --> + <string name="profile_choose_app">Choisir une application</string> + <string name="profile_settings_header">Paramètres des Profils</string> + + <!-- Profiles - system settings --> + <string name="profile_system_settings_title">Paramètres système</string> + <string name="profile_lockmode_title">Mode de verrouillage</string> + <string name="profile_lockmode_default">Par défaut</string> + <string name="profile_lockmode_insecure">Non sécurisé</string> + <string name="profile_lockmode_disabled">Désactivé</string> + <string name="profile_lockmode_default_summary">Conserver les paramètres système</string> + <string name="profile_lockmode_insecure_summary">Écran de verrouillage non sécurisé</string> + <string name="profile_lockmode_disabled_summary">Écran de verrouillage désactivé</string> + <string name="profile_airplanemode_title">Mode Avion</string> + <string name="profile_disable_screen_lock_summary">Désactive l\'écran de verrouillage lorsque ce profil est actif</string> + + <string name="vibrator_type_ringer">Appels</string> + <string name="vibrator_type_notification">Notifications</string> + + <!-- Connection override toggles (not all are used at this time ) --> + <string name="possibleButtons">Boutons possibles</string> + <string name="toggleWifi">Wi-Fi</string> + <string name="toggleWifiAp">Partage Wi-Fi</string> + <string name="toggleBluetooth">Bluetooth</string> + <string name="toggleGPS">GPS</string> + <string name="toggleData">Données mobile</string> + <string name="toggleSync">Sync. données</string> + <string name="toggle2g3g">2G/3G</string> + <string name="toggleSound">Son</string> + <string name="toggleBrightness">Luminosité</string> + <string name="toggleAutoRotate">Orientation</string> + <string name="toggleScreenTimeout">Veille écran</string> + <string name="toggleAirplane">Mode Avion</string> + <string name="toggleFlashlight">Torche</string> + <string name="toggleLockScreen">Verrouillage</string> + <string name="toggleWimax">WiMax</string> + + <!-- Screen security - Screen security --> + <string name="screen_security_category">Verrouillage de l\'écran</string> + <string name="screen_security_title">Écran de verrouillage</string> + <string name="screen_security_summary">Options de l\'écran de verrouillage : style, délais et options diverses</string> + <string name="additional_options_title">Options supplémentaires</string> + <string name="unlock_menu_unlock_title">Déverrouiller par Menu</string> + <string name="unlock_menu_unlock_summary">Déverrouillage de l\'écran en appuyant sur le bouton Menu</string> + <string name="unlock_home_unlock_title">Déverrouillage par bouton Home</string> + <string name="unlock_home_unlock_summary">Déverrouillage de l\'écran en appuyant sur le bouton Home</string> + <string name="unlock_quick_unlock_control_title">Déverrouillage rapide</string> + <string name="unlock_quick_unlock_control_summary">Évite d\'appuyer sur OK lors de la saisie du code PIN ou du mot de passe.\nAttention : effacer compte comme un essai raté\u00A0!</string> + + <!-- Setting checkbox title for root access --> + <string name="root_access">Accès root</string> + <string name="root_access_warning_title">Autoriser l\'accès root\u00A0?</string> + <string name="root_access_warning_message">Autoriser l\'accès root aux applications peut être très dangereux et corrompre la sécurité et la stabilité de votre appareil\u00A0!</string> + <string name="root_access_none">Désactivé</string> + <string name="root_access_apps">Application uniquement</string> + <string name="root_access_adb">ADB uniquement</string> + <string name="root_access_all">Applications et ADB</string> + + <!-- Slide lock delay --> + <string name="delay_and_timeout_title">Délai de verrouillage</string> + <string name="slide_lock_delay_title">Modifier les délais</string> + <string name="slide_lock_timeout_delay_title">Extinction de l\'écran</string> + <string name="slide_lock_screenoff_delay_title">Extinction manuelle</string> + <string name="slide_lock_delay_none">Immédiatement</string> + <string name="slide_lock_delay_1s">1 seconde</string> + <string name="slide_lock_delay_5s">5 secondes</string> + <string name="slide_lock_delay_10s">10 secondes</string> + <string name="slide_lock_delay_15s">15 secondes</string> + <string name="slide_lock_delay_30s">30 secondes</string> + <string name="slide_lock_delay_1m">1 minute</string> + <string name="slide_lock_delay_5m">5 minutes</string> + <string name="slide_lock_delay_10m">10 minutes</string> + <string name="slide_lock_delay_30m">30 minutes</string> + + <!-- Performance settings --> + <string name="performance_settings_title">Performances</string> + + <!-- Performance Settings : Warning dialog --> + <string name="performance_settings_warning_title">ATTENTION\u00A0!</string> + <string name="performance_settings_warning">Les options présentes ici altèrent les performances du système, en bien ou en mal.\nElles ont des comportements différents selon les appareils et sont disponibles pour expérimentation.\nNous vous demandons de ne pas soumettre de rapport de bug à propos de celles-ci.</string> + + <!-- Performance Settings : Processor Settings --> + <!-- Performance Settings : Processor settings title --> + <string name="processor_title">Paramètres CPU</string> + <!-- Performance Settings : Processor settings summary. --> + <string name="processor_summary">Stratégie et fréquences</string> + + <!-- Performance Settings : Processor settings sub items --> + <string name="cpu_cur_freq_title">Fréquence actuelle</string> + <string name="cpu_governors_title">Stratégie</string> + <string name="cpu_governors_summary">%S</string> + <string name="cpu_min_freq_title">Fréquence minimale</string> + <string name="cpu_min_freq_summary">%s</string> + <string name="cpu_max_freq_title">Fréquence maximale</string> + <string name="cpu_max_freq_summary">%s</string> + <string name="cpu_set_on_boot">Appliquer au démarrage</string> + <string name="cpu_set_on_boot_summary">Modifie les fréquences du CPU au démarrage du système</string> + + <!-- Performance Settings : I/O scheduler settings title --> + <string name="io_scheds_title">Horloge I/O</string> + <!-- Performance Settings : I/O scheduler settings summary. --> + <string name="io_scheds_summary">Changer l\'horloge I/O</string> + + <!-- Performance Settings : I/O scheduler settings sub items --> + <string name="io_sched_title">Horloge I/O</string> + <string name="io_sched_summary">%S</string> + <string name="io_sched_set_on_boot">Appliquer au démarrage</string> + <string name="io_sched_set_on_boot_summary">Restaurer les paramètres d\'horloge au démarrage</string> + + <!-- Memory Management --> + <string name="memory_management_title">Gestion de la mémoire</string> + <string name="memory_management_summary">Options de gestion de la mémoire pour optimiser les performances</string> + <!-- zRam --> + <string name="pref_zram_title">Utiliser zRam</string> + <string name="pref_zram_summary">Compresser la mémoire pour augmenter virtuellement sa capacité (nécessite un redémarrage)</string> + <!-- KSM --> + <string name="pref_ksm_title">Utiliser KSM</string> + <string name="pref_ksm_summary">Cette fonction du noyau réduit l\'utilisation de la mémoire physique et améliore les performances (Kernel Same-page Merging)</string> + <!-- Purgeable Assets --> + <string name="pref_purgeable_assets_title">Purge des bitmaps</string> + <string name="pref_purgeable_assets_summary">Le système peut libérer plus de RAM si la mémoire des bitmaps peut être réclamée (nécessite un redémarrage)</string> + + <!-- Performance Settings : Dithering --> + <string name="pref_use_dithering_title">Activer le tramage</string> + <string name="dithering_no_dither">Désactiver le tramage</string> + <string name="dithering_color_banding">Corriger les bandes de couleurs (défaut)</string> + <string name="dithering_blur_effect">Corriger les bandes de couleurs et l\'effet de flou</string> + + <!-- Performance Settings : 16bpp Alpha --> + <string name="pref_use_16bpp_alpha_title">Transparence 16 bits</string> + <string name="pref_use_16bpp_alpha_summary">Utiliser le mode 16 bits améliore la vitesse de défilement et des animations, mais peut affecter l\'affichage des éléments transparents (nécessite un redémarrage)</string> + + <!-- Display : Rotation --> + <string name="display_rotation_title">Rotation</string> + <string name="display_rotation_disabled">Désactivé</string> + <string name="display_rotation_unit">degrés</string> + <string name="display_rotation_category_title">Angles de rotation</string> + <string name="display_rotation_0_title">0 degré</string> + <string name="display_rotation_90_title">90 degrés</string> + <string name="display_rotation_180_title">180 degrés</string> + <string name="display_rotation_270_title">270 degrés</string> + + <!-- Lock screen shortcuts --> + <string name="picker_activities">Activités</string> + <string name="select_custom_app_title">Sélectionner l\'application</string> + <string name="select_custom_activity_title">Sélectionner l\'activité</string> + <string name="icon_picker_choose_icon_title">Sélectionner une icône</string> + <string name="icon_picker_alarm">Alarme</string> + <string name="icon_picker_browser">Navigateur</string> + <string name="icon_picker_calendar">Agenda</string> + <string name="icon_picker_camera">Appareil photo</string> + <string name="icon_picker_chrome">Chrome</string> + <string name="icon_picker_email">Email</string> + <string name="icon_picker_email2">Email Holo</string> + <string name="icon_picker_facebook">Facebook</string> + <string name="icon_picker_gallery">Galerie</string> + <string name="icon_picker_google_small">Google (petit)</string> + <string name="icon_picker_googleplus">Google Plus</string> + <string name="icon_picker_googletalk">Google Talk</string> + <string name="icon_picker_maps">Google Maps</string> + <string name="icon_picker_movie">Vidéos</string> + <string name="icon_picker_music">Musique</string> + <string name="icon_picker_nav_normal">Navigation</string> + <string name="icon_picker_phone">Téléphone</string> + <string name="icon_picker_podcast">Podcast</string> + <string name="icon_picker_rss">RSS</string> + <string name="icon_picker_search">Recherche</string> + <string name="icon_picker_sms">Messages</string> + <string name="icon_picker_twitter">Twitter</string> + + <!-- String for IconPicker --> + <string name="icon_picker_title">Source de l\'icône</string> + <string name="icon_picker_system_icons_title">Icônes système</string> + <string name="icon_picker_gallery_title">Galerie</string> + <string name="icon_picker_pack_title">Jeux d\'icônes</string> + + <string name="increasing_ring_title">Sonnerie progressive</string> + <!-- Sound settings screen, the caption of the checkbox for making incoming calls increase in volume --> + <string name="checkbox_increasing_ring">Activer</string> + <!-- Sound settings screen, the title of the volume bar to adjust the minimum increasing ring volume --> + <string name="increasing_ring_min_volume_title">Volume de départ</string> + <string name="increasing_ring_volume_notice">Note :\nComme le volume défini est plus grand que celui de la sonnerie, il sera réduit à son niveau.</string> + <string name="increasing_ring_interval_title">Intervale de progression</string> + <string name="increasing_ring_interval_eachring">À chaque sonnerie</string> + <string name="increasing_ring_interval_half_second">0.5 secondes</string> + <string name="increasing_ring_interval_1second">1 seconde</string> + <string name="increasing_ring_interval_2seconds">2 secondes</string> + <string name="increasing_ring_interval_3seconds">3 secondes</string> + <string name="increasing_ring_interval_5seconds">5 secondes</string> + <string name="increasing_ring_interval_10seconds">10 secondes</string> + + <string name="profile_write_nfc_tag">Écrire sur les tags NFC</string> + <string name="profile_write_touch_tag">Toucher le tag pour écrire</string> + <string name="profile_write_success">Tag écrit avec succès</string> + <string name="profile_write_failed">L\'écriture a échoué\u00A0!</string> + <string name="profile_selected">Profil sélectionné : %1$s</string> + <string name="profile_nfc_text">Écrire un profil sur un tag NFC permet d\'en sélectionner un avec celui-ci. Lors du deuxième contact le profil précédent est sélectionné.</string> + <string name="profile_unknown_nfc_tag">Profil inconnu</string> + <string name="profile_add_nfc_text">Ce tag NFC se refère à aucun profil. Relier ce tag NFC à un profil existant permettra de sélectionner le profil à l\'avenir.</string> + <string name="profile_select">Sélectionner un profil</string> + + <string name="link_volume_ringtones">Lier le volume des alertes à la sonnerie</string> + <string name="link_volume_mutes">Silence commun pour alertes et sonnerie</string> + + <!-- Display settings screen, notification light settings --> + <string name="notification_light_general_title">Général</string> + <string name="notification_light_applist_title">Applications</string> + <string name="notification_light_phonelist_title">Téléphone</string> + <string name="notification_light_use_custom">Couleurs spécifiques</string> + <string name="notification_light_enabled">Activé</string> + <string name="notification_light_disabled">Désactivé</string> + <string name="notification_light_default_value">Défaut</string> + <string name="notification_light_missed_call_title">Appel manqué</string> + <string name="notification_light_voicemail_title">Messagerie vocale</string> + + <!-- Notification light dialogs --> + <string name="edit_light_settings">Paramètres de la LED</string> + <string name="pulse_speed_title">Durée d\'impulsion et vitesse</string> + <string name="picker_arrow">→</string> + <string name="default_time">Normale</string> + <string name="custom_time">Personnalisée</string> + <string name="dialog_test">Tester</string> + <string name="dialog_delete_title">Supprimer</string> + <string name="dialog_delete_message">Voulez-vous supprimer les notifications de l\'application sélectionnée\u00A0?</string> + <string name="dialog_test_message">Éteignez l\'écran pour afficher l\'action de notification ou annuler ceci pour arrêter le test</string> + <string name="dialog_test_button">Annuler</string> + + <!-- Values for the notification light pulse spinners --> + <string name="pulse_length_always_on">Toujours allumé</string> + <string name="pulse_length_very_short">Très courte</string> + <string name="pulse_length_short">Courte</string> + <string name="pulse_length_normal">Normale</string> + <string name="pulse_length_long">Longue</string> + <string name="pulse_length_very_long">Très longue</string> + <string name="pulse_speed_very_fast">Très rapide</string> + <string name="pulse_speed_fast">Rapide</string> + <string name="pulse_speed_normal">Normale</string> + <string name="pulse_speed_slow">Lente</string> + <string name="pulse_speed_very_slow">Très lente</string> + + <!-- Battery light settings --> + <string name="battery_light_title">LED Batterie</string> + <string name="battery_low_pulse_title">Clignoter si la batterie est faible</string> + <string name="battery_light_list_title">Couleurs</string> + <string name="battery_light_low_color_title">Batterie faible</string> + <string name="battery_light_medium_color_title">Batterie en charge</string> + <string name="battery_light_full_color_title">Chargée</string> + + <!-- Sound settings screen --> + <string name="volume_overlay_title">Contrôle du volume</string> + <string name="volbtn_music_controls_title">Playlist par boutons volume</string> + <string name="volbtn_music_controls_summary">Lorsque l\'écran est éteint, un appui long permet de changer le titre en cours</string> + <string name="headset_connect_player_title">Lancer le lecteur de musique au branchement du casque</string> + <string name="volume_ring_only_description">Sonneries</string> + <string name="ring_mode_title">Sonnerie</string> + <string name="ring_mode_normal">Normal</string> + <string name="ring_mode_vibrate">Vibreur</string> + <string name="ring_mode_mute">Silencieux</string> + + <!-- Hardware keys --> + <string name="hardware_keys_title">Boutons physiques</string> + <string name="hardware_keys_bindings_title">Actions des boutons</string> + <string name="hardware_keys_enable_custom_title">Activer les actions personnalisées</string> + <string name="hardware_keys_home_long_press_title">Bouton Home (appui long)</string> + <string name="hardware_keys_menu_press_title">Bouton Menu</string> + <string name="hardware_keys_menu_long_press_title">Bouton Menu (appui long)</string> + <string name="hardware_keys_assist_press_title">Bouton Recherche</string> + <string name="hardware_keys_assist_long_press_title">Recherche (appui long)</string> + <string name="hardware_keys_app_switch_press_title">Bouton \"Applications récentes\"</string> + <string name="hardware_keys_app_switch_long_press_title">\"Applications récentes\" (appui long)</string> + <string name="hardware_keys_show_overflow_title">Afficher le menu de l\'application</string> + <string name="hardware_keys_show_overflow_summary">Afficher le bouton Menu (3 points) dans les applications</string> + <string name="hardware_keys_show_overflow_toast_enable">Le menu de l\'application ne pourrait être visible qu\'après le redémarrage des applications</string> + <string name="hardware_keys_show_overflow_toast_disable">Le menu de l\'application ne pourrait être caché qu\'après le redémarrage des applications</string> + <string name="hardware_keys_action_nothing">Aucune action</string> + <string name="hardware_keys_action_menu">Ouvrir/fermer le menu</string> + <string name="hardware_keys_action_app_switch">Applications récentes</string> + <string name="hardware_keys_action_search">Assistant de recherche</string> + <string name="hardware_keys_action_voice_search">Recherche vocale</string> + <string name="hardware_keys_action_in_app_search">Recherche dans l\'application</string> + + <!-- Navigation Bar #CM --> + <string name="navigation_bar_title">Barre de navigation</string> + <string name="navigation_bar_help_text">1 - Pour commencer l\'édition, appuyer sur le cadenas\n\n2 - Appuyer sur un des boutons pour assigner ou changer une fonctionnalité\n\n3 - Pression longue pour modifier l\'ordre\n\n4 - Pour enregistrer, appuyer à nouveau sur le cadenas\n\n5 - Pour remettre à zéro, appuyer sur le bouton \"Réinitialiser\"\n\n</string> + <string name="navigation_bar_tips">• Les actions peuvent être assignées qu\'une seule fois\n\n• Le bouton d\'accueil ne peut être réassigné\n\n• Les boutons sur le bord ne peuvent être déplacés</string> + <string name="navigation_bar_tips_title">Astuces rapides</string> + <string name="navigation_bar_reset_message">Supprimer les paramètres actuels et remettre à zéro\u00A0?</string> + <string name="navigation_bar_save_message">Paramètres de la barre de navigation enregistrés</string> + <string name="navigation_bar_reset_toast">Barre de navigation remise à zéro</string> + <string name="navigation_bar_menu_editable">Editable</string> + <string name="navigation_bar_menu_locked">Verrouillée</string> + + <!-- Power Widget --> + <string name="power_widget_title">Widget d\'alimentation</string> + <string name="title_expanded_widget">Widget d\'alimentation</string> + <string name="power_widget_behavior">Comportement du widget</string> + <string name="title_expanded_hide_onchange">Fermer après changement</string> + <string name="title_expanded_hide_indicator">Cacher les notifications</string> + <string name="title_expanded_hide_scrollbar">Cacher barre de défilement</string> + <string name="title_widget_picker">Boutons du widget</string> + <string name="summary_widget_picker">Afficher ou modifier les boutons</string> + <string name="title_widget_order">Ordre des boutons du widget</string> + <string name="summary_widget_order">Afficher ou modifier l\'ordre des boutons présents sur le widget</string> + <string name="title_buttons">Boutons</string> + <string name="title_toggle_wifi">Wi-Fi</string> + <string name="title_toggle_bluetooth">Bluetooth</string> + <string name="title_toggle_gps">GPS</string> + <string name="title_toggle_sound">Son</string> + <string name="title_toggle_brightness">Luminosité</string> + <string name="title_toggle_sync">Sync. données</string> + <string name="title_toggle_wifiap">Partage Wi-Fi</string> + <string name="title_toggle_screentimeout">Veille écran</string> + <string name="title_toggle_mobiledata">Données mobile</string> + <string name="title_toggle_lockscreen">Verrouillage</string> + <string name="title_toggle_networkmode">Basculer 2G/3G</string> + <string name="title_toggle_autorotate">Orientation</string> + <string name="title_toggle_airplane">Mode Avion</string> + <string name="title_toggle_flashlight">Torche</string> + <string name="title_toggle_sleep">Mise en veille</string> + <string name="title_toggle_media_play_pause">Média : Lecture/Pause</string> + <string name="title_toggle_media_previous">Média : Précédent</string> + <string name="title_toggle_media_next">Média : Suivant</string> + <string name="title_toggle_lte">LTE</string> + <string name="title_toggle_wimax">WiMax</string> + <string name="title_button_modes">Modes des boutons</string> + <string name="pref_brightness_mode_title">Modes de luminosité</string> + <string name="pref_brightness_mode_summary">Sélection des modes de fonctionnement du bouton Luminosité</string> + <string name="cm_brightness_mode_auto">Auto.</string> + <string name="cm_brightness_mode_dim">Réduit</string> + <string name="pref_network_mode_title">Modes réseau</string> + <string name="pref_screentimeout_mode_title">Mode mise en veille de l\'écran</string> + <string name="pref_ring_mode_title">Sonnerie</string> + <string name="pref_ring_mode_summary">Sélection des modes de sonnerie disponibles</string> + <string name="cm_sound_mode_silent">Silencieux</string> + <string name="cm_sound_mode_vibrate">Vibreur</string> + <string name="cm_sound_mode_sound">Son</string> + <string name="cm_sound_mode_soundVibrate">Son + Vibreur</string> + <string name="pref_flash_mode_title">Mode torche</string> + <string name="expanded_haptic_feedback_title">Vibrer au toucher</string> + + <!-- Kill app long-press back --> + <string name="kill_app_longpress_back">Tuer avec bouton Retour</string> + <string name="kill_app_longpress_back_summary">Permet de forcer la fermeture de l\'application en cours en appuyant longuement sur le bouton Retour</string> + + <!-- Change Log strings --> + <string name="changelog_title">Voir le rapport de version</string> + <string name="changelog_loading">Chargement du rapport de version…</string> + <string name="changelog_error">Impossible de charger le rapport de version</string> + <string name="changelog_unknown">Inconnu</string> + <string name="changelog_version">Version</string> + + <!-- Power menu enable disable --> + <string name="power_menu_title">Menu marche/arrêt</string> + <string name="power_menu_reboot_title">Redémarrer</string> + <string name="power_menu_screenshot_title">Capture d\'écran</string> + <string name="power_menu_expanded_desktop">Bureau étendu</string> + <string name="power_menu_profiles_title">Profils</string> + <string name="power_menu_airplane_title">Mode avion</string> + <string name="power_menu_user_title">Utilisateur</string> + <string name="power_menu_sound_title">Son et vibreur</string> + + <!-- CM Updater --> + <string name="cmupdate_settings_title">Mises à jour CyanogenMod</string> + <string name="cmupdate_settings_summary">Vérifier, afficher ou installer les mises à jour disponibles</string> + + <!-- Advanced, Device specific (DeviceParts) settings --> + <string name="advanced_settings_title">Options avancées</string> + + <!-- Whether to display IME switcher notifcation --> + <string name="ime_switcher_notify">Icône méthode de saisie</string> + <string name="ime_switcher_notify_summary">Afficher l\'icône de la méthode de saisie dans la barre de notification</string> + + <!-- Status bar --> + <string name="status_bar_title">Barre d\'état</string> + <string name="status_bar_clock_title">Horloge</string> + <string name="status_bar_general_title">Général</string> + <string name="status_bar_show_clock_title">Afficher l\'heure</string> + <string name="status_bar_am_pm_title">Indicateur AM/PM</string> + <string name="status_bar_am_pm_info">Horloge 24 heures activée</string> + <string name="status_bar_battery_title">Affichage du niveau de batterie</string> + <string name="status_bar_toggle_brightness">Rétroéclairage</string> + <string name="status_bar_toggle_brightness_summary">Ajustement de la luminosité en glissant dans la barre</string> + <string name="status_bar_toggle_info">Le rétroéclairage automatique est activé</string> + <string name="status_bar_signal_text_title">Affichage du signal réseau</string> + <string name="status_bar_style_icon">Icône</string> + <string name="status_bar_style_hidden">Ne pas afficher</string> + <string name="status_bar_signal_text_show_text">Texte</string> + <string name="status_bar_battery_status_percentage">Pourcentage</string> + <string name="status_bar_battery_status_circle">Cercle</string> + <string name="status_bar_battery_status_circle_percentage">Cercle avec pourcentage</string> + + <!-- Status bar notification count --> + <string name="status_bar_notif_count_title">Compteur de notifications</string> + <string name="status_bar_notif_count_summary">Afficher le nombre de notifications en attente dans la barre d\'état</string> + + <!-- Wakeup options --> + <string name="display_category_wakeup_options_title">Sortie de veille</string> + <string name="pref_volume_wake_title">Éveil par boutons Volume</string> + <string name="pref_volume_wake_summary">Permet de rallumer l\'appareil à l\'aide des boutons de volume.</string> + + <!-- Setting checkbox summary for displaying USB debugging notification --> + <string name="adb_notify">Notification débogage</string> + <string name="adb_notify_summary">Afficher une notification lorsque le débogage est actif</string> + + <!-- Launches Dev Tools --> + <string name="development_tools_title">Outils dév.</string> + + <!-- USB Mass Storage --> + <string name="usb_mass_storage_title">Stockage de masse</string> + <string name="usb_mass_storage_summary">Activer le stockage de masse USB</string> + + <!-- Android debugging over WiFi --> + <string name="adb_over_network">ADB sur TCP/IP</string> + <string name="adb_over_network_summary">Activer le débogage sur toutes les interfaces (réseaux USB, Wi-Fi et Bluetooth)</string> + <!-- Warning for Adb over Network --> + <string name="adb_over_network_warning">ATTENTION : Lorsque cette fonction est activée, votre appareil est ouvert aux intrusions sur toutes les interfaces, y compris via le réseau mobile\u00A0!\n\nIl est fortement conseillé de désactiver le réseau mobile avant d\'activer cette fonction.\n\nContinuer\u00A0?</string> + + <string name="lockscreen_buttons_title">Bouton d\'actions</string> + <string name="lockscreen_buttons_summary">Voir ou modifier les actions du bouton de verrouillage</string> + <string name="lockscreen_long_press_back_title">Appui long sur le bouton Retour</string> + <string name="lockscreen_long_press_home_title">Appui long sur le bouton Home</string> + <string name="lockscreen_long_press_menu_title">Appui long sur le bouton Menu</string> + <string name="lockscreen_buttons_no_action">Aucune action</string> + <string name="lockscreen_buttons_flashlight">Lampe de poche</string> + <string name="lockscreen_buttons_next">Chanson suivante</string> + <string name="lockscreen_buttons_previous">Chanson précédente</string> + <string name="lockscreen_buttons_playpause">Lecture/Pause</string> + <string name="lockscreen_buttons_toggle_sound">Basculer le son/vibreur</string> + + <!-- Quick settings panel --> + <string name="quick_settings_panel_title">Volet des paramètres</string> + <string name="quick_settings_title">Paramètres</string> + <string name="title_static_tiles">Raccourcis statiques</string> + <string name="tile_picker_title">Raccourcis et disposition</string> + <string name="tile_picker_summary">Afficher, sélectionner ou changer la disposition des raccourcis</string> + <string name="tile_choose_title">Choisir un raccourci</string> + + <string name="title_tile_airplane">Mode Avion</string> + <string name="title_tile_battery">Batterie</string> + <string name="title_tile_bluetooth">Bluetooth</string> + <string name="title_tile_brightness">Luminosité</string> + <string name="title_tile_sleep">Mettre en veille</string> + <string name="title_tile_gps">GPS</string> + <string name="title_tile_torch">Torche</string> + <string name="title_tile_lockscreen">Verrouillage</string> + <string name="title_tile_lte">LTE</string> + <string name="title_tile_mobiledata">Données mobile</string> + <string name="title_tile_profile">Profil</string> + <string name="title_tile_autorotate">Orientation</string> + <string name="title_tile_settings">Paramètres</string> + <string name="title_tile_sound">Son</string> + <string name="title_tile_sync">Sync</string> + <string name="title_tile_wifiap">Wi-Fi AP</string> + <string name="title_tile_wifi">Wi-Fi</string> + <string name="title_tile_wimax">WiMAX</string> + <string name="title_tile_user">Utilisateur</string> + <string name="title_tile_networkmode">Réseau</string> + <string name="title_tile_nfc">NFC</string> + <string name="title_tile_screen_timeout">Veille écran</string> + <string name="title_tile_usb_tether">Modem USB</string> + + <string name="title_dynamic_tiles">Raccourcis dynamiques</string> + <string name="dynamic_tiles_note_title">Note</string> + <string name="dynamic_tiles_note_summary">Les raccourcis dynamiques ne sont pas toujours visibles et ils ne peuvent s\'afficher que s\'ils sont déclenchés par un événement système</string> + <string name="title_dynamic_alarm">Réveil</string> + <string name="title_dynamic_bugreport">Rapport de bug</string> + <string name="title_dynamic_ime">Changement IME</string> + <string name="title_dynamic_usbtether">Modem USB</string> + <string name="title_dynamic_wifi">Wi-Fi disponible</string> + + <string name="title_general">Général</string> + <string name="title_quick_pulldown">Ouverture rapide</string> + <string name="summary_quick_pulldown">Tirer le coté %1$s pour ouvrir le panneau des raccrourcis</string> + <string name="quick_pulldown_summary_left">gauche</string> + <string name="quick_pulldown_summary_right">droit</string> + <string name="quick_pulldown_off">Désactiver</string> + <string name="quick_pulldown_left">Gauche</string> + <string name="quick_pulldown_right">Droit</string> + <string name="title_collapse_panel">Fermeture automatique</string> + <string name="summary_collapse_panel">Fermer le panneau des raccourcis après un appui</string> + + <!-- Reset tiles --> + <string name="tiles_reset_title">Réinitialiser</string> + <string name="tiles_reset_message">Restaurer la disposition et les raccourcis par défaut\u00A0?</string> + + <!--- Volume key cursor control --> + <string name="volume_key_cursor_control_title">Contrôle du curseur par les touches du volume</string> + <string name="volume_key_cursor_control_off">Désactivé</string> + <string name="volume_key_cursor_control_on">La touche haut déplace le curseur vers la gauche et bas vers la droite</string> + <string name="volume_key_cursor_control_on_reverse">La touche haut déplace le curseur vers la droite et bas vers la gauche</string> + + <!-- Wireless display --> + <string name="pref_wifi_disable_hdcp_title">Eviter la négociation HDCP</string> + <string name="pref_wifi_disable_hdcp_summary">Essayer cette option si vous voulez vous connecter sans aucune sortie</string> + <string name="wifi_setting_countrycode_title">Code de région Wi-Fi</string> + <!-- [CHAR LIMIT=50]--> + <string name="wifi_setting_countrycode_summary">Spécifier le code de région Wi-Fi</string> + <!-- [CHAR LIMIT=50]. --> + <string name="wifi_setting_countrycode_error">Il y a eu un problème de réglage du code de région.</string> + <!-- Wi-Fi settings screen, advanced, title of the item to set the Wi-Fi priority. --> + <string name="wifi_setting_priority_title">Priorité Wi-Fi</string> + <!-- Wi-Fi settings screen, setting summary for setting the Wi-Fi priority--> + <string name="wifi_setting_priority_summary">Définir la priorité des réseaux Wi-Fi</string> + + <!-- Activity label of BluetoothMasPermissionActivity, also used as Strings in the permission dialog [CHAR LIMIT=none] --> + <string name="bluetooth_mas_request">Demande d\'accès aux messages</string> + <!-- Bluetooth MAS permission Alert Activity text [CHAR LIMIT=none] --> + <string name="bluetooth_mas_acceptance_dialog_text">%1$s souhaite accéder à vos messages. Donner l\'accès à %2$s\u00A0?</string> + <!-- Bluetooth MAS permission Alert Activity checkbox text [CHAR LIMIT=none] --> + <string name="bluetooth_mas_remember_choice">Ne plus demander</string> + + <!--- Sms security limit --> + <string name="app_security_title">Sécurité des applications</string> + <string name="sms_security_check_limit_title">Limiter l\'émission de SMS</string> + <string name="sms_security_check_limit_summary">Afficher un message d\'alerte pour prevenir qu\'une application envoie des messages SMS trop fréquemment. Limite actuelle : %d messages en 15 minutes</string> + <string name="sms_security_check_limit_default">30 (Défaut)</string> + + <!--- Lock clock --> + <string name="lock_clock_title">Widget horloge</string> + <string name="lock_clock_summary">Afficher ou modifier la façon dont \'cLock\' est affiché sur l\'écran d\'accueil ou de verrouillage</string> + + <!-- Stylus Icon --> + <string name="stylus_icon_enabled_title">Afficher l\'icône quand un stylet est utilisé</string> + <string name="stylus_icon_enabled_summary">Afficher le pointeur du stylet quand celui-ci approche ou dessine sur l\'écran</string> + + <string name="lockscreen_maximize_widgets_title">Maximiser les widgets</string> + <string name="lockscreen_maximize_widgets_summary">Afficher les widgets maximisés et le système de déverrouillage minimisé lorque l\'écran est déverrouillé</string> + + <!-- Custom lock screen background --> + <string name="lockscreen_custom_background_title">Fond d\'écran</string> + <string name="lockscreen_custom_background_dialog_title">Choisir une couleur</string> + <string name="lockscreen_background_result_successful">Fond d\'écran changé avec succès</string> + <string name="lockscreen_background_result_not_successful">Impossible de changer le fond d\écran</string> + <string name="lockscreen_background_color_fill">Couleur de remplissage</string> + <string name="lockscreen_background_custom_image">Image personnalisée</string> + <string name="lockscreen_background_default_wallpaper">Fond d\'écran par défaut</string> + + <!-- **** CYANOGENMOD ADDITIONS END **** --> </resources> diff --git a/res/values-hu/arrays.xml b/res/values-hu/arrays.xml index 1f4bdaa..95a98fd 100644 --- a/res/values-hu/arrays.xml +++ b/res/values-hu/arrays.xml @@ -295,4 +295,65 @@ <item msgid="5077768429488260031">"Soha nem engedélyezem"</item> <item msgid="1417929597727989746">"Engedélyezés mindig"</item> </string-array> + + <!-- **** CYANOGENMOD EDITS START **** --> + + <!-- Volume Overlay options. --> + <string-array name="volume_overlay_entries"> + <item>Egyszerű</item> + <item>Kiterjeszthető</item> + <item>Kiterjesztett</item> + <item>Nincs</item> + </string-array> + + <!-- Performance settings --> + <string-array name="pref_zram_size_entries"> + <item>Letiltva</item> + <item>10%</item> + <item>18% (alapbeállítás)</item> + <item>26%</item> + </string-array> + + <!-- Profile mode options. --> + <string-array name="profile_entries"> + <item>Be</item> + <item>Ki</item> + <item>Nincs felülbírálás</item> + </string-array> + + <!-- Profile mode options. --> + <string-array name="profile_connection_entries"> + <item>Letiltva</item> + <item>Engedélyezve</item> + </string-array> + + <string-array name="entries_network_widget"> + <item>2G/3G+2G</item> + <item>2G/3G</item> + <item>2G/3G/3G+2G</item> + </string-array> + + <string-array name="entries_screentimeout_widget"> + <item>15mp/1p/5p</item> + <item>30mp/2p/5p</item> + </string-array> + + <string-array name="entries_flash_widget"> + <item>Normál</item> + <item>Magas</item> + </string-array> + + <string-array name="haptic_feedback_entries"> + <item>Alapértelmezett</item> + <item>Be</item> + <item>Ki</item> + </string-array> + + <string-array name="entries_status_bar_am_pm"> + <item>Normál</item> + <item>Kicsi</item> + <item>Elrejtés</item> + </string-array> + + <!-- **** CYANOGENMOD EDITS END **** --> </resources> diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml index a613ac8..9d6919a 100644 --- a/res/values-hu/strings.xml +++ b/res/values-hu/strings.xml @@ -1,5 +1,6 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2007 The Android Open Source Project +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2007 The Android Open Source Project + 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. @@ -135,10 +136,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Csatlakoztatva (nincs hordozó)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Csatlakoztatva (nincs telefon vagy hordozó)"</string> <string name="bluetooth_disconnected" msgid="6557104142667339895">"Szétkapcsolva"</string> - <string name="bluetooth_disconnecting" msgid="8913264760027764974">"Szétkapcsolás..."</string> - <string name="bluetooth_connecting" msgid="8555009514614320497">"Csatlakozás…"</string> + <string name="bluetooth_disconnecting" msgid="8913264760027764974">"Szétkapcsolás\u2026"</string> + <string name="bluetooth_connecting" msgid="8555009514614320497">"Csatlakozás\u2026"</string> <string name="bluetooth_unknown" msgid="644716244548801421"></string> - <string name="bluetooth_pairing" msgid="1426882272690346242">"Párosítás..."</string> + <string name="bluetooth_pairing" msgid="1426882272690346242">"Párosítás\u2026"</string> <string name="bluetooth_device" msgid="5291950341750186887">"Névtelen Bluetooth eszköz"</string> <string name="progress_scanning" msgid="192587958424295789">"Keresés"</string> <string name="bluetooth_no_devices_found" msgid="1085232930277181436">"Nem található a közelben Bluetooth-eszköz."</string> @@ -166,9 +167,12 @@ <string name="bluetooth_phonebook_request" msgid="457033227379858269">"Telefonkönyv kérése"</string> <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"A(z) %1$s szeretne hozzáférni névjegyeihez és a híváselőzményekhez. Megadja a hozzáférést a(z) %2$s eszköznek?"</string> <string name="bluetooth_pb_remember_choice" msgid="2901499974259177202">"Ne jelenjen meg többé"</string> + <string name="bluetooth_mas_request">Üzenethozzáférés</string> + <string name="bluetooth_mas_acceptance_dialog_text">"A(z) %1$s szeretne hozzáférni az üzeneteihez. Megadja a hozzáférést a(z) %2$s eszköznek?"</string> + <string name="bluetooth_mas_remember_choice">Ne jelenjen meg többé</string> <string name="date_and_time" msgid="4114084177056654663">"Dátum és idő beállításai"</string> <string name="choose_timezone" msgid="1362834506479536274">"Válasszon időzónát"</string> - <string name="normal_date_format" msgid="7636406984925498359">"Regionális (<xliff:g id="DATE">%s</xliff:g>)"</string> + <string name="normal_date_format" msgid="7636406984925498359">"Helyi (<xliff:g id="DATE">%s</xliff:g>)"</string> <string name="display_preview_label" msgid="1127597250917274792">"Előnézet:"</string> <string name="display_font_size_label" msgid="8941851418397475389">"Betűméret:"</string> <!-- no translation found for intent_sender_data_label (6332324780477289261) --> @@ -228,7 +232,7 @@ <string name="radio_info_toggle_dns_check_label" msgid="8292252930563286858">"DNS-ellenőrzés váltása"</string> <string name="oem_radio_info_label" msgid="6163141792477958941">"OEM-specifikus adatok és beállítások:"</string> <string name="band_mode_title" msgid="954174198903776205">"GSM/UMTS sáv beállítása"</string> - <string name="band_mode_loading" msgid="548764766363847336">"Sávlista betöltése..."</string> + <string name="band_mode_loading" msgid="548764766363847336">"Sávlista betöltése\u2026"</string> <string name="band_mode_set" msgid="5730560180249458484">"Beállítás"</string> <string name="band_mode_failed" msgid="1495968863884716379">"Sikertelen"</string> <string name="band_mode_succeeded" msgid="2701016190055887575">"Sikeres"</string> @@ -246,7 +250,7 @@ <string name="sdcard_settings_bad_removal_status" product="default" msgid="5145797653495907970">"Az SD-kártyát használat közben távolították el!"</string> <string name="sdcard_settings_used_bytes_label" msgid="8820289486001170836">"Felhasznált bájtok:"</string> <string name="sdcard_settings_scanning_status" product="nosdcard" msgid="7503429447676219564">"Média keresése az USB-táron"</string> - <string name="sdcard_settings_scanning_status" product="default" msgid="2763464949274455656">"Médiafájlok keresése az SD-kártyán..."</string> + <string name="sdcard_settings_scanning_status" product="default" msgid="2763464949274455656">"Médiafájlok keresése az SD-kártyán\u2026"</string> <string name="sdcard_settings_read_only_status" product="nosdcard" msgid="3624143937437417788">"Írásvédettként csatolt USB-tár."</string> <string name="sdcard_settings_read_only_status" product="default" msgid="4518291824764698112">"Az SD-kártya írásvédett módban van csatlakoztatva."</string> <string name="skip_label" msgid="47510779345218297">"Kih."</string> @@ -266,7 +270,7 @@ <string name="settings_label_launcher" msgid="8344735489639482340">"Beállítások"</string> <string name="settings_shortcut" msgid="3936651951364030415">"Beállítások parancsikon"</string> <string name="airplane_mode" msgid="8837269988154128601">"Repülőgép üzemmód"</string> - <string name="radio_controls_title" msgid="6889937359495515769">"Továbbiak..."</string> + <string name="radio_controls_title" msgid="6889937359495515769">"Továbbiak\u2026"</string> <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Vezeték nélküli és egyéb hálózatok"</string> <string name="radio_controls_summary" msgid="2998818677094465517">"A Wi-Fi, a Bluetooth, a repülőgép mód, a mobilhálózatok és a VPN-ek kezelése"</string> <string name="roaming" msgid="3596055926335478572">"Adatbarangolás"</string> @@ -293,7 +297,7 @@ <string name="date_time_set_time" msgid="5716856602742530696">"Idő beállítása"</string> <string name="date_time_set_timezone" msgid="5045627174274377814">"Időzóna kiválasztása"</string> <string name="date_time_set_date" msgid="7021491668550232105">"Dátum beállítása"</string> - <string name="date_time_date_format" msgid="6951498879879281102">"Válassza ki a dátum formátumát"</string> + <string name="date_time_date_format" msgid="6951498879879281102">"Dátum formátuma"</string> <string name="zone_list_menu_sort_alphabetically" msgid="5683377702671088588">"Rendezés név szerint"</string> <string name="zone_list_menu_sort_by_timezone" msgid="2720190443744884114">"Rendezés időzóna szerint"</string> <string name="date_picker_title" msgid="1338210036394128512">"Dátum"</string> @@ -443,7 +447,7 @@ <string name="bluetooth_connecting_error_message" msgid="229861986106185022">"Nem sikerült csatlakozni a következőhöz: <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string> <string name="bluetooth_preference_scan_title" msgid="2277464653118896016">"Eszközök keresése"</string> <string name="bluetooth_search_for_devices" msgid="5957007154213560390">"Eszközök keresése"</string> - <string name="bluetooth_searching_for_devices" msgid="9203739709307871727">"Keresés..."</string> + <string name="bluetooth_searching_for_devices" msgid="9203739709307871727">"Keresés\u2026"</string> <string name="bluetooth_preference_device_settings" msgid="907776049862799122">"Eszközbeállítások"</string> <string name="bluetooth_preference_paired_devices" msgid="1970524193086791964">"Párosított eszközök"</string> <string name="bluetooth_preference_found_devices" msgid="1647983835063249680">"Elérhető eszközök"</string> @@ -452,11 +456,11 @@ <string name="bluetooth_device_context_pair_connect" msgid="7611522504813927727">"Párosítás és csatlakozás"</string> <string name="bluetooth_device_context_unpair" msgid="662992425948536144">"Párosítás törlése"</string> <string name="bluetooth_device_context_disconnect_unpair" msgid="7644014238070043798">"Szétkapcsolás és a párosítás törlése"</string> - <string name="bluetooth_device_context_connect_advanced" msgid="2643129703569788771">"Beállítások…"</string> + <string name="bluetooth_device_context_connect_advanced" msgid="2643129703569788771">"Beállítások\u2026"</string> <string name="bluetooth_menu_advanced" msgid="8572178316357220524">"Speciális"</string> <string name="bluetooth_advanced_titlebar" msgid="2142159726881547669">"Speciális Bluetooth"</string> <string name="bluetooth_empty_list_bluetooth_off" msgid="4793562956642282639">"Kapcsolja be a Bluetooth-t az eszközök listájához"</string> - <string name="bluetooth_connect_specific_profiles_title" msgid="6952214406025825164">"Csatlakozás a következőhöz..."</string> + <string name="bluetooth_connect_specific_profiles_title" msgid="6952214406025825164">"Csatlakozás a következőhöz\u2026"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Média audió"</string> <string name="bluetooth_profile_headset" msgid="8658779596261212609">"Telefon hangja"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"Fájlátvitel"</string> @@ -496,7 +500,7 @@ <string name="wifi_display_settings_empty_list_wifi_display_off" msgid="1225626898926363100">"Az eszközök megtekintéséhez kapcsolja be a vezeték nélküli kijelzőt."</string> <string name="wifi_display_settings_empty_list_wifi_display_disabled" msgid="7363832031876872257">"A vezeték nélküli kijelző le van tiltva, mert a Wi-Fi ki van kapcsolva."</string> <string name="wifi_display_search_for_devices" msgid="5065526281193354502">"Kijelzők keresése"</string> - <string name="wifi_display_searching_for_devices" msgid="5172373825348672137">"Keresés..."</string> + <string name="wifi_display_searching_for_devices" msgid="5172373825348672137">"Keresés\u2026"</string> <string name="wifi_display_no_devices_found" msgid="8180582698282377626">"Nem található a közelben vezeték nélküli kijelző."</string> <string name="wifi_display_paired_devices" msgid="7395326840730024303">"Párosított kijelzők"</string> <string name="wifi_display_available_devices" msgid="4558314642853513487">"Elérhető eszközök"</string> @@ -530,9 +534,14 @@ <string name="wifi_settings_category" msgid="2810363951104753710">"Wi-Fi beállítások"</string> <string name="wifi_settings_title" msgid="4351120897298124250">"Wi-Fi"</string> <string name="wifi_settings_summary" msgid="668767638556052820">"Vezeték nélküli hozzáférési pontok beállítása és kezelése"</string> + <string name="wifi_setting_countrycode_title">Wi-Fi régiókód</string> + <string name="wifi_setting_countrycode_summary">Adja meg a Wi-Fi régiókódját</string> + <string name="wifi_setting_countrycode_error">Hiba történt a régiókód beállítása közben.</string> + <string name="wifi_setting_priority_title">Wi-Fi prioritás</string> + <string name="wifi_setting_priority_summary">Wi-Fi hálózatok prioritásának beállítása</string> <string name="wifi_setup_wizard_title" msgid="70277346338812325">"Wi-Fi hálózat kiválasztása"</string> - <string name="wifi_starting" msgid="6716593470710880000">"Wi-Fi bekapcsolása?"</string> - <string name="wifi_stopping" msgid="244864762599017659">"Wi-Fi kikapcsolása..."</string> + <string name="wifi_starting" msgid="6716593470710880000">"Wi-Fi bekapcsolása\u2026"</string> + <string name="wifi_stopping" msgid="244864762599017659">"Wi-Fi kikapcsolása\u2026"</string> <string name="wifi_error" msgid="3207971103917128179">"Hiba"</string> <string name="wifi_in_airplane_mode" msgid="8652520421778203796">"Repülőgép üzemmódban"</string> <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Nem lehet beolvasni a hálózatokat"</string> @@ -556,17 +565,17 @@ <string name="wifi_menu_forget" msgid="8736964302477327114">"Hálózat elfelejtése"</string> <string name="wifi_menu_modify" msgid="2068554918652440105">"Hálózat módosítása"</string> <string name="wifi_empty_list_wifi_off" msgid="4722299515264875943">"Kapcsolja be a WiFi-t a hálózatok megjelenítéséhez"</string> - <string name="wifi_empty_list_wifi_on" msgid="3354911729026237372">"Wi-Fi hálózatok keresése..."</string> - <string name="wifi_other_network" msgid="1048006316504242214">"Másik hálózat..."</string> + <string name="wifi_empty_list_wifi_on" msgid="3354911729026237372">"Wi-Fi hálózatok keresése\u2026"</string> + <string name="wifi_other_network" msgid="1048006316504242214">"Másik hálózat\u2026"</string> <string name="wifi_more" msgid="3195296805089107950">"Egyebek"</string> <string name="wifi_setup_wps" msgid="8128702488486283957">"Automat. beállítás (WPS)"</string> <string name="wifi_required_info_text" msgid="9014073093293520112">"A telepítés befejezéséhez a táblagépnek Wi-Fi hálózatra van szüksége. A beállítás után válthat a mobil adatforgalom és a Wi-Fi között."</string> <string name="wifi_show_advanced" msgid="1793703023711426246">"Speciális beállítások megjelenítése"</string> <string name="wifi_wps_setup_title" msgid="6034518116333042484">"WPS"</string> - <string name="wifi_wps_setup_msg" msgid="315174329121275092">"WPS indítása..."</string> + <string name="wifi_wps_setup_msg" msgid="315174329121275092">"WPS indítása\u2026"</string> <string name="wifi_wps_onstart_pbc" msgid="7204827509934892103">"Nyomja meg a Wi-Fi Protected Setup gombot a routeren. Ennek elnevezése lehet \"WPS\" is, illetve a következő szimbólum is jelölheti:"</string> <string name="wifi_wps_onstart_pin" msgid="8067502591043979939">"Írja be a Wi-Fi router PIN kódját (<xliff:g id="NUMBER">%1$s</xliff:g>). A telepítés legfeljebb 2 percet vesz igénybe."</string> - <string name="wifi_wps_complete" msgid="2388138550456729134">"Sikeres WPS. Csatlakozás a hálózathoz..."</string> + <string name="wifi_wps_complete" msgid="2388138550456729134">"Sikeres WPS. Csatlakozás a hálózathoz\u2026"</string> <string name="wifi_wps_connected" msgid="5754399645462924103">"Csatlakozva a(z) <xliff:g id="NETWORK_NAME">%s</xliff:g> Wi-Fi hálózathoz"</string> <string name="wifi_wps_in_progress" msgid="3372311348221357944">"A WPS már folyamatban van, és legfeljebb 2 percet vesz igénybe."</string> <string name="wifi_wps_failed_generic" msgid="5668775022238832527">"Sikertelen WPS. Kérjük, próbálkozzon újra néhány perc múlva."</string> @@ -637,7 +646,7 @@ <string name="wifi_p2p_device_info" msgid="3191876744469364173">"Készülékadatok"</string> <string name="wifi_p2p_persist_network" msgid="1646424791818168590">"A kapcsolat megjegyzése"</string> <string name="wifi_p2p_menu_search" msgid="3436429984738771974">"Eszközök keresése"</string> - <string name="wifi_p2p_menu_searching" msgid="2396704492143633876">"Keresés..."</string> + <string name="wifi_p2p_menu_searching" msgid="2396704492143633876">"Keresés\u2026"</string> <string name="wifi_p2p_menu_rename" msgid="8448896306960060415">"Eszköz átnevezése"</string> <string name="wifi_p2p_peer_devices" msgid="299526878463303432">"Partnereszközök"</string> <string name="wifi_p2p_remembered_groups" msgid="3847022927914068230">"Megjegyzett csoportok"</string> @@ -650,8 +659,8 @@ <string name="wifi_p2p_cancel_connect_message" msgid="7477756213423749402">"Szeretné törölni a(z) <xliff:g id="PEER_NAME">%1$s</xliff:g> eszközhöz való csatlakozásra vonatkozó meghívást?"</string> <string name="wifi_p2p_delete_group_message" msgid="834559380069647086">"Elfelejtse ezt a csoportot?"</string> <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Hordozható Wi-Fi hotspot"</string> - <string name="wifi_tether_starting" msgid="1322237938998639724">"Hotspot bekapcsolása..."</string> - <string name="wifi_tether_stopping" msgid="4835852171686388107">"Hotspot kikapcsolása..."</string> + <string name="wifi_tether_starting" msgid="1322237938998639724">"Hotspot bekapcsolása\u2026"</string> + <string name="wifi_tether_stopping" msgid="4835852171686388107">"Hotspot kikapcsolása\u2026"</string> <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"A(z) <xliff:g id="NETWORK_SSID">%1$s</xliff:g> hordozható hotspot aktív"</string> <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"A hordozható Wi-Fi hotspot hibája"</string> <string name="wifi_tether_configure_ap_text" msgid="61237027772641155">"Wi-Fi hotspot beállítása"</string> @@ -802,7 +811,7 @@ <string name="memory_available" msgid="5052397223077021181">"Elérhető"</string> <string name="memory_available_read_only" msgid="6497534390167920206">"Elérhető (csak olvasható)"</string> <string name="memory_size" msgid="6629067715017232195">"Összes hely"</string> - <string name="memory_calculating_size" msgid="2188358544203768588">"Számítás..."</string> + <string name="memory_calculating_size" msgid="2188358544203768588">"Számítás\u2026"</string> <string name="memory_apps_usage" msgid="2348501997988663688">"Alkalmazások (alkalmazásadatok és médiatartalom)"</string> <string name="memory_media_usage" msgid="3738830697707880405">"Média"</string> <string name="memory_downloads_usage" msgid="3755173051677533027">"Letöltések"</string> @@ -980,11 +989,11 @@ <string name="terms_title" msgid="7697580845616764642">"Általános Szerződési Feltételek"</string> <string name="settings_license_activity_title" msgid="7553683406244228650">"Nyílt forráskódú licencek"</string> <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Gond van a licencek betöltésével."</string> - <string name="settings_license_activity_loading" msgid="3337535809093591740">"Betöltés…"</string> + <string name="settings_license_activity_loading" msgid="3337535809093591740">"Betöltés\u2026"</string> <string name="settings_safetylegal_title" msgid="1289483965535937431">"Biztonsági információk"</string> <string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"Biztonsági információk"</string> <string name="settings_safetylegal_activity_unreachable" msgid="232523852222964470">"Nincs adatkapcsolat. Az információ azonnali megtekintéséhez keresse fel a következő helyet bármelyik számítógépről, amely csatlakozik az internethez: %s."</string> - <string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"Betöltés…"</string> + <string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"Betöltés\u2026"</string> <string name="lockpassword_choose_your_password_header" msgid="8624900666929394990">"Adjon meg egy jelszót"</string> <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Válassza ki a mintát"</string> <string name="lockpassword_choose_your_pin_header" msgid="7598849519816138302">"Adja meg PIN-kódját"</string> @@ -1092,7 +1101,7 @@ <string name="internal_storage" msgid="1584700623164275282">"Belső tárhely"</string> <string name="sd_card_storage" product="nosdcard" msgid="2673203150465132465">"USB-tár"</string> <string name="sd_card_storage" product="default" msgid="7623513618171928235">"SD-kártya"</string> - <string name="recompute_size" msgid="7722567982831691718">"Méret újraszámítása..."</string> + <string name="recompute_size" msgid="7722567982831691718">"Méret újraszámítása\u2026"</string> <string name="clear_data_dlg_title" msgid="5605258400134511197">"Alkalmazásadatok törlése?"</string> <string name="clear_data_dlg_text" msgid="8847257251846779938">"Az alkalmazás minden adata véglegesen törlésre kerül. Ez magában foglalja az összes fájlt, beállítást, fiókot, adatbázist stb."</string> <string name="dlg_ok" msgid="2402639055725653590">"OK"</string> @@ -1114,7 +1123,7 @@ <string name="join_many_items_middle" msgid="7556692394478220814">"<xliff:g id="ADDED_ITEM">%1$s</xliff:g>, <xliff:g id="REST_OF_ITEMS">%2$s</xliff:g>"</string> <string name="security_settings_billing_desc" msgid="8061019011821282358">"Ez az alkalmazás díjat számíthat fel:"</string> <string name="security_settings_premium_sms_desc" msgid="8734171334263713717">"Emelt díjas SMS küldése"</string> - <string name="computing_size" msgid="1599186977475211186">"Számítás..."</string> + <string name="computing_size" msgid="1599186977475211186">"Számítás\u2026"</string> <string name="invalid_size_value" msgid="7563537715280712285">"A csomag méretének kiszámítása sikertelen."</string> <string name="empty_list_msg" msgid="5993162337235907160">"Nincsenek telepítve harmadik fél által készített alkalmazások."</string> <string name="version_text" msgid="9189073826278676425">"Verzió: <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string> @@ -1152,7 +1161,7 @@ <!-- no translation found for service_client_name (4037193625611815517) --> <skip /> <string name="service_background_processes" msgid="6844156253576174488">"<xliff:g id="MEMORY">%1$s</xliff:g> szabad"</string> - <string name="service_foreground_processes" msgid="7583975676795574276">"<xliff:g id="MEMORY">%1$s</xliff:g> fogl"</string> + <string name="service_foreground_processes" msgid="7583975676795574276">"<xliff:g id="MEMORY">%1$s</xliff:g> foglalt"</string> <string name="memory" msgid="6609961111091483458">"RAM"</string> <!-- no translation found for service_process_name (4098932168654826656) --> <skip /> @@ -1225,7 +1234,7 @@ <string name="user_dict_settings_context_menu_delete_title" msgid="9140703913776549054">"Törlés"</string> <string name="user_dict_settings_empty_text" msgid="8165273379942105271">"Nincsenek szavak a felhasználói szótárban. Új szavakat a Hozzáadás (+) gomb megérintésével vehet fel."</string> <string name="user_dict_settings_all_languages" msgid="6742000040975959247">"Minden nyelven"</string> - <string name="user_dict_settings_more_languages" msgid="7316375944684977910">"További nyelvek…"</string> + <string name="user_dict_settings_more_languages" msgid="7316375944684977910">"További nyelvek\u2026"</string> <string name="testing" msgid="6584352735303604146">"Tesztelés"</string> <string name="testing_phone_info" product="tablet" msgid="193561832258534798">"Táblagép adatai"</string> <string name="testing_phone_info" product="default" msgid="8656693364332840056">"Telefon adatai"</string> @@ -1282,6 +1291,16 @@ <string name="enforce_read_external_summary" product="default" msgid="2750027486786530064">"Az alkalmazások kérjenek engedélyt az SD-kártya olvasására"</string> <string name="enforce_read_external_confirm_title" product="default" msgid="273220585729800783">"Védetté teszi az SD-kártyát?"</string> <string name="enforce_read_external_confirm_message" product="default" msgid="3858482712337574407">"Ha az SD-kártya védett, az alkalmazásoknak engedélyt kell kérniük a külső tárhelyen tárolt adatok olvasására."\n\n"Előfordulhat, hogy egyes alkalmazások nem működnek addig, amíg a fejlesztők nem frissítik azokat."</string> + + <!-- Setting checkbox title for root access --> + <string name="root_access">Rendszergazda hozzáférés</string> + <string name="root_access_warning_title">Rendszergazdai hozzáférés engedélyezése</string> + <string name="root_access_warning_message">Veszélyes dolog rendszergazdai jogosultságot adni az alkalmazásoknak és veszélyes lehet a rendszerre!</string> + <string name="root_access_none">Letiltva</string> + <string name="root_access_apps">Csak alkalmazások</string> + <string name="root_access_adb">Csak ADB</string> + <string name="root_access_all">Alkalmazások és ADB</string> + <string name="gadget_picker_title" msgid="98374951396755811">"Modul kiválasztása"</string> <string name="widget_picker_title" msgid="9130684134213467557">"Modul kiválasztása"</string> <string name="allow_bind_app_widget_activity_allow_bind_title" msgid="2538303018392590627">"Létrehozza a modult, és engedélyezi a hozzáférést?"</string> @@ -1312,6 +1331,7 @@ <string name="accessibility_toggle_screen_magnification_auto_update_preference_title" msgid="7218498768415430963">"Képernyőnagyítás automatikus frissítése"</string> <string name="accessibility_toggle_screen_magnification_auto_update_preference_summary" msgid="4392059334816220155">"Nagyítás frissítése az alkalmazások közti átmeneteknél"</string> <string name="accessibility_power_button_ends_call_prerefence_title" msgid="6673851944175874235">"A bekapcsoló gomb megszakítja a hívást"</string> + <string name="accessibility_home_button_answers_call_prerefence_title">A kezdőgomb fogadja a hívást</string> <string name="accessibility_toggle_speak_password_preference_title" msgid="5986628515113204844">"Jelszavak kimondása"</string> <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Érintés és tartási késleltetés"</string> <string name="accessibility_toggle_script_injection_preference_title" msgid="7950932054266694403">"Webelérhetőség fokozása"</string> @@ -1530,9 +1550,10 @@ <string name="sound_category_notification_title" msgid="3502115998790286943">"Értesítések"</string> <string name="sound_category_call_ringtone_vibrate_title" msgid="1543777228646645163">"Csengőhang és rezgés beállításai"</string> <string name="sound_category_system_title" msgid="1480844520622721141">"Rendszer"</string> + <string name="headset_category_title">Fejhallgató</string> <string name="wifi_setup_title" msgid="661074868726906436">"Wi-Fi beállítása"</string> <string name="wifi_setup_title_editing_network" msgid="7304321031985059969">"Csatlakozás <xliff:g id="NETWORK_NAME">%s</xliff:g> Wi-Fi hálózathoz"</string> - <string name="wifi_setup_title_connecting_network" msgid="3747859666621319757">"Csatlakozás a(z) <xliff:g id="NETWORK_NAME">%s</xliff:g> Wi-Fi hálózathoz..."</string> + <string name="wifi_setup_title_connecting_network" msgid="3747859666621319757">"Csatlakozás a(z) <xliff:g id="NETWORK_NAME">%s</xliff:g> Wi-Fi hálózathoz\u2026"</string> <string name="wifi_setup_title_connected_network" msgid="209755856836003839">"Csatlakozva <xliff:g id="NETWORK_NAME">%s</xliff:g> Wi-Fi hálózathoz"</string> <string name="wifi_setup_title_add_network" msgid="6932651000151032301">"Hálózat hozzáadása"</string> <string name="wifi_setup_not_connected" msgid="6997432604664057052">"Nincs csatlakozva:"</string> @@ -1546,17 +1567,17 @@ <string name="wifi_setup_forget" msgid="2562847595567347526">"Elfelejt"</string> <string name="wifi_setup_save" msgid="3659235094218508211">"Mentés"</string> <string name="wifi_setup_cancel" msgid="3185216020264410239">"Mégse"</string> - <string name="wifi_setup_status_scanning" msgid="5317003416385428036">"Hálózatok keresése..."</string> + <string name="wifi_setup_status_scanning" msgid="5317003416385428036">"Hálózatok keresése\u2026"</string> <string name="wifi_setup_status_select_network" msgid="7519563569903137003">"Érintsen meg egy hálózatot a csatlakozáshoz"</string> <string name="wifi_setup_status_existing_network" msgid="6394925174802598186">"Csatlakozás meglévő hálózathoz"</string> <string name="wifi_setup_status_unsecured_network" msgid="8143046977328718252">"Csatl. nem biztonságos hálózathoz"</string> <string name="wifi_setup_status_edit_network" msgid="4765340816724760717">"Írja be a hálózati konfigurációt"</string> <string name="wifi_setup_status_new_network" msgid="7468952850452301083">"Csatlakozás új hálózathoz"</string> - <string name="wifi_setup_status_connecting" msgid="4971421484401530740">"Csatlakozás…"</string> + <string name="wifi_setup_status_connecting" msgid="4971421484401530740">"Csatlakozás\u2026"</string> <string name="wifi_setup_status_proceed_to_next" msgid="6708250000342940031">"Ugrás a következő lépésre"</string> <string name="wifi_setup_status_eap_not_supported" msgid="5335338851032315905">"EAP nem támogatott."</string> <string name="wifi_setup_eap_not_supported" msgid="595556546597351489">"A beállítás során nem konfigurálhat EAP Wi-Fi kapcsolatot. Ezt a beállítás után a Beállításokban teheti meg, a Vezeték nélküli és egyéb hálózatok menüpontban."</string> - <string name="wifi_setup_description_connecting" msgid="2793554932006756795">"A kapcsolódás igénybe vehet pár percet..."</string> + <string name="wifi_setup_description_connecting" msgid="2793554932006756795">"A kapcsolódás igénybe vehet pár percet\u2026"</string> <string name="wifi_setup_description_connected" msgid="5235991893829582459">"Érintse meg a "<b>"Tovább"</b>" lehetőséget a telepítés folytatásához."\n\n"Érintse meg a "<b>"Vissza"</b>" lehetőséget egy másik Wi-Fi-hálózathoz való csatlakozáshoz."</string> <string name="accessibility_sync_enabled" msgid="558480439730263116">"Szinkronizálás engedélyezve"</string> <string name="accessibility_sync_disabled" msgid="1741194106479011384">"Szinkronizálás letiltva"</string> @@ -1575,7 +1596,7 @@ <string name="sync_disabled" msgid="8511659877596511991">"Szinkr. KIKAPCSOLVA"</string> <string name="sync_error" msgid="5060969083117872149">"Szinkronizálási hiba"</string> <string name="last_synced" msgid="4242919465367022234">"Utolsó szinkronizálás: <xliff:g id="LAST_SYNC_TIME">%1$s</xliff:g>"</string> - <string name="sync_in_progress" msgid="5151314196536070569">"Szinkronizálás..."</string> + <string name="sync_in_progress" msgid="5151314196536070569">"Szinkronizálás\u2026"</string> <string name="settings_backup" msgid="2274732978260797031">"Biztonsági mentés beállításai"</string> <string name="settings_backup_summary" msgid="7916877705938054035">"Biztonsági másolat készítése a beállításaimról"</string> <string name="sync_menu_sync_now" msgid="6154608350395805683">"Szinkronizálás most"</string> @@ -1677,11 +1698,11 @@ <string name="data_usage_menu_show_ethernet" msgid="5181361208532314097">"Ethernet-használat megjelenítése"</string> <string name="data_usage_menu_metered" msgid="5056695223222541863">"Mobil hotspotok"</string> <string name="data_usage_menu_auto_sync" msgid="8203999775948778560">"Adatok automatikus szinkronizálása"</string> - <string name="data_usage_change_cycle" msgid="7776556448920114866">"Ciklus módosítása..."</string> + <string name="data_usage_change_cycle" msgid="7776556448920114866">"Ciklus módosítása\u2026"</string> <string name="data_usage_pick_cycle_day" msgid="4470796861757050966">"Az adatforgalmi ciklus visszaállítása a hónap e napján:"</string> <string name="data_usage_empty" msgid="8621855507876539282">"Egy alkalmazás sem használt adatokat ekkor."</string> - <string name="data_usage_label_foreground" msgid="4938034231928628164">"Előtér"</string> - <string name="data_usage_label_background" msgid="3225844085975764519">"Háttér"</string> + <string name="data_usage_label_foreground" msgid="4938034231928628164">"Előtérben"</string> + <string name="data_usage_label_background" msgid="3225844085975764519">"Háttérben"</string> <string name="data_usage_app_restricted" msgid="3568465218866589705">"korlátozott"</string> <string name="data_usage_disable_mobile" msgid="5211007048880167438">"Mobiladatok kikapcsolása?"</string> <string name="data_usage_disable_mobile_limit" msgid="4644364396844393848">"Mobil adatkorlát beállítása"</string> @@ -1819,7 +1840,7 @@ <string name="user_confirm_remove_self_message" product="default" msgid="5391888073786090274">"Az Ön tárhelye és adatai el fognak tűnni a telefonról. Ezt a műveletet nem lehet visszavonni."</string> <string name="user_confirm_remove_message" product="tablet" msgid="4610106937214870034">"A felhasználó tárhelye és adatai el fognak tűnni a táblagépről. Ezt a műveletet nem lehet visszavonni."</string> <string name="user_confirm_remove_message" product="default" msgid="8130264611683731142">"A felhasználó tárhelye és adatai el fognak tűnni a telefonról. Ezt a műveletet nem lehet visszavonni."</string> - <string name="user_adding_new_user" msgid="1521674650874241407">"Új felhasználó hozzáadása..."</string> + <string name="user_adding_new_user" msgid="1521674650874241407">"Új felhasználó hozzáadása\u2026"</string> <string name="user_delete_user_description" msgid="3158592592118767056">"Felhasználó törlése"</string> <string name="user_delete_button" msgid="5131259553799403201">"Törlés"</string> <string name="global_change_warning" product="tablet" msgid="8045013389464294039">"Ez a beállítás minden felhasználót érint ezen a táblagépen."</string> @@ -1832,4 +1853,725 @@ <string name="user_picture_title" msgid="7297782792000291692">"Fotóazonosító"</string> <string name="cell_broadcast_settings" msgid="8415582011920085222">"Cellán belüli adások"</string> <string name="cell_broadcast_settings_summary" msgid="3301339398950905913">"Válassza ki a megjelenítendő vészriasztások típusait."</string> + + <!-- CYANOGENMOD EDITS START --> + + <string name="ok">OK</string> + + <!-- Quiet hours --> + <string name="quiet_hours_title">Csendes órák</string> + <string name="quiet_hours_summary">Csendes órák beállításai</string> + <string name="quiet_hours_note_title">Megjegyzés</string> + <string name="quiet_hours_note_summary">A bejövő hívásokra nincs hatással</string> + <string name="quiet_hours_enabled">Csendes órák</string> + <string name="quiet_hours_enabled_on">Aktív</string> + <string name="quiet_hours_enabled_off">Inaktív</string> + <string name="quiet_hours_start">Csendes órák kezdete</string> + <string name="quiet_hours_start_summary">Csendes órák engedélyezve</string> + <string name="quiet_hours_end">Csendes órák vége</string> + <string name="quiet_hours_end_summary">Csendes órák tiltva</string> + <string name="quiet_hours_mute">Értesítések</string> + <string name="quiet_hours_mute_on">Tiltva</string> + <string name="quiet_hours_mute_off">Engedélyezve</string> + <string name="quiet_hours_still">Rezgés</string> + <string name="quiet_hours_still_on">Tiltva</string> + <string name="quiet_hours_still_off">Engedélyezve</string> + <string name="quiet_hours_dim">Értesítési fények</string> + <string name="quiet_hours_dim_on">Tiltva</string> + <string name="quiet_hours_dim_off">Engedélyezve</string> + <string name="quiet_hours_haptic">Érintési visszajelzés</string> + <string name="quiet_hours_haptic_on">Tiltva</string> + <string name="quiet_hours_haptic_off">Engedélyezve</string> + <string name="quiet_hours_active_from">Bekapcsolva ettől</string> + <string name="quiet_hours_active_to">eddig</string> + + <!-- time range preference --> + <string name="start_time_title">Kezdete</string> + <string name="end_time_title">Vége</string> + + <!-- convert sound to vibration toggle --> + <string name="notification_convert_sound_to_vibration_title">Rezgés értesítéskor</string> + <string name="notification_convert_sound_to_vibration_summary">Rezgő módban az értesítések az egyes alkalmazások beállításaitól függetlenül mindig rezegni fognak</string> + + <!-- Hostname setting --> + <string name="device_hostname">Eszköz elérési neve</string> + + <!-- About phone screen, setting option name--> + <string name="mod_version">CyanogenMod verzió</string> + <string name="mod_version_default">Ismeretlen</string> + <!-- About phone screen, build date of ROM --> + <string name="build_date">Build dátuma</string> + <string name="build_date_default">2012-01-01-0000</string> + <!-- About device screen, Cpu info. --> + <string name="cpu_info">Processzor</string> + <!-- About phone screen, Free memory info --> + <string name="mem_info">Memória</string> + <!-- About phone screen, status item label --> + + <!-- Anonymous Statistics #CM --> + <!-- About device screen, list item title. Takes the user to the screen about opting in or out of anonymous statistics. --> + <string name="anonymous_statistics_title">CyanogenMod Statisztika</string> + <string name="anonymous_statistics_summary">Segítsen a CyanogenMod jobbá tételében, kapcsolja be a névtelen statisztikai adatok gyűjtését</string> + <string name="anonymous_statistics_warning_title">Tudnivalók</string> + <string name="anonymous_statistics_warning">A CyanogenMod statisztika engedélyezése nem terjed ki személyes adatokra, csak egy egyedi azonosítóval azonosítjuk az eszközöket. A statisztika minden rendszerindításkor elküldésre kerül, hogy követni tudjuk az új telepítéseket.\n\nAz elküldött adatok menüpont alatt tekintheti meg a statisztikai adatokat.</string> + <string name="enable_reporting_title">Statisztika engedélyezése</string> + <string name="preview_data_title">Elküldött adatok</string> + <string name="preview_data_summary">%s</string> + <string name="view_stats_title">Statisztika megtekintése</string> + <string name="anonymous_learn_more">Tudjon meg többet</string> + + <!-- Anonymous Statistics - Notification --> + <string name="anonymous_notification_desc">CyanogenMod Statisztika engedélyezése/tiltása</string> + + <!-- Anonymous Statistics - Preview --> + <string name="preview_id_title">Egyedi azonosító</string> + <string name="preview_device_title">Eszköz</string> + <string name="preview_version_title">Verzió</string> + <string name="preview_country_title">Ország kód</string> + <string name="preview_carrier_title">Szolgáltató</string> + + <!-- INTERFACE Settings --> + <!-- Settings main menu category heading. Interface (Launcher, Themes, System). [CHAR LIMIT=40] --> + <string name="header_category_interface">FELHASZNÁLÓI FELÜLET</string> + + <!-- Launcher settings --> + <string name="launcher_settings_title">Programindító</string> + + <!-- Themes settings --> + <string name="themes_settings_title">Témák</string> + + <!-- System Interface settings --> + <string name="system_settings_title">Rendszer</string> + <string name="system_interface_title">Rendszer felület</string> + + <!-- Notification Drawer --> + <string name="notification_drawer_title">Értesítési felület</string> + + <string name="lock_screen_title">Képernyőzár</string> + + <!-- Lock Screen Shortcuts --> + <string name="lockscreen_target_info">Módosításhoz húzza a csúszkát a kívánt pontra</string> + <string name="lockscreen_target_title">Képernyőzár hivatkozások</string> + <string name="lockscreen_target_summary">Hivatkozások hozzáadása vagy módosítása</string> + <string name="lockscreen_target_reset">Alapbeállítások visszaállítva.</string> + <string name="lockscreen_target_save">Képernyőzár hivatkozások elmentve.</string> + <string name="lockscreen_target_reset_title">Visszaállítás</string> + <string name="lockscreen_target_reset_message">Biztosan vissza kívánja állítani az összes hivatkozást alaphelyzetbe?</string> + <string name="lockscreen_target_empty">Üres</string> + <string name="lockscreen_target_edit_title">Hivatkozás szerkesztése</string> + <string name="lockscreen_target_edit_msg">Válassza ki vagy módosítsa a kívánt alkalmazást vagy tevékenységet és a hozzá tartozó ikont</string> + + <!-- Lock screen vibrate settings --> + <string name="lockscreen_vibrate_enabled_title">Rezgés</string> + <string name="lockscreen_vibrate_enabled_head">Rezgés feloldáskor</string> + + <!-- Lock screen misc. settings --> + <string name="lockscreen_battery_status_title">Akkumulátor állapot</string> + <string name="lockscreen_battery_status_charging">Csak töltéskor</string> + <string name="lockscreen_battery_status_alwayson">Mindig</string> + + <!-- Profiles settings --> + <string name="profiles_settings_title">Profilok</string> + <string name="profiles_general_title">Általános</string> + <string name="profiles_add">Hozzáadás</string> + <string name="profile_menu_delete">Törlés</string> + <string name="profile_settings_title">Profil</string> + <string name="profile_empty_list_profiles_off">A rendszerprofil konfiguráláshoz és használathoz kapcsolja be a profilokat.</string> + + <!-- Add Profile --> + <string name="add_profile_dialog_title">Új profil létrehozása</string> + <string name="profile_name_title">Név</string> + <string name="profile_profile_name_prompt">Adja meg az új profil nevét</string> + <string name="menu_new_profile">Új profil</string> + <string name="menu_new_profile_summary">Alakítson ki egy új profilt</string> + <string name="new_profile_name"><Új profil></string> + + <!-- Rename Dialog --> + <string name="rename_dialog_title">Átnevezés</string> + <string name="rename_dialog_message">Adja meg az új nevet</string> + <string name="duplicate_profile_name">Már létező profil!</string> + <string name="duplicate_appgroup_name">Már létező alkalmazáscsoport!</string> + + <!-- Reset Profiles --> + <string name="profile_reset_title">Visszaállítás</string> + <string name="profile_reset_message">Biztosan vissza kívánja állítani az összes profilt és alkalmazáscsoportot alaphelyzetbe?</string> + + <!-- Delete confimation messages --> + <string name="profile_delete_confirm">Biztosan törölni akarja ezt a profilt?</string> + <string name="profile_app_delete_confirm">Biztosan el akarja távolítani ezt az alkalmazást?</string> + <string name="profile_cannot_delete">A használatban lévő profil nem törölhető</string> + + <!-- Profile Config screen PreferenceGroup titles --> + <string name="profile_connectionoverrides_title">Kapcsolatok felülbírálása</string> + <string name="profile_volumeoverrides_title">Hangok felülbírálása</string> + <string name="profile_vibratoroverrides_title">Rezgő mód felülbírálása</string> + <string name="connection_state_disabled">Letiltva</string> + <string name="connection_state_enabled">Engedélyezve</string> + <string name="volume_override_summary">Beállítva</string> + <string name="vibrator_state_disabled">Letiltva</string> + <string name="vibrator_state_enabled">Engedélyezve</string> + <string name="vibrator_state_silent">Néma mód esetén</string> + + <!-- Menu item for managing profiles --> + <string name="profile_profiles_manage">Profilok</string> + <string name="profile_profile_manage">Profilok kezelése</string> + <string name="profile_applist_manage">Alkalmazás lista</string> + <string name="profile_appgroups_manage">Alkalmazások</string> + <string name="profile_appgroup_manage">Alkalmazáscsoportok kezelése</string> + + <!-- Profile settings screen, section header for settings related to notification profiles --> + <string name="profile_settings">Profil beállítások</string> + <string name="profile_name">Név</string> + + <!-- Profile Settings sound modes labels --> + <string name="sound_mode">Értesítési mód</string> + <string name="ringer_mode">Csengetés módja</string> + <string name="lights_mode">Fényjelzés módja</string> + <string name="vibrate_mode">Rezgő mód</string> + <string name="choose_soundtone">Értesítés hangja</string> + <string name="choose_ringtone">Telefon csengőhangja</string> + + <!-- Sound settings screen, setting option name to pick ringtone (a list dialog comes up)--> + <string name="soundtone_title">Értesítés hangja</string> + <string name="soundtone_summary">""</string> + + <!-- Title for application group setting screen --> + <string name="profile_appgroups_title">Alkalmazáscsoportok</string> + <string name="profile_applist_title">Alkalmazások</string> + <string name="profile_new_appgroup">Új alkalmazáscsoport</string> + <string name="profile_delete_appgroup">Alkalmazáscsoport törlése</string> + <string name="profile_appgroup_name_prompt">Adja meg az új alkalmazáscsoport nevét</string> + <string name="profile_appgroup_name_title">Név</string> + <string name="profile_add_app">Alkalmazás hozzáadása</string> + <string name="profile_delete_app">Alkalmazás eltávolítása</string> + + <!-- Add application dialog box title --> + <string name="profile_choose_app">Válasszon alkalmazást</string> + <string name="profile_settings_header">Profil beállítások</string> + + <!-- Profiles - system settings --> + <string name="profile_system_settings_title">Rendszer beállítások</string> + <string name="profile_lockmode_title">Képernyőzár módja</string> + <string name="profile_lockmode_default">Alapértelmezett</string> + <string name="profile_lockmode_insecure">Védtelen</string> + <string name="profile_lockmode_disabled">Letiltva</string> + <string name="profile_lockmode_default_summary">Alapértelmezett használata</string> + <string name="profile_lockmode_insecure_summary">Védtelen használata</string> + <string name="profile_lockmode_disabled_summary">Nincs zárolt képernyő</string> + <string name="profile_airplanemode_title">Repülőgép üzemmód</string> + <string name="profile_disable_screen_lock_summary">Ez a profil kikapcsolja a képernyőzárat</string> + + <string name="vibrator_type_ringer">Telefonhívások</string> + <string name="vibrator_type_notification">Értesítések</string> + + <!-- Connection override toggles (not all are used at this time ) --> + <string name="possibleButtons">Lehetséges kapcsolók</string> + <string name="toggleWifi">Wi-Fi</string> + <string name="toggleWifiAp">Hordozható Wi-Fi hotspot</string> + <string name="toggleBluetooth">Bluetooth</string> + <string name="toggleGPS">GPS</string> + <string name="toggleData">Mobilinternet</string> + <string name="toggleSync">Szinkronizálás</string> + <string name="toggle2g3g">2G/3G</string> + <string name="toggleSound">Csengetés módja</string> + <string name="toggleBrightness">Fényerő</string> + <string name="toggleAutoRotate">Tájolás</string> + <string name="toggleScreenTimeout">Képernyő időkorlátja</string> + <string name="toggleAirplane">Repülőgép üzemmód</string> + <string name="toggleFlashlight">Zseblámpa</string> + <string name="toggleLockScreen">Zárolt kijelző</string> + <string name="toggleWimax">WiMAX</string> + + <!-- Screen security - Screen security --> + <string name="screen_security_category">Képernyővédelem</string> + <string name="screen_security_title">Képernyőzár</string> + <string name="screen_security_summary">Képernyőzár beállítások, biztonság, késleltetés</string> + <string name="additional_options_title">További lehetőségek</string> + <string name="unlock_menu_unlock_title">Menü gomb feloldás</string> + <string name="unlock_menu_unlock_summary">Készülék feloldása a menü gomb megnyomásával</string> + <string name="unlock_home_unlock_title">Kezdő gomb feloldás</string> + <string name="unlock_home_unlock_summary">Készülék feloldása a kezdő gomb megnyomásával</string> + <string name="unlock_quick_unlock_control_title">Gyors feloldás</string> + <string name="unlock_quick_unlock_control_summary">Automatikus feloldás a helyes jelszó/PIN kód beütése után</string> + + <!-- Slide lock delay --> + <string name="delay_and_timeout_title">Képernyőzár késleltetés</string> + <string name="slide_lock_delay_title">Képernyőzár késleltetése</string> + <string name="slide_lock_timeout_delay_title">Késleltetés bekapcsolt kijelzőnél</string> + <string name="slide_lock_screenoff_delay_title">Késleltetés kikapcsolt kijelzőnél</string> + <string name="slide_lock_delay_none">Nincs</string> + <string name="slide_lock_delay_1s">1 másodperc</string> + <string name="slide_lock_delay_5s">5 másodperc</string> + <string name="slide_lock_delay_10s">10 másodperc</string> + <string name="slide_lock_delay_15s">15 másodperc</string> + <string name="slide_lock_delay_30s">30 másodperc</string> + <string name="slide_lock_delay_1m">1 perc</string> + <string name="slide_lock_delay_5m">5 perc</string> + <string name="slide_lock_delay_10m">10 perc</string> + <string name="slide_lock_delay_30m">30 perc</string> + + <!-- Performance settings --> + <string name="performance_settings_title">Teljesítmény</string> + + <!-- Performance Settings : Warning dialog --> + <string name="performance_settings_warning_title">Innentől óvatosan</string> + <string name="performance_settings_warning">Ezek a beállítások kísérleti jelleggel szerepelnek itt. Bármilyen változtatás a készülék instabilitásához, meghibásodásához, vagy adatvesztéshez vezethet.\n\nAz esetleges károkért nem vállalunk felelősséget.</string> + + <!-- Performance Settings : Processor Settings --> + <!-- Performance Settings : Processor settings title --> + <string name="processor_title">Processzor</string> + <!-- Performance Settings : Processor settings summary. --> + <string name="processor_summary">CPU órajel és ütemező beállítások</string> + + <!-- Performance Settings : Processor settings sub items --> + <string name="cpu_cur_freq_title">Jelenlegi CPU frekvencia</string> + <string name="cpu_governors_title">CPU ütemező</string> + <string name="cpu_governors_summary">%S</string> + <string name="cpu_min_freq_title">Minimum CPU frekvencia</string> + <string name="cpu_min_freq_summary">%s</string> + <string name="cpu_max_freq_title">Maximum CPU frekvencia</string> + <string name="cpu_max_freq_summary">%s</string> + <string name="cpu_set_on_boot">Bekapcsoláskor érvénybe lép</string> + <string name="cpu_set_on_boot_summary">Processzor beállítása indításkor</string> + + <!-- Performance Settings : I/O scheduler settings title --> + <string name="io_scheds_title">I/O ütemező</string> + <!-- Performance Settings : I/O scheduler settings summary. --> + <string name="io_scheds_summary">I/O módosítása</string> + + <!-- Performance Settings : I/O scheduler settings sub items --> + <string name="io_sched_title">I/O ütemező</string> + <string name="io_sched_summary">%S</string> + <string name="io_sched_set_on_boot">Bekapcsoláskor érvénybe lép</string> + <string name="io_sched_set_on_boot_summary">I/O ütemező beállítása indításkor</string> + + <!-- Memory Management --> + <string name="memory_management_title">Memória kezelés</string> + <string name="memory_management_summary">A memóriahasználat változtatásával testreszabhatod a rendszer teljesítményét</string> + <!-- zRam --> + <string name="pref_zram_title">zRam</string> + <string name="pref_zram_summary">Memóriatömörítés virtuális kapacitásnöveléshez (újraindítás szükséges)</string> + <!-- KSM --> + <string name="pref_ksm_title">KSM</string> + <string name="pref_ksm_summary">Azonos memórialapok összevonása virtuális kapacitásnöveléshez</string> + <!-- Purgeable Assets --> + <string name="pref_purgeable_assets_title">Memória ürítés engedélyezése</string> + <string name="pref_purgeable_assets_summary">Szükség esetén engedélyezi több RAM felszabadítását (újraindítás szükséges)</string> + + <!-- Performance Settings : Dithering --> + <string name="pref_use_dithering_title">Felületjavítás</string> + <string name="dithering_no_dither">Kikapcsolva</string> + <string name="dithering_color_banding">Csíkozódás javítása (alapértelmezés)</string> + <string name="dithering_blur_effect">Csíkozódás és elmosás effektusok javítása</string> + + <!-- Performance Settings : 16bpp Alpha --> + <string name="pref_use_16bpp_alpha_title">16bit átlátszóság</string> + <string name="pref_use_16bpp_alpha_summary">Jobb grafikus teljesítmény, de gyengébb minőség illetve megjelenítési rendellenességek léphetnek fel (újraindítás szükséges)</string> + + <!-- Display : Rotation --> + <string name="display_rotation_title">Képernyő elforgatás</string> + <string name="display_rotation_disabled">Letiltva</string> + <string name="display_rotation_unit">fok</string> + <string name="display_rotation_category_title">Forgatás módok</string> + <string name="display_rotation_0_title">0 fok</string> + <string name="display_rotation_90_title">90 fok</string> + <string name="display_rotation_180_title">180 fok</string> + <string name="display_rotation_270_title">270 fok</string> + + <!-- Lock screen shortcuts --> + <string name="picker_activities">Tevékenységek</string> + <string name="select_custom_app_title">Válasszon egyedi alkalmazást</string> + <string name="select_custom_activity_title">Válasszon egyedi tevékenységet</string> + <string name="icon_picker_choose_icon_title">Válasszon ikont</string> + <string name="icon_picker_alarm">Ébresztő</string> + <string name="icon_picker_browser">Böngésző</string> + <string name="icon_picker_calendar">Naptár</string> + <string name="icon_picker_camera">Kamera</string> + <string name="icon_picker_chrome">Chrome</string> + <string name="icon_picker_email">Email</string> + <string name="icon_picker_email2">Email Holo</string> + <string name="icon_picker_facebook">Facebook</string> + <string name="icon_picker_gallery">Galéria</string> + <string name="icon_picker_google_small">Google (kicsi)</string> + <string name="icon_picker_googleplus">Google+</string> + <string name="icon_picker_googletalk">Google Csevegő</string> + <string name="icon_picker_maps">Térkép</string> + <string name="icon_picker_movie">Film</string> + <string name="icon_picker_music">Zene</string> + <string name="icon_picker_nav_normal">Navigáció</string> + <string name="icon_picker_phone">Telefon</string> + <string name="icon_picker_podcast">Podcast</string> + <string name="icon_picker_rss">Rss</string> + <string name="icon_picker_search">Keresés</string> + <string name="icon_picker_sms">Üzenet</string> + <string name="icon_picker_twitter">Twitter</string> + + <!-- String for IconPicker --> + <string name="icon_picker_title">Válasszon ikont</string> + <string name="icon_picker_system_icons_title">Rendszer ikonok</string> + <string name="icon_picker_gallery_title">Galéria</string> + <string name="icon_picker_pack_title">Ikon csomag</string> + + <string name="increasing_ring_title">Emelkedő csengőhang</string> + <!-- Sound settings screen, the caption of the checkbox for making incoming calls increase in volume --> + <string name="checkbox_increasing_ring">Engedélyezve</string> + <!-- Sound settings screen, the title of the volume bar to adjust the minimum increasing ring volume --> + <string name="increasing_ring_min_volume_title">Kezdeti hangerő</string> + <string name="increasing_ring_volume_notice">Megjegyzés:\nAmennyiben a kezdeti hangerő nagyobb, mint a csengőhangok hangerejéhez beállított érték, a csengőhang az alapértelmezett csengetési hangerővel lesz lejátszva.</string> + <string name="increasing_ring_interval_title">Emelkedés intervalluma</string> + <string name="increasing_ring_interval_eachring">Csengetésenként</string> + <string name="increasing_ring_interval_half_second">0.5 másodperc</string> + <string name="increasing_ring_interval_1second">1 másodperc</string> + <string name="increasing_ring_interval_2seconds">2 másodperc</string> + <string name="increasing_ring_interval_3seconds">3 másodperc</string> + <string name="increasing_ring_interval_5seconds">5 másodperc</string> + <string name="increasing_ring_interval_10seconds">10 másodperc</string> + + <string name="profile_write_nfc_tag">NFC tag kiírása</string> + <string name="profile_write_touch_tag">Válassza ki a kiírandó tag-ot</string> + <string name="profile_write_success">Tag sikeresen kiírva.</string> + <string name="profile_write_failed">Tag kiírása sikertelen!</string> + <string name="profile_selected">Kiválasztott profil: %1$s</string> + <string name="profile_nfc_text">Profil kiírása az NFC tag-ba, kiválasztás érintéssel. Dupla érintés az előző profil kiválasztása.</string> + <string name="profile_unknown_nfc_tag">Ismeretlen profil</string> + <string name="profile_add_nfc_text">Ez az NFC tag egy ismeretlen profilra mutat. Az NFC tag csatolása egy már meglévő profilhoz lehetővé teszi a jövőbeli kiválasztását.</string> + <string name="profile_select">Válasszon profilt</string> + + <string name="link_volume_ringtones">Csengő és értesítési hangok összekötése</string> + <string name="link_volume_mutes">Csengő és értesítési hangok némításának összekötése</string> + + <!-- Display settings screen, notification light settings --> + <string name="notification_light_general_title">Általános</string> + <string name="notification_light_applist_title">Alkalmazások</string> + <string name="notification_light_phonelist_title">Telefon</string> + <string name="notification_light_use_custom">Egyéni érték használata</string> + <string name="notification_light_enabled">Engedélyezve</string> + <string name="notification_light_disabled">Letiltva</string> + <string name="notification_light_default_value">Alapértelmezés</string> + <string name="notification_light_missed_call_title">Nem fogadott hívás</string> + <string name="notification_light_voicemail_title">Hangposta</string> + + <!-- Notification light dialogs --> + <string name="edit_light_settings">Jelzés beállítások</string> + <string name="pulse_speed_title">Impulzus hossza és sebessége</string> + <string name="picker_arrow">→</string> + <string name="default_time">Normál</string> + <string name="custom_time">Egyéni</string> + <string name="dialog_test">Teszt</string> + <string name="dialog_delete_title">Törlés</string> + <string name="dialog_delete_message">Biztosan törli a kiválasztott elemet?</string> + <string name="dialog_test_message">Kapcsolja ki a kijelzőt, hogy megtekinthesse a beállított eseményt vagy a teszt leállításához</string> + <string name="dialog_test_button">Elvet</string> + + <!-- Values for the notification light pulse spinners --> + <string name="pulse_length_always_on">Mindig bekapcsolva</string> + <string name="pulse_length_very_short">Nagyon röviden</string> + <string name="pulse_length_short">Rövid</string> + <string name="pulse_length_normal">Normál</string> + <string name="pulse_length_long">Hosszú</string> + <string name="pulse_length_very_long">Nagyon hosszan</string> + <string name="pulse_speed_very_fast">Nagyon gyors</string> + <string name="pulse_speed_fast">Gyors</string> + <string name="pulse_speed_normal">Normál</string> + <string name="pulse_speed_slow">Lassú</string> + <string name="pulse_speed_very_slow">Nagyon lassú</string> + + <!-- Battery light settings --> + <string name="battery_light_title">Akkumulátor jelzés</string> + <string name="battery_low_pulse_title">Villog, ha merül az akkumulátor</string> + <string name="battery_light_list_title">Színek</string> + <string name="battery_light_low_color_title">Gyenge az akkumulátor</string> + <string name="battery_light_medium_color_title">Töltés</string> + <string name="battery_light_full_color_title">Teljesen feltöltve</string> + + <!-- Sound settings screen --> + <string name="volume_overlay_title">Hangerő panel</string> + <string name="volbtn_music_controls_title">Zene vezérlése</string> + <string name="volbtn_music_controls_summary">Kikapcsolt képernyőnél a hangerőgombok nyomvatartásával válthat az éppen lejátszott zeneszámok között.</string> + <string name="headset_connect_player_title">Zenelejátszó indítása csatlakoztatáskor</string> + <string name="volume_ring_only_description">Csengőhang</string> + <string name="ring_mode_title">Csengetés módja</string> + <string name="ring_mode_normal">Normál</string> + <string name="ring_mode_vibrate">Rezgés</string> + <string name="ring_mode_mute">Néma</string> + + <!-- Hardware keys --> + <string name="hardware_keys_title">Hardver gombok</string> + <string name="hardware_keys_bindings_title">Gomb események</string> + <string name="hardware_keys_enable_custom_title">Egyéni műveletek engedélyezése</string> + <string name="hardware_keys_home_long_press_title">Kezdő gomb (hosszan)</string> + <string name="hardware_keys_menu_press_title">Menü gomb</string> + <string name="hardware_keys_menu_long_press_title">Menü gomb (hosszan)</string> + <string name="hardware_keys_assist_press_title">Kereső gomb</string> + <string name="hardware_keys_assist_long_press_title">Kereső gomb (hosszan)</string> + <string name="hardware_keys_app_switch_press_title">Alkalmazás választó gomb</string> + <string name="hardware_keys_app_switch_long_press_title">Alkalmazás választó gomb (hosszan)</string> + <string name="hardware_keys_show_overflow_title">Menü megjelenítése</string> + <string name="hardware_keys_show_overflow_summary">3-pontos menü megjelenítése az alkalmazásokban</string> + <string name="hardware_keys_show_overflow_toast_enable">A megjelenítés csak az alkalmazás újraindítása után lesz látható</string> + <string name="hardware_keys_show_overflow_toast_disable">A megjelenítés csak az alkalmazás újraindítása után fog megszűnni</string> + <string name="hardware_keys_action_nothing">Nincs esemény</string> + <string name="hardware_keys_action_menu">Megnyitás/bezárás menü</string> + <string name="hardware_keys_action_app_switch">Alkalmazás előzmények</string> + <string name="hardware_keys_action_search">Kereső asszisztens</string> + <string name="hardware_keys_action_voice_search">Hangalapú keresés</string> + <string name="hardware_keys_action_in_app_search">Alkalmazáson belüli keresés</string> + + <!-- Navigation Bar #CM --> + <string name="navigation_bar_title">Navigációs sáv</string> + <string name="navigation_bar_help_text">1 - A szerkesztéshez érintse meg a lakatot\n\n2 - Válasszon gombot a hozzárendelés módosításához\n\n3 - Tartsa hosszan a sorba rendezéshez\n\n4 - A mentéshez érintse meg ismét a lakatot\n\n5 - Az alaphelyzet visszaállításához érintse meg a Visszaállítás gombot\n\n</string> + <string name="navigation_bar_tips">• Egy esemény csak egy gombhoz állítható be\n\n• A kezdőgomb nem társítható\n\n• Az oldalsó gombok nem rendezhetőek át</string> + <string name="navigation_bar_tips_title">Gyors tippek</string> + <string name="navigation_bar_reset_message">Törli a jelenlegi beállításokat és visszaállítja az alaphelyzetet?</string> + <string name="navigation_bar_save_message">Navigációs sáv beállításai elmentve</string> + <string name="navigation_bar_reset_toast">Navigációs sáv beállításai visszaállítva az alaphelyzetbe</string> + <string name="navigation_bar_menu_editable">Szerkeszthető</string> + <string name="navigation_bar_menu_locked">Zárolt</string> + + <!-- Power Widget --> + <string name="power_widget_title">Energiagazdálkodás</string> + <string name="title_expanded_widget">Engedélyezés</string> + <string name="power_widget_behavior">Viselkedés</string> + <string name="title_expanded_hide_onchange">Elrejtés kapcsoló kiválasztásakor</string> + <string name="title_expanded_hide_indicator">Jelölők elrejtése</string> + <string name="title_expanded_hide_scrollbar">Görgetősáv elrejtése</string> + <string name="title_widget_picker">Modul kapcsolók</string> + <string name="summary_widget_picker">Állítsa be mely kapcsolók legyenek láthatóak az energiagazdálkodás felületén</string> + <string name="title_widget_order">Kapcsolók sorrendje</string> + <string name="summary_widget_order">Állítsa be az energiagazdálkodás kapcsolóinak sorrendjét</string> + <string name="title_buttons">Kapcsolók</string> + <string name="title_toggle_wifi">Wi-Fi</string> + <string name="title_toggle_bluetooth">Bluetooth</string> + <string name="title_toggle_gps">GPS</string> + <string name="title_toggle_sound">Hang</string> + <string name="title_toggle_brightness">Fényerő</string> + <string name="title_toggle_sync">Szinkronizálás</string> + <string name="title_toggle_wifiap">Wi-Fi AP</string> + <string name="title_toggle_screentimeout">Képernyő időkorlátja</string> + <string name="title_toggle_mobiledata">Mobilinternet</string> + <string name="title_toggle_lockscreen">Képernyőzár</string> + <string name="title_toggle_networkmode">2G/3G</string> + <string name="title_toggle_autorotate">Kijelző tájolás</string> + <string name="title_toggle_airplane">Repülőgép üzemmód</string> + <string name="title_toggle_flashlight">Zseblámpa</string> + <string name="title_toggle_sleep">Alvó mód</string> + <string name="title_toggle_media_play_pause">Média: Lejátszás/Szünet</string> + <string name="title_toggle_media_previous">Média: Előző</string> + <string name="title_toggle_media_next">Média: Következő</string> + <string name="title_toggle_lte">LTE</string> + <string name="title_toggle_wimax">WiMAX</string> + <string name="title_button_modes">Kapcsolók beállításai</string> + <string name="pref_brightness_mode_title">Fényerő kapcsoló</string> + <string name="pref_brightness_mode_summary">Válassza ki a fényerő kapcsoló beállításait</string> + <string name="cm_brightness_mode_auto">Automatikus</string> + <string name="cm_brightness_mode_dim">Sötét</string> + <string name="pref_network_mode_title">Hálózati kapcsoló</string> + <string name="pref_screentimeout_mode_title">Képernyő időkorlát kapcsoló</string> + <string name="pref_ring_mode_title">Hang kapcsoló</string> + <string name="pref_ring_mode_summary">Válassza ki a hang kapcsoló beállításait</string> + <string name="cm_sound_mode_silent">Néma</string> + <string name="cm_sound_mode_vibrate">Rezgés</string> + <string name="cm_sound_mode_sound">Hang</string> + <string name="cm_sound_mode_soundVibrate">Hang + Rezgés</string> + <string name="pref_flash_mode_title">Zseblámpa kapcsoló</string> + <string name="expanded_haptic_feedback_title">Érintési visszajelzés</string> + + <!-- Kill app long-press back --> + <string name="kill_app_longpress_back">Alkalmazás bezárás</string> + <string name="kill_app_longpress_back_summary">Alkalmazás bezárása nyomva tartott vissza gombbal</string> + + <!-- Change Log strings --> + <string name="changelog_title">Változások megtekintése</string> + <string name="changelog_loading">Változások betöltése\u2026</string> + <string name="changelog_error">Nem lehet betölteni a változásokat</string> + <string name="changelog_unknown">Ismeretlen</string> + <string name="changelog_version">Verzió</string> + + <!-- Power menu enable disable --> + <string name="power_menu_title">Kikapcsoló menü</string> + <string name="power_menu_reboot_title">Újraindítás</string> + <string name="power_menu_screenshot_title">Képernyőmentés</string> + <string name="power_menu_expanded_desktop">Képernyő kiterjesztés</string> + <string name="expanded_desktop_summary_status_bar">Értesítési sávval</string> + <string name="expanded_desktop_summary_no_status_bar">Értesítési sáv nélkül</string> + <string name="expanded_desktop_disabled">Kikapcsolva</string> + <string name="expanded_desktop_status_bar">Értesítési sáv megjelenítése</string> + <string name="expanded_desktop_no_status_bar">Értesítési sáv elrejtése</string> + <string name="power_menu_profiles_title">Profil választó</string> + <string name="power_menu_airplane_title">Repülőgép üzemmód</string> + <string name="power_menu_user_title">Felhasználóváltás</string> + <string name="power_menu_sound_title">Hang mód</string> + + <!-- CM Updater --> + <string name="cmupdate_settings_title">CyanogenMod frissítések</string> + <string name="cmupdate_settings_summary">Elérhető frissítések keresése, megtekintése, vagy telepítése</string> + + <!-- Advanced, Device specific (DeviceParts) settings --> + <string name="advanced_settings_title">Haladó</string> + + <!-- Whether to display IME switcher notifcation --> + <string name="ime_switcher_notify">Beviteli mód választó</string> + <string name="ime_switcher_notify_summary">Beviteli mód választó megjelenítése az értesítési sávon</string> + + <!-- Status bar --> + <string name="status_bar_title">Értesítési sáv</string> + <string name="status_bar_clock_title">Óra</string> + <string name="status_bar_general_title">Általános</string> + <string name="status_bar_show_clock_title">Óra megjelenítése</string> + <string name="status_bar_am_pm_title">AM/PM stílus</string> + <string name="status_bar_am_pm_info">24 órás megjelenítés aktív</string> + <string name="status_bar_battery_title">Akkumulátor állapotjelző stílusa</string> + <string name="status_bar_toggle_brightness">Fényerő vezérlés</string> + <string name="status_bar_toggle_brightness_summary">Engedélyezi az értesítési sávon a fényerő változtatását ujjának csúsztatásával</string> + <string name="status_bar_toggle_info">Automatikus fényerő engedélyezve</string> + <string name="status_bar_signal_text_title">Térerő jelzés stílusa</string> + <string name="status_bar_style_icon">Ikon</string> + <string name="status_bar_style_hidden">Rejtett</string> + <string name="status_bar_signal_text_show_text">Szöveg</string> + <string name="status_bar_battery_status_percentage">Százalék</string> + <string name="status_bar_battery_status_circle">Kör</string> + <string name="status_bar_battery_status_circle_percentage">Kör százalékkal</string> + + <!-- Status bar notification count --> + <string name="status_bar_notif_count_title">Értesítések száma</string> + <string name="status_bar_notif_count_summary">Folyamatban lévő értesítések számának megjelenítése az értesítési sávon</string> + + <!-- Wakeup options --> + <string name="display_category_wakeup_options_title">Ébredés beállítások</string> + <string name="pref_volume_wake_title">Hangerő gombra ébredés</string> + <string name="pref_volume_wake_summary">A hangerő gomb fel/le megnyomására felébred a készülék</string> + + <!-- Setting checkbox summary for displaying USB debugging notification --> + <string name="adb_notify">USB hibakeresés értesítései</string> + <string name="adb_notify_summary">Értesítések megjelenítése az USB hibakereső módban való csatlakozáskor</string> + + <!-- Launches Dev Tools --> + <string name="development_tools_title">Fejlesztői eszközök</string> + + <!-- USB Mass Storage --> + <string name="usb_mass_storage_title">USB háttértár</string> + <string name="usb_mass_storage_summary">USB háttértár mód engedélyezése</string> + + <!-- Android debugging over WiFi --> + <string name="adb_over_network">ADB hálózaton keresztül</string> + <string name="adb_over_network_summary">Engedélyezi a TCP/IP hibakeresést hálózati eszközön keresztül (Wi-Fi, USB hálózatok). Újraindítás után alaphelyzetbe áll vissza.</string> + <!-- Warning for Adb over Network --> + <string name="adb_over_network_warning" product="tablet">VIGYÁZAT: Ha a funkció engedélyezve van, a táblagép nyitva áll bármilyen behatolásra az összes kapcsolodó hálózaton keresztül!\n\nCsak biztonságos hálózatra csatlakozva érdemes engedélyezni.\n\nBiztosan engedélyezni szeretné?</string> + <string name="adb_over_network_warning" product="default">VIGYÁZAT: Ha a funkció engedélyezve van, a telefon nyitva áll bármilyen behatolásra az összes kapcsolodó hálózaton keresztül!\n\nCsak biztonságos hálózatra csatlakozva érdemes engedélyezni.\n\nBiztosan engedélyezni szeretné?</string> + + <string name="lockscreen_buttons_title">Gomb műveletek</string> + <string name="lockscreen_buttons_summary">Képernyőzár beállítások</string> + <string name="lockscreen_long_press_back_title">Hosszan nyomva tartott vissza gomb</string> + <string name="lockscreen_long_press_home_title">Hosszan nyomva tartott kezdő gomb</string> + <string name="lockscreen_long_press_menu_title">Hosszan nyomva tartott menü gomb</string> + <string name="lockscreen_buttons_no_action">Nincs művelet</string> + <string name="lockscreen_buttons_flashlight">Zseblámpa</string> + <string name="lockscreen_buttons_next">Következő zeneszám</string> + <string name="lockscreen_buttons_previous">Előző zeneszám</string> + <string name="lockscreen_buttons_playpause">Zene lejátszás/szünet</string> + <string name="lockscreen_buttons_toggle_sound">Hang mód</string> + + <!-- Quick settings panel --> + <string name="quick_settings_panel_title">Gyorsbeállítások panel</string> + <string name="quick_settings_title">Gyorsbeállítások</string> + <string name="title_static_tiles">Statikus lapok</string> + <string name="tile_picker_title">Lapok és elrendezés</string> + <string name="tile_picker_summary">Lapok megtekintése, kiválasztása vagy módosítása</string> + <string name="tile_choose_title">Válasszon lapot</string> + + <string name="title_tile_airplane">Repülőgép üzemmód</string> + <string name="title_tile_battery">Akkumulátor állapota</string> + <string name="title_tile_bluetooth">Bluetooth</string> + <string name="title_tile_brightness">Fényerő</string> + <string name="title_tile_sleep">Alvó mód</string> + <string name="title_tile_gps">GPS</string> + <string name="title_tile_torch">Zseblámpa</string> + <string name="title_tile_lockscreen">Képernyőzár</string> + <string name="title_tile_lte">LTE</string> + <string name="title_tile_mobiledata">Mobilinternet</string> + <string name="title_tile_profile">Profil</string> + <string name="title_tile_autorotate">Kijelző tájolás</string> + <string name="title_tile_settings">Beállítások</string> + <string name="title_tile_sound">Hang</string> + <string name="title_tile_sync">Szinkronizálás</string> + <string name="title_tile_wifiap">Wi-Fi AP</string> + <string name="title_tile_wifi">Wi-Fi</string> + <string name="title_tile_wimax">WiMAX</string> + <string name="title_tile_user">Felhasználóváltás</string> + <string name="title_tile_networkmode">2G/3G</string> + <string name="title_tile_nfc">NFC</string> + <string name="title_tile_screen_timeout">Képernyő időkorlátja</string> + <string name="title_tile_usb_tether">USB megosztás</string> + <string name="title_tile_quiet_hours">Csendes órák</string> + + <string name="title_dynamic_tiles">Dinamikus lapok</string> + <string name="dynamic_tiles_note_title">Megjegyzés</string> + <string name="dynamic_tiles_note_summary">Dinamikus lapok csak akkor láthatóak, ha egy rendszeresemény azt kíváltja</string> + <string name="title_dynamic_alarm">Ébresztés</string> + <string name="title_dynamic_bugreport">Hibajelentés</string> + <string name="title_dynamic_ime">IME változás</string> + <string name="title_dynamic_usbtether">USB internetmegosztás</string> + <string name="title_dynamic_wifi">Wi-Fi kijelző</string> + + <string name="title_general">Általános</string> + <string name="title_quick_pulldown">Gyors legördítés</string> + <string name="summary_quick_pulldown">Lapok megjelenítése az értesítési sáv %1$s oldalán történő legörgetéskor</string> + <string name="quick_pulldown_summary_left">bal</string> + <string name="quick_pulldown_summary_right">jobb</string> + <string name="quick_pulldown_off">Kikapcsolva</string> + <string name="quick_pulldown_left">Bal</string> + <string name="quick_pulldown_right">Jobb</string> + <string name="title_collapse_panel">Panel automatikus bezárása</string> + <string name="summary_collapse_panel">Elrejtés lap kiválasztásakor</string> + + <!-- Reset tiles --> + <string name="tiles_reset_title">Visszaállítás</string> + <string name="tiles_reset_message">Biztosan vissza kívánja állítani alaphelyzetbe a lapok beállításait?</string> + + <!--- Volume key cursor control --> + <string name="volume_key_cursor_control_title">Kurzor mozgatás</string> + <string name="volume_key_cursor_control_off">Letiltva</string> + <string name="volume_key_cursor_control_on">Hangerő fel/le - balra/jobbra</string> + <string name="volume_key_cursor_control_on_reverse">Hangerő fel/le - jobbra/balra</string> + + <!-- Wireless display --> + <string name="pref_wifi_disable_hdcp_title">HDCP megerősítés tiltása</string> + <string name="pref_wifi_disable_hdcp_summary">Próbálja ki ezt a beállítást, ha tud csatlakozni a képernyőhöz, de az nem mutat képet.</string> + + <!--- Sms security limit --> + <string name="app_security_title">Alkalmazásbiztonság</string> + <string name="sms_security_check_limit_title">Üzenet korlát</string> + <string name="sms_security_check_limit_summary">Figyelmeztető ablak megjelenítése a túl gyakori üzenetküldés megakadályozására. Jelenlegi limit: %d üzenet 15 percenként</string> + <string name="sms_security_check_limit_default">30 (Alapbeállítás)</string> + + <!--- Lock clock --> + <string name="lock_clock_title">Óra modul</string> + <string name="lock_clock_summary">A kezdőképernyőn, illetve a képernyőzáron található \"cLock\" modul beállításai</string> + + <!-- Stylus Icon --> + <string name="stylus_icon_enabled_title">Ikon megjelenítése stylus használatakor</string> + <string name="stylus_icon_enabled_summary">Stylus használatakor megjelenít egy ikont az értesítési sávon</string> + + <string name="lockscreen_maximize_widgets_title">Teljes méretű modulok</string> + <string name="lockscreen_maximize_widgets_summary">Modulok megjelenése maximális méretben (feloldás a lakat ikonnal)</string> + + <!-- Custom lock screen background --> + <string name="lockscreen_custom_background_title">Háttérkép</string> + <string name="lockscreen_custom_background_dialog_title">Szín kiválasztása</string> + <string name="lockscreen_background_result_successful">Háttérkép beállítva</string> + <string name="lockscreen_background_result_not_successful">Háttérkép változatlan</string> + <string name="lockscreen_background_color_fill">Szín kiválasztása</string> + <string name="lockscreen_background_custom_image">Háttérkép kiválasztása</string> + <string name="lockscreen_background_default_wallpaper">Alapértelmezett háttérkép</string> + + <!-- Safe headset volume restore checkbox --> + <string name="safe_headset_volume_title">Biztonságos hangerő</string> + <string name="safe_headset_volume_summary">Nagy hangerő megakadályozása fülhallgató csatlakoztatásakor</string> + + <!-- Waiver --> + <string name="cyanogenmod_waiver_title">Jogi felelősség átvállalása</string> + <string name="cyanogenmod_waiver_body">A beállítás módosítása halláskárosodáshoz vezethet.\n\nAz \"OK\" gombbal Ön elfogadja ezt a figyelmeztetést és ezzel felmenti a CyanogenMod csapatot és minden közreműködőt az esetleges jogi kötelezettségek alól.</string> + + <!-- **** CYANOGENMOD ADDITIONS END **** --> + </resources> diff --git a/res/values-it/arrays.xml b/res/values-it/arrays.xml index 9ce958a..6ce65e9 100644 --- a/res/values-it/arrays.xml +++ b/res/values-it/arrays.xml @@ -295,4 +295,60 @@ <item msgid="5077768429488260031">"Non consentire mai"</item> <item msgid="1417929597727989746">"Consenti sempre"</item> </string-array> + + <!-- **** CYANOGENMOD EDITS START **** --> + + <!-- Volume Overlay options. --> + <string-array name="volume_overlay_entries"> + <item>"Singolo"</item> + <item>"Espandibile"</item> + <item>"Espanso"</item> + <item>"Nascosto"</item> + </string-array> + + <!-- Performance settings --> + <string-array name="pref_zram_size_entries"> + <item>"Disattivato"</item> + <item>"10%"</item> + <item>"18% (predefinito)"</item> + <item>"26%"</item> + </string-array> + + <!-- Profile mode options. --> + <string-array name="profile_entries"> + <item>"Attivato"</item> + <item>"Disattivato"</item> + <item>"Non sovrascrivere"</item> + </string-array> + + <!-- Profile mode options. --> + <string-array name="profile_connection_entries"> + <item>"Disattivato"</item> + <item>"Attivato"</item> + </string-array> + + <string-array name="entries_network_widget"> + <item>"2G/3G+2G"</item> + <item>"2G/Solo 3G"</item> + <item>"2G/Solo 3G/3G+2G"</item> + </string-array> + + <string-array name="entries_flash_widget"> + <item>"Normale"</item> + <item>"Elevato"</item> + </string-array> + + <string-array name="haptic_feedback_entries"> + <item>"Usa impostazione globale"</item> + <item>"Attivato"</item> + <item>"Disattivato"</item> + </string-array> + + <string-array name="entries_status_bar_am_pm"> + <item>"Normale"</item> + <item>"Piccolo"</item> + <item>"Nessuno (predefinito)"</item> + </string-array> + + <!-- **** CYANOGENMOD EDITS END **** --> </resources> diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml index 408abbe..8f8c9c9 100644 --- a/res/values-it/strings.xml +++ b/res/values-it/strings.xml @@ -26,8 +26,8 @@ <item quantity="one" msgid="5295687242294085452">"Ora ti manca <xliff:g id="STEP_COUNT">%1$d</xliff:g> passaggio per diventare uno sviluppatore."</item> <item quantity="other" msgid="6722953419953594148">"Ora ti mancano <xliff:g id="STEP_COUNT">%1$d</xliff:g> passaggi per diventare uno sviluppatore."</item> </plurals> - <string name="show_dev_on" msgid="1110711554982716293">"Ora sei uno sviluppatore."</string> - <string name="show_dev_already" msgid="2151632240145446227">"Non è necessario, sei già uno sviluppatore."</string> + <string name="show_dev_on" msgid="1110711554982716293">"Hai abilitato le impostazioni da sviluppatore."</string> + <string name="show_dev_already" msgid="2151632240145446227">"Non è necessario, hai già abilitato le impostazioni da sviluppatore."</string> <string name="header_category_wireless_networks" msgid="4944823405420438623">"WIRELESS E RETI"</string> <string name="header_category_device" msgid="5781174212691167553">"DISPOSITIVO"</string> <string name="header_category_personal" msgid="6225932173498802187">"PERSONALE"</string> @@ -71,6 +71,7 @@ <string name="small_font" msgid="2295331917424072635">"Piccole"</string> <string name="medium_font" msgid="2068475425515133701">"Medie"</string> <string name="large_font" msgid="599055175160971446">"Grandi"</string> + <string name="font_size_preview_text">"Quel fez sghembo copre davanti"</string> <string name="font_size_save" msgid="3450855718056759095">"OK"</string> <string name="sdcard_setting" product="nosdcard" msgid="8281011784066476192">"Archivio USB"</string> <string name="sdcard_setting" product="default" msgid="5922637503871474866">"Scheda SD"</string> @@ -166,13 +167,14 @@ <string name="bluetooth_phonebook_request" msgid="457033227379858269">"Richiesta rubrica"</string> <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s desidera accedere ai tuoi contatti e alla tua cronologia chiamate. Consentire l\'accesso a %2$s?"</string> <string name="bluetooth_pb_remember_choice" msgid="2901499974259177202">"Non chiedermelo più"</string> - <string name="date_and_time" msgid="4114084177056654663">"Impostazioni data e ora"</string> + <string name="bluetooth_mas_request">"Richiesta di accesso ai messaggi"</string> + <string name="bluetooth_mas_acceptance_dialog_text">%1$s vorrebbe accedere ai tuoi messaggi. Consentire l\'accesso a %2$s?</string> + <string name="bluetooth_mas_remember_choice">Non chiedere più</string> +<string name="date_and_time" msgid="4114084177056654663">"Impostazioni data e ora"</string> <string name="choose_timezone" msgid="1362834506479536274">"Scegli il fuso orario"</string> <string name="normal_date_format" msgid="7636406984925498359">"Regionale (<xliff:g id="DATE">%s</xliff:g>)"</string> <string name="display_preview_label" msgid="1127597250917274792">"Anteprima:"</string> <string name="display_font_size_label" msgid="8941851418397475389">"Dimensioni carattere:"</string> - <!-- no translation found for intent_sender_data_label (6332324780477289261) --> - <skip /> <string name="intent_sender_sendbroadcast_text" msgid="1415735148895872715">"Invia <xliff:g id="BROADCAST">broadcast</xliff:g>"</string> <string name="intent_sender_action_label" msgid="616458370005452389">"<xliff:g id="ACTION">Action</xliff:g>:"</string> <string name="intent_sender_startactivity_text" msgid="5080516029580421895">"Inizia <xliff:g id="ACTIVITY">activity</xliff:g>"</string> @@ -620,6 +622,11 @@ <string name="wifi_setting_frequency_band_title" msgid="7493768705046080060">"Banda di frequenza Wi-Fi"</string> <string name="wifi_setting_frequency_band_summary" msgid="3250740757118009784">"Specifica campo di frequenza di funzionamento"</string> <string name="wifi_setting_frequency_band_error" msgid="837281974489794378">"Errore di impostazione della banda di frequenza."</string> + <string name="wifi_setting_countrycode_title">Codice regione Wi-Fi</string> + <string name="wifi_setting_countrycode_summary">Specifica il codice regione per il Wi-Fi</string> + <string name="wifi_setting_countrycode_error">Problema nell\'impostazione del codice regione.</string> + <string name="wifi_setting_priority_title">Priorità Wi-Fi</string> + <string name="wifi_setting_priority_summary">Specifica la priorità delle reti Wi-Fi</string> <string name="wifi_advanced_mac_address_title" msgid="6571335466330978393">"Indirizzo MAC"</string> <string name="wifi_advanced_ip_address_title" msgid="6215297094363164846">"Indirizzo IP"</string> <string name="wifi_advanced_settings_label" msgid="3654366894867838338">"Impostazioni IP"</string> @@ -1149,13 +1156,9 @@ <string name="cached" msgid="1059590879740175019">"Processo in background memorizzato nella cache"</string> <string name="no_running_services" msgid="2059536495597645347">"Niente in esecuzione."</string> <string name="service_started_by_app" msgid="818675099014723551">"Avviato dall\'applicazione."</string> - <!-- no translation found for service_client_name (4037193625611815517) --> - <skip /> <string name="service_background_processes" msgid="6844156253576174488">"<xliff:g id="MEMORY">%1$s</xliff:g> liberi"</string> <string name="service_foreground_processes" msgid="7583975676795574276">"<xliff:g id="MEMORY">%1$s</xliff:g> usati"</string> <string name="memory" msgid="6609961111091483458">"RAM"</string> - <!-- no translation found for service_process_name (4098932168654826656) --> - <skip /> <string name="running_process_item_user_label" msgid="3129887865552025943">"Utente: <xliff:g id="USER_NAME">%1$s</xliff:g>"</string> <string name="running_process_item_removed_user_label" msgid="8250168004291472959">"Utente rimosso"</string> <string name="running_processes_item_description_s_s" msgid="5790575965282023145">"<xliff:g id="NUMPROCESS">%1$d</xliff:g> processo e <xliff:g id="NUMSERVICES">%2$d</xliff:g> servizio"</string> @@ -1282,6 +1285,13 @@ <string name="enforce_read_external_summary" product="default" msgid="2750027486786530064">"Le app devono richiedere l\'autorizzazione per leggere la scheda SD"</string> <string name="enforce_read_external_confirm_title" product="default" msgid="273220585729800783">"Proteggere la scheda SD?"</string> <string name="enforce_read_external_confirm_message" product="default" msgid="3858482712337574407">"Quando la scheda SD è protetta, le applicazioni devono richiedere l\'autorizzazione per leggere i dati dalla memoria esterna."\n\n"Alcune applicazioni potrebbero non funzionare fino all\'aggiornamento da parte dei relativi sviluppatori."</string> + <string name="root_access">"Accesso root"</string> + <string name="root_access_warning_title">"Permetti l\'accesso come root?"</string> + <string name="root_access_warning_message">"Permettere alle applicazioni di richiedere i permessi di root è estremamente pericoloso e potrebbe compromettere la sicurezza del sistema!"</string> + <string name="root_access_none">"Disattivo"</string> + <string name="root_access_apps">"Solo applicazioni"</string> + <string name="root_access_adb">"Solo ADB"</string> + <string name="root_access_all">"Applicazioni e ADB"</string> <string name="gadget_picker_title" msgid="98374951396755811">"Scegli gadget"</string> <string name="widget_picker_title" msgid="9130684134213467557">"Scegli widget"</string> <string name="allow_bind_app_widget_activity_allow_bind_title" msgid="2538303018392590627">"Creare il widget e consentire l\'accesso?"</string> @@ -1312,6 +1322,7 @@ <string name="accessibility_toggle_screen_magnification_auto_update_preference_title" msgid="7218498768415430963">"Aggiorn. autom. ingrandim. schermo"</string> <string name="accessibility_toggle_screen_magnification_auto_update_preference_summary" msgid="4392059334816220155">"Aggiorna ingrandimento schermo per transizioni app"</string> <string name="accessibility_power_button_ends_call_prerefence_title" msgid="6673851944175874235">"Chiudi chiamata con pulsante ON/OFF"</string> + <string name="accessibility_home_button_answers_call_prerefence_title">Il pulsante Home risponde alla chiamata</string> <string name="accessibility_toggle_speak_password_preference_title" msgid="5986628515113204844">"Pronuncia le password"</string> <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Ritardo tocco e pressione"</string> <string name="accessibility_toggle_script_injection_preference_title" msgid="7950932054266694403">"Migliora l\'accessibilità web"</string> @@ -1347,8 +1358,6 @@ <string name="battery_stats_wifi_running_label" msgid="3093545080361658269">"Wi-Fi"</string> <string name="battery_stats_wake_lock_label" msgid="1908942681902324095">"Attivo"</string> <string name="battery_stats_phone_signal_label" msgid="4137799310329041341">"Segnale rete mobile"</string> - <!-- no translation found for battery_stats_last_duration (1535831453827905957) --> - <skip /> <string name="awake" msgid="387122265874485088">"Tempo di attività dispositivo"</string> <string name="wifi_on_time" msgid="6310209835617490616">"Tempo accensione Wi-Fi"</string> <string name="bluetooth_on_time" msgid="6157799524996162271">"Tempo accensione Wi-Fi"</string> @@ -1530,6 +1539,7 @@ <string name="sound_category_notification_title" msgid="3502115998790286943">"Notifiche"</string> <string name="sound_category_call_ringtone_vibrate_title" msgid="1543777228646645163">"Suoneria e vibrazione chiamata"</string> <string name="sound_category_system_title" msgid="1480844520622721141">"Sistema"</string> + <string name="headset_category_title">"Auricolari"</string> <string name="wifi_setup_title" msgid="661074868726906436">"Impostazione Wi-Fi"</string> <string name="wifi_setup_title_editing_network" msgid="7304321031985059969">"Connetti alla rete Wi-Fi <xliff:g id="NETWORK_NAME">%s</xliff:g>"</string> <string name="wifi_setup_title_connecting_network" msgid="3747859666621319757">"Connessione alla rete Wi-Fi <xliff:g id="NETWORK_NAME">%s</xliff:g>..."</string> @@ -1599,8 +1609,6 @@ <string name="remove_account_failed" product="tablet" msgid="3086620478225952725">"Questo account è richiesto da alcune applicazioni. Puoi rimuoverlo solo ripristinando le impostazioni predefinite di fabbrica del tablet (questa operazione elimina tutti i dati personali) in Impostazioni > Backup e ripristino."</string> <string name="remove_account_failed" product="default" msgid="6217238709175617517">"Questo account è richiesto da alcune applicazioni. Puoi rimuoverlo solo ripristinando le impostazioni predefinite di fabbrica del telefono (questa operazione elimina tutti i dati personali) in Impostazioni > Backup e ripristino."</string> <string name="provider_label" msgid="7724593781904508866">"Sottoscrizioni push"</string> - <!-- no translation found for sync_item_title (4782834606909853006) --> - <skip /> <string name="cant_sync_dialog_title" msgid="8923508322291625282">"Impossibile sincronizzare manualmente"</string> <string name="cant_sync_dialog_message" msgid="1938380442159016449">"Al momento la sincronizzazione di questo elemento non è attiva. Per modificare questa impostazione, attiva temporaneamente i dati in background e la sincronizzazione automatica."</string> <string name="wimax_settings" msgid="1574837328738396794">"Impostazioni 4G"</string> @@ -1830,4 +1838,533 @@ <string name="user_picture_title" msgid="7297782792000291692">"ID foto"</string> <string name="cell_broadcast_settings" msgid="8415582011920085222">"Cell broadcast"</string> <string name="cell_broadcast_settings_summary" msgid="3301339398950905913">"Seleziona i tipi di avvisi di emergenza da visualizzare."</string> + <string name="ok">OK</string> + <string name="quiet_hours_title">"Periodo di quiete"</string> + <string name="quiet_hours_summary">"Configura gli orari in cui il terminale dovrebbe essere silenzioso"</string> + <string name="quiet_hours_note_title">"Nota"</string> + <string name="quiet_hours_note_summary">"Le chiamate in entrata avranno lo stesso comportamento durante il periodo di quiete"</string> + <string name="quiet_hours_enabled">"Attiva il periodo di quiete"</string> + <string name="quiet_hours_enabled_on">"Il periodo di quiete viene rispettato"</string> + <string name="quiet_hours_enabled_off">"Le notifiche funzionano come di norma"</string> + <string name="quiet_hours_start">"Inizio del periodo di quiete"</string> + <string name="quiet_hours_start_summary">"Quando far cominciare il periodo di quiete"</string> + <string name="quiet_hours_end">"Fine del periodo di quiete"</string> + <string name="quiet_hours_end_summary">"Quando far finire il periodo di quiete"</string> + <string name="quiet_hours_mute">"Notifiche silenziose"</string> + <string name="quiet_hours_mute_on">"La suoneria delle notifiche è disattivata"</string> + <string name="quiet_hours_mute_off">"La suoneria delle notifiche funziona come di norma"</string> + <string name="quiet_hours_still">"Disattiva vibrazioni"</string> + <string name="quiet_hours_still_on">"Il terminale non vibra"</string> + <string name="quiet_hours_still_off">"Il terminale vibra come di norma"</string> + <string name="quiet_hours_dim">"Disattiva LED di notifica"</string> + <string name="quiet_hours_dim_on">"I LED di notifica sono disattivati"</string> + <string name="quiet_hours_dim_off">"I LED di notifica funzionano come di norma"</string> + <string name="quiet_hours_haptic">"Disattiva vibraz. al tocco"</string> + <string name="quiet_hours_haptic_on">"La vibrazione al tocco è disattivata"</string> + <string name="quiet_hours_haptic_off">"La vibrazione al tocco funziona come di norma"</string> + <string name="quiet_hours_active_from">"Attiva dalle"</string> + <string name="quiet_hours_active_to">"alle"</string> + <string name="start_time_title">"Inizio"</string> + <string name="end_time_title">"Fine"</string> + <string name="notification_convert_sound_to_vibration_title">"Vibra alle notifiche"</string> + <string name="notification_convert_sound_to_vibration_summary">"In modalità vibrazione, tutte le notifiche faranno vibrare il dispositivo indipendentemente dalla impostazioni delle applicazioni"</string> + <string name="device_hostname">Hostname dispositivo</string> + <string name="mod_version">Versione CyanogenMod</string> + <string name="mod_version_default">Sconoscito</string> + <string name="build_date">"Data build"</string> + <string name="build_date_default">2012-01-01-0000</string> + <string name="cpu_info">"CPU"</string> + <string name="mem_info">"Memoria"</string> + <string name="anonymous_statistics_title">"Statistiche CyanogenMod"</string> + <string name="anonymous_statistics_summary">"Aiuta a migliorare la Cyanogenmod acconsentendo ad inviare statistiche anonime"</string> + <string name="anonymous_statistics_warning_title">"Informazioni"</string> + <string name="anonymous_statistics_warning">"Consentire di inviare statistiche anonime permetterà l\'invio di dati non personali agli sviluppatori di Cyanogenmod per contare il numero di installazioni uniche sui diversi terminali. Le informazioni inviate includono un identificativo univoco che non compromette la tua privacy o i tuoi dati personali. I dati sono inviati ad ogni avvio.\n\nPer un esempio dei dati inviati premere su Anteprima dati."</string> + <string name="enable_reporting_title">"Attiva invio"</string> + <string name="preview_data_title">"Anteprima dati"</string> + <string name="preview_data_summary">%s</string> + <string name="view_stats_title">"Guarda statistiche"</string> + <string name="anonymous_learn_more">"Maggiori informazioni"</string> + <string name="anonymous_notification_desc">"Attiva o disattiva le statistiche CyanogenMod"</string> + <string name="preview_id_title">"ID Univoco"</string> + <string name="preview_device_title">"Dispositivo"</string> + <string name="preview_version_title">"Versione"</string> + <string name="preview_country_title">"Nazione"</string> + <string name="preview_carrier_title">"Operatore"</string> + <string name="header_category_interface">"INTERFACCIA"</string> + <string name="launcher_settings_title">"Launcher"</string> + <string name="themes_settings_title">"Temi"</string> + <string name="system_settings_title">"Sistema"</string> + <string name="system_interface_title">"Interfaccia sistema"</string> + <string name="notification_drawer_title">"Menu notifiche"</string> + <string name="lock_screen_title">"Schermata di sblocco"</string> + <string name="lockscreen_target_info">Trascina il cursore e imposta le scorciatoie</string> + <string name="lockscreen_target_title">Scorciatoie di sblocco</string> + <string name="lockscreen_target_summary">Visualizza o modifica scorciatoie di sblocco schermo</string> + <string name="lockscreen_target_reset">Scorciatoie di sblocco ripristinate</string> + <string name="lockscreen_target_save">Scorciatoie di sblocco salvate</string> + <string name="lockscreen_target_reset_title">Ripristino</string> + <string name="lockscreen_target_reset_message">Eliminare tutte le funzioni rapide e ripristinare quelle di default?</string> + <string name="lockscreen_target_empty">Vuoto</string> + <string name="lockscreen_target_edit_title">Modifica scorciatoia e icona</string> + <string name="lockscreen_target_edit_msg">Seleziona o modifica l\'applicazione desiderata o l\'activity e l\'icona associata</string> + <string name="lockscreen_vibrate_enabled_title">Vibrazione</string> + <string name="lockscreen_vibrate_enabled_head">Vibra allo sblocco</string> + <string name="lockscreen_battery_status_title">Stato batteria</string> + <string name="lockscreen_battery_status_charging">Solo in carica</string> + <string name="lockscreen_battery_status_alwayson">Sempre</string> + <string name="profiles_settings_title">"Profili"</string> + <string name="profiles_general_title">"Generale"</string> + <string name="profiles_add">"Aggiungi"</string> + <string name="profile_menu_delete">"Cancella"</string> + <string name="profile_settings_title">"Profilo"</string> + <string name="profile_empty_list_profiles_off">Per configurare e utilizzare i profili di sistema, attivare Profili.</string> + <string name="add_profile_dialog_title">"Crea nuovo profilo"</string> + <string name="profile_name_title">"Nome"</string> + <string name="profile_profile_name_prompt">"Inserisci il nome per un nuovo profilo"</string> + <string name="menu_new_profile">"Nuovo profilo"</string> + <string name="menu_new_profile_summary">"Aggiungi e configura un nuovo profilo"</string> + <string name="new_profile_name">"<nuovo profilo>"</string> + <string name="rename_dialog_title">"Rinomina"</string> + <string name="rename_dialog_message">"Inserisci un nuovo nome"</string> + <string name="duplicate_profile_name">"Nome profilo già esistente!"</string> + <string name="duplicate_appgroup_name">"Nome gruppo applicazioni già esistente!"</string> + <string name="profile_reset_title">"Reset"</string> + <string name="profile_reset_message">"Cancellare tutti i profili e i gruppi applicazioni creati dall\'utente e riportarli ai valori di fabbrica?"</string> + <string name="profile_delete_confirm">"Cancellare questo profilo?"</string> + <string name="profile_app_delete_confirm">"Rimuovi questa applicazione?"</string> + <string name="profile_cannot_delete">"Un profilo attivo non può essere cancellato."</string> + <string name="profile_connectionoverrides_title">"Sovrascrittura connessioni"</string> + <string name="profile_volumeoverrides_title">"Sovrascrittura volumi"</string> + <string name="profile_vibratoroverrides_title">Sovrascrittura vibrazione</string> + <string name="connection_state_disabled">"Disattivato"</string> + <string name="connection_state_enabled">"Attivato"</string> + <string name="volume_override_summary">"Imposta a"</string> + <string name="vibrator_state_disabled">Disattivato</string> + <string name="vibrator_state_enabled">Attivato</string> + <string name="vibrator_state_silent">Solo in silenzioso</string> + <string name="profile_profiles_manage">"Profili"</string> + <string name="profile_profile_manage">"Gestisci profili"</string> + <string name="profile_applist_manage">"Lista applicazioni"</string> + <string name="profile_appgroups_manage">"Gruppi applicazioni"</string> + <string name="profile_appgroup_manage">"Gestisci gruppo applicazioni"</string> + <string name="profile_settings">"Impostazioni profilo"</string> + <string name="profile_name">"Nome"</string> + <string name="sound_mode">"Modalità notifica"</string> + <string name="ringer_mode">"Modalità suoneria"</string> + <string name="lights_mode">"Modalità luci di notifica"</string> + <string name="vibrate_mode">"Modalità vibrazione"</string> + <string name="choose_soundtone">"Scegli suoneria notifiche"</string> + <string name="choose_ringtone">"Scegli suoneria telefono"</string> + <string name="soundtone_title">"Suoneria notifiche"</string> + <string name="soundtone_summary">""</string> + <string name="profile_appgroups_title">"Gruppi applicazioni"</string> + <string name="profile_applist_title">"Applicazioni"</string> + <string name="profile_new_appgroup">"Nuovo gruppo applicazioni"</string> + <string name="profile_delete_appgroup">"Cancellare questo gruppo applicazioni?"</string> + <string name="profile_appgroup_name_prompt">"Inserisci un nome per un nuovo gruppo applicazioni"</string> + <string name="profile_appgroup_name_title">"Nome"</string> + <string name="profile_add_app">"Aggiungi applicazione"</string> + <string name="profile_delete_app">"Rimuovi applicazione"</string> + <string name="profile_choose_app">"Scegli applicazione"</string> + <string name="profile_settings_header">"Impostazioni profilo"</string> + <string name="profile_system_settings_title">"Impostazioni sistema"</string> + <string name="profile_lockmode_title">"Modalità blocco schermo"</string> + <string name="profile_lockmode_default">"Predefinito"</string> + <string name="profile_lockmode_insecure">"Non sicuro"</string> + <string name="profile_lockmode_disabled">"Disattivato"</string> + <string name="profile_lockmode_default_summary">"Usa l\'impostazione predefinita"</string> + <string name="profile_lockmode_insecure_summary">"Non usare protezioni per il blocco schermo"</string> + <string name="profile_lockmode_disabled_summary">"Il blocco schermo è disattivo"</string> + <string name="profile_airplanemode_title">Modalità aereo</string> + <string name="profile_disable_screen_lock_summary">"Disattiva protezioni per il sblocco schermo mentre questo profilo è attivo"</string> + <string name="vibrator_type_ringer">Chiamate</string> + <string name="vibrator_type_notification">Notifiche</string> + <string name="possibleButtons">"Pulsanti possibili"</string> + <string name="toggleWifi">"Wi-Fi"</string> + <string name="toggleWifiAp">"Hotspot Wi-Fi"</string> + <string name="toggleBluetooth">"Bluetooth"</string> + <string name="toggleGPS">"GPS"</string> + <string name="toggleData">"Dati mobili"</string> + <string name="toggleSync">"Sincronizzazione dati"</string> + <string name="toggle2g3g">"2G/3G"</string> + <string name="toggleSound">"Modalità suoneria"</string> + <string name="toggleBrightness">"Luminosità"</string> + <string name="toggleAutoRotate">"Orientamento"</string> + <string name="toggleScreenTimeout">"Sospensione schermo"</string> + <string name="toggleAirplane">"Modalità aereoplano"</string> + <string name="toggleFlashlight">"Torcia"</string> + <string name="toggleLockScreen">"Blocco schermo"</string> + <string name="toggleWimax">"WiMax"</string> + <string name="screen_security_category">Schermata di sicurezza</string> + <string name="screen_security_title">Schermata di sblocco</string> + <string name="screen_security_summary">Visualizza o cambia il livello di sicurezza e le impostazioni per la schermata di sblocco</string> + <string name="additional_options_title">Opzioni aggiuntive</string> + <string name="unlock_menu_unlock_title">Sblocca con Menu</string> + <string name="unlock_menu_unlock_summary">Il tasto Menu sblocca il dispositivo</string> + <string name="unlock_home_unlock_title">Sblocca con Home</string> + <string name="unlock_home_unlock_summary">Il tasto Home sblocca il dispositivo</string> + <string name="unlock_quick_unlock_control_title">Sblocco rapido</string> + <string name="unlock_quick_unlock_control_summary">Sblocca automaticamente quando il PIN / la password viene inserito in modo corretto</string> + <string name="delay_and_timeout_title">Ritardo schermata di sblocco</string> + <string name="slide_lock_delay_title">Ritardo schermata</string> + <string name="slide_lock_timeout_delay_title">Dopo timeout schermo</string> + <string name="slide_lock_screenoff_delay_title">Dopo spegnimento schermo</string> + <string name="slide_lock_delay_none">Nessuno</string> + <string name="slide_lock_delay_1s">1 secondo</string> + <string name="slide_lock_delay_5s">5 secondi</string> + <string name="slide_lock_delay_10s">10 secondi</string> + <string name="slide_lock_delay_15s">15 secondi</string> + <string name="slide_lock_delay_30s">30 secondi</string> + <string name="slide_lock_delay_1m">1 minuto</string> + <string name="slide_lock_delay_5m">5 minuti</string> + <string name="slide_lock_delay_10m">10 minuti</string> + <string name="slide_lock_delay_30m">30 minuti</string> + <string name="performance_settings_title">Prestazioni</string> + <string name="performance_settings_warning_title">"Procedere con cautela"</string> + <string name="performance_settings_warning">"Queste impostazioni sono sperimentali e qualsiasi loro cambiamento potrebbe causare instabilità, crash, perdita di dati e danni all\'hardware.\n\nNon inviate segnalazioni di bug se una qualsiasi di queste impostazioni è stata modificata."</string> + <string name="processor_title">"Processore"</string> + <string name="processor_summary">"Seleziona il governor e la velocità della CPU"</string> + <string name="cpu_cur_freq_title">"Frequenza CPU attuale"</string> + <string name="cpu_governors_title">"Governor CPU"</string> + <string name="cpu_governors_summary">%S</string> + <string name="cpu_min_freq_title">"Frequenza minima CPU"</string> + <string name="cpu_min_freq_summary">%s</string> + <string name="cpu_max_freq_title">"Frequenza massima CPU"</string> + <string name="cpu_max_freq_summary">%s</string> + <string name="cpu_set_on_boot">"Imposta all\'avvio"</string> + <string name="cpu_set_on_boot_summary">"Reimposta i parametri selezionati ad ogni riavvio"</string> + <string name="io_scheds_title">Schedulatore I/O</string> + <string name="io_scheds_summary">Cambia lo schedulatore I/O</string> + <string name="io_sched_title">Schedulatore I/O</string> + <string name="io_sched_summary">%S</string> + <string name="io_sched_set_on_boot">Imposta all\'avvio</string> + <string name="io_sched_set_on_boot_summary">Reimposta le impostazioni dello schedulatore I/O ad ogni riavvio</string> + <string name="memory_management_title">"Gestione memoria"</string> + <string name="memory_management_summary">"Personalizza l\'uso della memoria per modificare le prestazioni del sistema"</string> + <string name="pref_zram_title">"zRam"</string> + <string name="pref_zram_summary">"Comprime la memoria RAM per aumentarne virtualmente la capacità (Richiede il riavvio)"</string> + <string name="pref_ksm_title">"Fusione pagine Kernel"</string> + <string name="pref_ksm_summary">"KSM permette di ridurre la richiesta di memoria RAM e di migliorare le prestazioni"</string> + <string name="pref_purgeable_assets_title">"Pulizia di risorse"</string> + <string name="pref_purgeable_assets_summary">"Ripulire la memoria dedicata alle immagini consente di liberare più RAM quando richiesto (Richiede il riavvio)"</string> + <string name="pref_use_dithering_title">"Migliora aspetto"</string> + <string name="dithering_no_dither">Disabilita dithering</string> + <string name="dithering_color_banding">Correggi bande colorate (predefinito)</string> + <string name="dithering_blur_effect">Correggi bande colorate e effetto sfocatura</string> + <string name="pref_use_16bpp_alpha_title">"Trasparenze a 16bit"</string> + <string name="pref_use_16bpp_alpha_summary">"Aumenta le prestazioni ma abbassa la qualità della grafica e potrebbe causare artefatti visivi (Richiede il riavvio)</string> + <string name="display_rotation_title">Rotazione schermo</string> + <string name="display_rotation_disabled">Disattiva</string> + <string name="display_rotation_unit">gradi</string> + <string name="display_rotation_category_title">Modalità rotazione schermo</string> + <string name="display_rotation_0_title">0 gradi</string> + <string name="display_rotation_90_title">90 gradi</string> + <string name="display_rotation_180_title">180 gradi</string> + <string name="display_rotation_270_title">270 gradi</string> + <string name="picker_activities">Activities</string> + <string name="select_custom_app_title">Scegli applicazione</string> + <string name="select_custom_activity_title">Scegli activity</string> + <string name="icon_picker_choose_icon_title">Scegli icona</string> + <string name="icon_picker_alarm">Allarme</string> + <string name="icon_picker_browser">Browser</string> + <string name="icon_picker_calendar">Calendario</string> + <string name="icon_picker_camera">Fotocamera</string> + <string name="icon_picker_chrome">Chrome</string> + <string name="icon_picker_email">Email</string> + <string name="icon_picker_email2">Email Holo</string> + <string name="icon_picker_facebook">Facebook</string> + <string name="icon_picker_gallery">Galleria</string> + <string name="icon_picker_google_small">Google (Piccolo)</string> + <string name="icon_picker_googleplus">Google+</string> + <string name="icon_picker_googletalk">Google Talk</string> + <string name="icon_picker_maps">Mappe</string> + <string name="icon_picker_movie">Video</string> + <string name="icon_picker_music">Musica</string> + <string name="icon_picker_nav_normal">Navigazione</string> + <string name="icon_picker_phone">Telefono</string> + <string name="icon_picker_podcast">Podcast</string> + <string name="icon_picker_rss">RSS</string> + <string name="icon_picker_search">Ricerca</string> + <string name="icon_picker_sms">Messaggistica</string> + <string name="icon_picker_twitter">Twitter</string> + <string name="icon_picker_title">Scegli icone</string> + <string name="icon_picker_system_icons_title">Icone di sistema</string> + <string name="icon_picker_gallery_title">Galleria</string> + <string name="icon_picker_pack_title">Pacchetto icone</string> + <string name="increasing_ring_title">Suoneria incrementale</string> + <string name="checkbox_increasing_ring">Attiva</string> + <string name="increasing_ring_min_volume_title">Volume di partenza</string> + <string name="increasing_ring_volume_notice">Avviso:\n Quando il volume di partenza è superiore a quello della suoneria, questa verrà riprodotta interamente con il nuovo volume impostato.</string> + <string name="increasing_ring_interval_title">Intervallo incremento</string> + <string name="increasing_ring_interval_eachring">Ogni squillo</string> + <string name="increasing_ring_interval_half_second">0.5 secondi</string> + <string name="increasing_ring_interval_1second">1 secondo</string> + <string name="increasing_ring_interval_2seconds">2 secondi</string> + <string name="increasing_ring_interval_3seconds">3 secondi</string> + <string name="increasing_ring_interval_5seconds">5 secondi</string> + <string name="increasing_ring_interval_10seconds">10 secondi</string> + <string name="profile_write_nfc_tag">"Scrivi sull\'etichetta NFC"</string> + <string name="profile_write_touch_tag">"Tocca l\'etichetta per scrivere"</string> + <string name="profile_write_success">"Etichetta scritta con successo"</string> + <string name="profile_write_failed">"Scrittura etichetta fallita!"</string> + <string name="profile_selected">"Profilo selezionato: %1$s"</string> + <string name="profile_nfc_text">"Scrivere un profilo per un\'etichetta NFC permette di toccare l\'etichetta per selezionare quel profilo. Toccandola una seconda volta verrà selezionato il profilo precedente."</string> + <string name="profile_unknown_nfc_tag">Profilo sconosciuto</string> + <string name="profile_add_nfc_text">Questo tag NFC si riferisce ad un profilo sconosciuto. Collegare questo tag NFC ad un profilo esistente permetterà di selezionarlo in futuro.</string> + <string name="profile_select">Seleziona profilo</string> + <string name="link_volume_ringtones">Collega volume suoneria e notifiche</string> + <string name="link_volume_mutes">Collega silenz. suoneria e notifiche</string> + <string name="notification_light_general_title">"Generale"</string> + <string name="notification_light_applist_title">"Applicazioni"</string> + <string name="notification_light_phonelist_title">"Telefono"</string> + <string name="notification_light_use_custom">"Usa valori personalizzati"</string> + <string name="notification_light_enabled">"Attiva"</string> + <string name="notification_light_disabled">"Disattiva"</string> + <string name="notification_light_default_value">Predefinito</string> + <string name="notification_light_missed_call_title">Chiamata persa</string> + <string name="notification_light_voicemail_title">Messaggio vocale</string> + <string name="edit_light_settings">"Modifica impostazioni luce"</string> + <string name="pulse_speed_title">"Durata e velocità del lampeggio"</string> + <string name="picker_arrow">→</string> + <string name="default_time">"Normale"</string> + <string name="custom_time">"Personalizzato"</string> + <string name="dialog_test">"Test"</string> + <string name="dialog_delete_title">"Cancella"</string> + <string name="dialog_delete_message">"Rimuovere l\'oggetto selezionato?"</string> + <string name="dialog_test_message">"Spegnere lo schermo per vedere l\'effetto delle impostazioni o premere Annulla per interrompere il test"</string> + <string name="dialog_test_button">"Annulla"</string> + <string name="pulse_length_always_on">"Sempre acceso"</string> + <string name="pulse_length_very_short">"Molto breve"</string> + <string name="pulse_length_short">"Breve"</string> + <string name="pulse_length_normal">"Normale"</string> + <string name="pulse_length_long">"Lungo"</string> + <string name="pulse_length_very_long">"Molto lungo"</string> + <string name="pulse_speed_very_fast">"Molto veloce"</string> + <string name="pulse_speed_fast">"Veloce"</string> + <string name="pulse_speed_normal">"Normale"</string> + <string name="pulse_speed_slow">"Lento"</string> + <string name="pulse_speed_very_slow">"Molto lento"</string> + <string name="battery_light_title">Indicatore batteria</string> + <string name="battery_low_pulse_title">Lampeggia con batteria scarica</string> + <string name="battery_light_list_title">Colori</string> + <string name="battery_light_low_color_title">Batteria scarica</string> + <string name="battery_light_medium_color_title">In carica</string> + <string name="battery_light_full_color_title">Carica completa</string> + <string name="volume_overlay_title">"Stile pannello volume"</string> + <string name="volbtn_music_controls_title">"Cambia traccia con tasti"</string> + <string name="volbtn_music_controls_summary">"Quando lo schermo è spento la pressione prolungata dei tasti volume cambia traccia"</string> + <string name="headset_connect_player_title">Lancia il lettore musicale quando connetti</string> + <string name="volume_ring_only_description">Suonerie</string> + <string name="ring_mode_title">Modalità suoneria</string> + <string name="ring_mode_normal">Normale</string> + <string name="ring_mode_vibrate">Vibrazione</string> + <string name="ring_mode_mute">Muto</string> + <string name="hardware_keys_title">Tasti fisici</string> + <string name="hardware_keys_bindings_title">Azioni tasto</string> + <string name="hardware_keys_enable_custom_title">Azioni personalizzate</string> + <string name="hardware_keys_home_long_press_title">Tasto home (tieni premuto)</string> + <string name="hardware_keys_menu_press_title">Tasto menu</string> + <string name="hardware_keys_menu_long_press_title">Tasto menu (tieni premuto)</string> + <string name="hardware_keys_assist_press_title">Tasto cerca</string> + <string name="hardware_keys_assist_long_press_title">Tasto cerca (tieni premuto)</string> + <string name="hardware_keys_app_switch_press_title">Tasto cambio app</string> + <string name="hardware_keys_app_switch_long_press_title">Tasto cambio app (tieni premuto)</string> + <string name="hardware_keys_show_overflow_title">Visualizza azione overflow</string> + <string name="hardware_keys_show_overflow_summary">Visualizza il pulsante con tre punti con funzione menu nelle applicazioni</string> + <string name="hardware_keys_show_overflow_toast_enable">Il pulsante con funzione menu potrebbe non essere visibile finché le applicazioni non saranno riavviate</string> + <string name="hardware_keys_show_overflow_toast_disable">Il pulsante con funzione menu potrebbe non essere nascosto finché le applicazioni non saranno riavviate</string> + <string name="hardware_keys_action_nothing">Nessuna azione</string> + <string name="hardware_keys_action_menu">Apri/Chiudi menu</string> + <string name="hardware_keys_action_app_switch">Applicazioni recenti switcher</string> + <string name="hardware_keys_action_search">Assistente ricerca</string> + <string name="hardware_keys_action_voice_search">Ricerca vocale</string> + <string name="hardware_keys_action_in_app_search">Ricerca in applicazioni</string> + <string name="navigation_bar_title">Barra di navigazione</string> + <string name="navigation_bar_help_text">1 - Per cominciare le modifiche, toccare il lucchetto\n\n2 - Tocca qualunque pulsante per assegnare o cambiare funzione\n\n3 - Tocca e tieni premuto per modificare l\'ordine\n\n4 - Per salvare, tocca nuovamente il lucchetto\n\n5 - Per ripristinare il default di sistema, toccare il pulsante di reset\n\n</string> + <string name="navigation_bar_tips">• Le azioni possono essere assegnate solamente un pulsante alla volta\n\n• Il pulsante Home non può essere riassegnato\n\n• I pulsanti laterali non possono essere spostati</string> + <string name="navigation_bar_tips_title">Suggerimenti</string> + <string name="navigation_bar_reset_message">Cancellare le impostazioni correnti e ripristinare il default?</string> + <string name="navigation_bar_save_message">Impostazioni per la barra di navigazione salvate</string> + <string name="navigation_bar_reset_toast">Barra di navigazione ripristinata al default</string> + <string name="navigation_bar_menu_editable">Modificabile</string> + <string name="navigation_bar_menu_locked">Bloccata</string> + <string name="power_widget_title">"Power widget"</string> + <string name="title_expanded_widget">"Power widget"</string> + <string name="power_widget_behavior">"Comportamento widget"</string> + <string name="title_expanded_hide_onchange">"Nascondi dopo modifica"</string> + <string name="title_expanded_hide_indicator">"Nascondi indicatori"</string> + <string name="title_expanded_hide_scrollbar">"Nascondi barra scorrimento"</string> + <string name="title_widget_picker">"Pulsanti visualizzati"</string> + <string name="summary_widget_picker">"Visualizza o modifica i pulsanti visualizzati"</string> + <string name="title_widget_order">"Ordine dei pulsanti"</string> + <string name="summary_widget_order">"Visualizza o modifica l\'ordine dei pulsanti"</string> + <string name="title_buttons">"Pulsanti"</string> + <string name="title_toggle_wifi">"Wi-Fi"</string> + <string name="title_toggle_bluetooth">"Bluetooth"</string> + <string name="title_toggle_gps">"GPS"</string> + <string name="title_toggle_sound">"Suoneria"</string> + <string name="title_toggle_brightness">"Luminosità schermo"</string> + <string name="title_toggle_sync">"Sincronizzazione dati"</string> + <string name="title_toggle_wifiap">"Access Point Wi-Fi"</string> + <string name="title_toggle_screentimeout">"Sospensione schermo"</string> + <string name="title_toggle_mobiledata">"Dati mobili"</string> + <string name="title_toggle_lockscreen">"Blocco schermo"</string> + <string name="title_toggle_networkmode">"Modalità rete 2G/3G"</string> + <string name="title_toggle_autorotate">"Orientamento schermo"</string> + <string name="title_toggle_airplane">"Modalità aeroplano"</string> + <string name="title_toggle_flashlight">"Torcia LED"</string> + <string name="title_toggle_sleep">"Blocca telefono"</string> + <string name="title_toggle_media_play_pause">"Media: Play/Pause"</string> + <string name="title_toggle_media_previous">"Media: Traccia precedente"</string> + <string name="title_toggle_media_next">"Media: Traccia successiva"</string> + <string name="title_toggle_lte">"LTE"</string> + <string name="title_toggle_wimax">"WiMax"</string> + <string name="title_button_modes">"Modalità pulsante"</string> + <string name="pref_brightness_mode_title">"Modalità luminosità"</string> + <string name="pref_brightness_mode_summary">"Visualizza o modifica gli effetti del pulsante luminosità"</string> + <string name="cm_brightness_mode_auto">"Automatico"</string> + <string name="cm_brightness_mode_dim">"Oscuro"</string> + <string name="pref_network_mode_title">"Modalità di rete"</string> + <string name="pref_screentimeout_mode_title">"Modalità sospensione schermo"</string> + <string name="pref_ring_mode_title">"Modalità suoneria"</string> + <string name="pref_ring_mode_summary">"Visualizza o modifica gli effetti del pulsante audio"</string> + <string name="cm_sound_mode_silent">"Silenzioso"</string> + <string name="cm_sound_mode_vibrate">"Vibrazione"</string> + <string name="cm_sound_mode_sound">"Suoneria"</string> + <string name="cm_sound_mode_soundVibrate">"Suoneria+Vibrazione"</string> + <string name="pref_flash_mode_title">"Modalità torcia LED"</string> + <string name="expanded_haptic_feedback_title">"Vibrazione al tocco"</string> + <string name="kill_app_longpress_back">"Termina app con tasto"</string> + <string name="kill_app_longpress_back_summary">"Termina l\'applicazione in primo piano tenendo premuto il tasto indietro"</string> + <string name="changelog_title">Mostra changelog</string> + <string name="changelog_loading">Caricamento changelog\u2026</string> + <string name="changelog_error">Impossibile caricare il changelog</string> + <string name="changelog_unknown">Sconosciuto</string> + <string name="changelog_version">Versione</string> + <string name="power_menu_title">Menu tasto accensione</string> + <string name="power_menu_reboot_title">Menu riavvio</string> + <string name="power_menu_screenshot_title">Cattura schermata</string> + <string name="power_menu_expanded_desktop">Desktop espanso</string> + <string name="power_menu_profiles_title">Selettore profilo</string> + <string name="power_menu_airplane_title">Modalità aereo</string> + <string name="power_menu_user_title">Cambia utente</string> + <string name="power_menu_sound_title">Pannello suoni</string> + <string name="cmupdate_settings_title">Aggiornamento CyanogenMod</string> + <string name="cmupdate_settings_summary">Controlla visualizza e installa gli aggiornamenti disponibili</string> + <string name="advanced_settings_title">"Avanzate"</string> + <string name="ime_switcher_notify">Notifica metodo inserimento</string> + <string name="ime_switcher_notify_summary">Visualizza la notifica del selettore metodo di immissione</string> + <string name="status_bar_title">"Barra di stato"</string> + <string name="status_bar_clock_title">"Orologio"</string> + <string name="status_bar_general_title">"Generico"</string> + <string name="status_bar_show_clock_title">"Mostra orologio"</string> + <string name="status_bar_am_pm_title">"Indicatore AM/PM"</string> + <string name="status_bar_am_pm_info">Formato 24 ore abilitato</string> + <string name="status_bar_battery_title">"Stile indicatore batteria"</string> + <string name="status_bar_toggle_brightness">"Controllo luminosità"</string> + <string name="status_bar_toggle_brightness_summary">"Modifica la luminosità strisciando sulla barra di stato"</string> + <string name="status_bar_toggle_info">"Luminosità automatica attiva"</string> + <string name="status_bar_signal_text_title">"Stile indicatore del segnale"</string> + <string name="status_bar_style_icon">"Icona"</string> + <string name="status_bar_style_hidden">"Nascosto"</string> + <string name="status_bar_signal_text_show_text">"Testo"</string> + <string name="status_bar_battery_status_percentage">"Percentuale"</string> + <string name="status_bar_battery_status_circle">Cerchio</string> + <string name="status_bar_battery_status_circle_percentage">Cerchio con percentuale</string> + <string name="status_bar_notif_count_title">Contatore notifiche</string> + <string name="status_bar_notif_count_summary">Visualizza il numero di notifiche in sospeso</string> + <string name="display_category_wakeup_options_title">"Opzioni attivazione"</string> + <string name="pref_volume_wake_title">"Tasti volume"</string> + <string name="pref_volume_wake_summary">"Premere i tasti del volume farà attivare il terminale"</string> + <string name="adb_notify">Notifica debug USB</string> + <string name="adb_notify_summary">Visualizza una notifica quando il debug USB è collegato</string> + <string name="development_tools_title">Esegui dev. tools</string> + <string name="usb_mass_storage_title">Memoria di massa</string> + <string name="usb_mass_storage_summary">Abilita la memoria di massa USB</string> + <string name="adb_over_network">"ADB attraverso la rete"</string> + <string name="adb_over_network_summary">"Attiva il debugging TCP/IP attraverso interfaccie di rete (Wi-Fi, Reti USB). Questa impostazione è resettata al riavvio"</string> + <string name="adb_over_network_warning">"ATTENZIONE: Quando è attivo l\'ADB attraverso interfaccie di rete il terminale è vulnerabile ad intrusioni da parte di tutte le reti connesse, inclusa quella GSM!\n\nUsare questa funzione esclusivamente se si è connessi a reti affidabili.\n\nSei sicuro di voler attivare questa funzione?"</string> + <string name="lockscreen_buttons_title">Azioni dei pulsanti</string> + <string name="lockscreen_buttons_summary">Visualizza o modifica le azioni dei pulsanti della schermata di blocco</string> + <string name="lockscreen_long_press_back_title">Tieni premuto Indietro</string> + <string name="lockscreen_long_press_home_title">Tieni premuto Home</string> + <string name="lockscreen_long_press_menu_title">Tieni premuto Menu</string> + <string name="lockscreen_buttons_no_action">Nessuna azione</string> + <string name="lockscreen_buttons_flashlight">Torcia</string> + <string name="lockscreen_buttons_next">Brano successivo</string> + <string name="lockscreen_buttons_previous">Brano precedente</string> + <string name="lockscreen_buttons_playpause">Riproduci/Pausa</string> + <string name="lockscreen_buttons_toggle_sound">Suono On/Off</string> + <string name="quick_settings_panel_title">Pannello Impostazioni Veloci</string> + <string name="quick_settings_title">Impostazioni Veloci</string> + <string name="title_static_tiles">Tile statici</string> + <string name="tile_picker_title">Tile e disposizione</string> + <string name="tile_picker_summary">Guarda, scegli o cambia la disposizione dei tile mostrati</string> + <string name="tile_choose_title">Scegli un tile</string> + <string name="title_tile_airplane">Modalità aeroplano</string> + <string name="title_tile_battery">Statistiche batteria</string> + <string name="title_tile_bluetooth">Bluetooth</string> + <string name="title_tile_brightness">Luminosità</string> + <string name="title_tile_sleep">Blocca telefono</string> + <string name="title_tile_gps">GPS</string> + <string name="title_tile_torch">Torcia LED</string> + <string name="title_tile_lockscreen">Blocco schermo</string> + <string name="title_tile_lte">LTE</string> + <string name="title_tile_mobiledata">Dati mobili</string> + <string name="title_tile_profile">Profilo</string> + <string name="title_tile_autorotate">Orientamento</string> + <string name="title_tile_settings">Impostazioni</string> + <string name="title_tile_screen_timeout">Sospensione schermo</string> + <string name="title_tile_sound">Modalità suoneria</string> + <string name="title_tile_sync">Sincronizzazione dati</string> + <string name="title_tile_wifiap">Wi-Fi AP</string> + <string name="title_tile_wifi">Wi-Fi</string> + <string name="title_tile_wimax">WiMAX</string> + <string name="title_tile_user">Cambia utente</string> + <string name="title_tile_networkmode">2G/3G</string> + <string name="title_tile_nfc">NFC</string> + <string name="title_tile_usb_tether">Tether USB</string> + <string name="title_dynamic_tiles">Tile dinamici</string> + <string name="dynamic_tiles_note_title">Nota</string> + <string name="dynamic_tiles_note_summary">I tile dinamici non sono sempre visualizzabili e vengono visualizzati solamente se un evento di sistema li attiva</string> + <string name="title_dynamic_alarm">Sveglia</string> + <string name="title_dynamic_bugreport">Segnalazione bug</string> + <string name="title_dynamic_ime">Metodo inserimento</string> + <string name="title_dynamic_usbtether">Tether USB</string> + <string name="title_dynamic_wifi">Visualizza Wi-Fi</string> + <string name="title_general">Generale</string> + <string name="title_quick_pulldown">Impostazioni rapide</string> + <string name="summary_quick_pulldown">Il bordo laterale %1$s della barra di stato mostra le Impostazioni Rapide</string> + <string name="quick_pulldown_summary_left">sinistro</string> + <string name="quick_pulldown_summary_right">destro</string> + <string name="quick_pulldown_off">Off</string> + <string name="quick_pulldown_left">Sinistro</string> + <string name="quick_pulldown_right">Destro</string> + <string name="title_collapse_panel">Chiudi automaticamente</string> + <string name="summary_collapse_panel">Chiudi il pannello dopo aver selezionato una voce</string> + <string name="tiles_reset_title">Reimposta</string> + <string name="tiles_reset_message">Reimpostare i tile predefiniti e la loro disposizione?</string> + <string name="volume_key_cursor_control_title">Controllo cursore</string> + <string name="volume_key_cursor_control_off">Disabilitato</string> + <string name="volume_key_cursor_control_on">I tasti su/giù muovono il cursore a sinistra/destra</string> + <string name="volume_key_cursor_control_on_reverse">I tasti su/giù muovono il cursore a destra/sinistra</string> + <string name="pref_wifi_disable_hdcp_title">Salta negoziazione HDCP</string> + <string name="pref_wifi_disable_hdcp_summary">Prova questa opzione se riesci a connetterti ma non ricevi nessun output</string> + <string name="app_security_title">Sicurezza applicazioni</string> + <string name="sms_security_check_limit_title">Limite invio SMS</string> + <string name="sms_security_check_limit_summary">Mostra un avviso per impedire alle applicazioni di inviare SMS troppo frequentemente. Limite attuale: %d messaggi in 15 minuti</string> + <string name="sms_security_check_limit_default">30 (Predefinito)</string> + <string name="lock_clock_title">Widget orologio</string> + <string name="lock_clock_summary">Visualizza o modifica le opzioni di visualizzazione di \'cLock\' per la schermata home o di sblocco</string> + <string name="stylus_icon_enabled_title">Mostra un\'icona durante l\'uso dello stilo</string> + <string name="stylus_icon_enabled_summary">Mostra l\'icona del puntatore durante il movimento o il disegno con lo stilo</string> + <string name="lockscreen_maximize_widgets_title">Massimizza widget</string> + <string name="lockscreen_maximize_widgets_summary">Mostra i widget massimizzati e lo sblocco minimizzato quando lo schermo viene acceso</string> + <string name="lockscreen_custom_background_title">Sfondo</string> + <string name="lockscreen_custom_background_dialog_title">Colore dello sfondo</string> + <string name="lockscreen_background_result_successful">Sfondo modificato con successo</string> + <string name="lockscreen_background_result_not_successful">Non è stato possibile modificare lo sfondo</string> + <string name="lockscreen_background_color_fill">Colore uniforme</string> + <string name="lockscreen_background_custom_image">Immagine personalizzata</string> + <string name="lockscreen_background_default_wallpaper">Sfondo di default</string> </resources> diff --git a/res/values-iw/arrays.xml b/res/values-iw/arrays.xml index 8a9f26f..983ed6b 100644 --- a/res/values-iw/arrays.xml +++ b/res/values-iw/arrays.xml @@ -1,22 +1,19 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- -/* -** -** Copyright 2007 The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ - --> +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2007 The Android Open Source Project + 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. +--> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> @@ -295,4 +292,80 @@ <item msgid="5077768429488260031">"לעולם אל תאפשר"</item> <item msgid="1417929597727989746">"אפשר תמיד"</item> </string-array> + <!-- **** CYANOGENMOD ADDITIONS START **** --> + + <!-- Volume Overlay options. --> + <string-array name="volume_overlay_entries"> + <item>יחיד</item> + <item>מתרחב</item> + <item>מורחב</item> + <item>הסתר חלונית</item> + </string-array> + <!-- Performance settings --> + <string-array name="pref_zram_size_entries"> + <item>מבוטל</item> + <item>10%</item> + <item>18% (default)</item> + <item>26%</item> + </string-array> + + <!-- Profile mode options. --> + <string-array name="profile_entries"> + <item>מופעל</item> + <item>כבוי</item> + <item>ללא כפיית הגדרות</item> + </string-array> + + <!-- Profile mode options. --> + <string-array name="profile_connection_entries"> + <item>השבת</item> + <item>הפעל</item> + </string-array> + + <!-- Arrays required by Notification Widgets. --> + + <string-array name="entries_network_widget"> + <item>2G | 3G+2G</item> + <item>2G | 3G</item> + <item>2G | 3G | 3G+2G</item> + </string-array> + + <string-array name="entries_screentimeout_widget"> + <item>15ש\' | 1ד\' | 5ד\'</item> + <item>30ש\' | 2ד\' | 5ד\'</item> + </string-array> + + <string-array name="entries_flash_widget"> + <item>רגיל</item> + <item>גבוה</item> + </string-array> + + <string-array name="haptic_feedback_entries"> + <item>השתמש בהגדרה הכללית</item> + <item>מופעל</item> + <item>כבוי</item> + </string-array> + + <string-array name="entries_status_bar_am_pm"> + <item>רגיל</item> + <item>קטן</item> + <item>ללא</item> + </string-array> + + <!-- Wi-Fi settings. Presented as a list dialog to the user to choose the Wi-Fi region code. --> + <string-array name="wifi_countrycode_entries"> + <item>ארצות הברית</item> + <item>קנדה, טייוואן</item> + <item>גרמניה</item> + <item>אירופה</item> + <item>יפן, רוסיה</item> + <item>אוסטרליה</item> + <item>סין</item> + <item>קוריאה</item> + <item>טורקיה</item> + <item>סינגפור</item> + <item>ברזיל</item> + </string-array> + + <!-- **** CYANOGENMOD ADDITIONS END **** --> </resources> diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml index 5770106..4def632 100644 --- a/res/values-iw/strings.xml +++ b/res/values-iw/strings.xml @@ -1,5 +1,6 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2007 The Android Open Source Project +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2007 The Android Open Source Project + 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. @@ -12,7 +13,7 @@ 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:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> @@ -26,8 +27,8 @@ <item quantity="one" msgid="5295687242294085452">"אתה כעת במרחק של צעד <xliff:g id="STEP_COUNT">%1$d</xliff:g> מלהיות מפתח."</item> <item quantity="other" msgid="6722953419953594148">"אתה כעת במרחק של <xliff:g id="STEP_COUNT">%1$d</xliff:g> צעדים מלהיות מפתח."</item> </plurals> - <string name="show_dev_on" msgid="1110711554982716293">"אתה כעת מפתח!"</string> - <string name="show_dev_already" msgid="2151632240145446227">"אין צורך, אתה כבר מפתח."</string> + <string name="show_dev_on" msgid="1110711554982716293">"שחררת את אפשרויות מפתח!"</string> + <string name="show_dev_already" msgid="2151632240145446227">"אין צורך, אפשרויות מפתח משוחררות."</string> <string name="header_category_wireless_networks" msgid="4944823405420438623">"אלחוטי ורשתות"</string> <string name="header_category_device" msgid="5781174212691167553">"מכשיר"</string> <string name="header_category_personal" msgid="6225932173498802187">"אישי"</string> @@ -346,12 +347,12 @@ <string name="unlock_set_unlock_launch_picker_change_title" msgid="5045866882028324941">"שינוי נעילת מסך"</string> <string name="unlock_set_unlock_launch_picker_change_summary" msgid="2790960639554590668">"שנה או השבת אבטחת קו, PIN או סיסמה"</string> <string name="unlock_set_unlock_launch_picker_enable_summary" msgid="4791110798817242301">"בחר שיטה לנעילת המסך"</string> - <string name="unlock_backup_info_summary" msgid="108524727803788172">"כש\'זיהוי פרצוף\' לא יכול לראות אותך, איך אתה רוצה לבטל את הנעילה?"</string> + <string name="unlock_backup_info_summary" msgid="108524727803788172">"כש\'זיהוי פנים\' לא יכול לראות אותך, איך אתה רוצה לבטל את הנעילה?"</string> <string name="unlock_set_unlock_off_title" msgid="7117155352183088342">"ללא"</string> <string name="unlock_set_unlock_off_summary" msgid="94361581669110415"></string> - <string name="unlock_set_unlock_none_title" msgid="2871898266296656162">"הסט"</string> + <string name="unlock_set_unlock_none_title" msgid="2871898266296656162">"הסטה"</string> <string name="unlock_set_unlock_none_summary" msgid="8914673583104628191">"אין אבטחה"</string> - <string name="unlock_set_unlock_biometric_weak_title" msgid="2227215291604628670">"זיהוי פרצוף"</string> + <string name="unlock_set_unlock_biometric_weak_title" msgid="2227215291604628670">"זיהוי פנים"</string> <string name="unlock_set_unlock_biometric_weak_summary" msgid="180083326982058964">"אבטחה נמוכה, ניסיוני"</string> <string name="unlock_set_unlock_pattern_title" msgid="2912067603917311700">"קו"</string> <string name="unlock_set_unlock_pattern_summary" msgid="7062696666227725593">"אבטחה בינונית"</string> @@ -361,8 +362,8 @@ <string name="unlock_set_unlock_password_summary" msgid="8856220848940929546">"אבטחה גבוהה"</string> <string name="unlock_set_unlock_disabled_summary" msgid="2120729867788851674">"הושבת על ידי מדיניות ההצפנה של מנהל המערכת, או אחסון האישורים"</string> <string name="unlock_set_unlock_mode_off" msgid="5881952274566013651">"ללא"</string> - <string name="unlock_set_unlock_mode_none" msgid="5660014471997663139">"הסט"</string> - <string name="unlock_set_unlock_mode_biometric_weak" msgid="3008473624490350142">"זיהוי פרצוף"</string> + <string name="unlock_set_unlock_mode_none" msgid="5660014471997663139">"הסטה"</string> + <string name="unlock_set_unlock_mode_biometric_weak" msgid="3008473624490350142">"זיהוי פנים"</string> <string name="unlock_set_unlock_mode_pattern" msgid="7837270780919299289">"קו ביטול נעילה"</string> <string name="unlock_set_unlock_mode_pin" msgid="3541326261341386690">"PIN"</string> <string name="unlock_set_unlock_mode_password" msgid="1203938057264146610">"סיסמה"</string> @@ -537,7 +538,7 @@ <string name="wifi_in_airplane_mode" msgid="8652520421778203796">"במצב טיסה"</string> <string name="wifi_fail_to_scan" msgid="1265540342578081461">"לא ניתן לסרוק לאיתור רשתות"</string> <string name="wifi_notify_open_networks" msgid="3755768188029653293">"התראת רשת"</string> - <string name="wifi_notify_open_networks_summary" msgid="3038290727701553612">"שלח לי התראה כשיש רשת פתוחה זמינה"</string> + <string name="wifi_notify_open_networks_summary" msgid="3038290727701553612">"הצג לי התראה כשיש רשת פתוחה זמינה"</string> <string name="wifi_poor_network_detection" msgid="4925789238170207169">"הימנע מחיבורים באיכות ירודה"</string> <string name="wifi_poor_network_detection_summary" msgid="2466956369738047669">"אל תשתמש ברשת Wi-Fi, אלא אם יש לה חיבור אינטרנט טוב"</string> <string name="wifi_setting_sleep_policy_title" msgid="9107237003911220057">"השאר Wi-Fi פעיל במהלך שינה"</string> @@ -756,7 +757,7 @@ <string name="sim_lock_failed" msgid="5651596916127873626">"לא ניתן לשנות את מצב הנעילה של כרטיס ה-SIM."\n"כנראה שקוד ה-PIN שגוי."</string> <string name="sim_enter_ok" msgid="6475946836899218919">"אישור"</string> <string name="sim_enter_cancel" msgid="6240422158517208036">"ביטול"</string> - <string name="device_info_settings" product="tablet" msgid="1119755927536987178">"סטטוס טאבלט"</string> + <string name="device_info_settings" product="tablet" msgid="1119755927536987178">"מצב טאבלט"</string> <string name="device_info_settings" product="default" msgid="475872867864762157">"מצב טלפון"</string> <string name="system_update_settings_list_item_title" msgid="3342887311059985961">"עדכוני מערכת"</string> <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string> @@ -766,11 +767,11 @@ <string name="baseband_version" msgid="1848990160763524801">"גרסת פס בסיס"</string> <string name="kernel_version" msgid="9192574954196167602">"גרסת ליבה"</string> <string name="build_number" msgid="3075795840572241758">"מספר Build"</string> - <string name="selinux_status" msgid="6212165375172061672">"סטטוס SELinux"</string> + <string name="selinux_status" msgid="6212165375172061672">"מצב SELinux"</string> <string name="device_info_not_available" msgid="8062521887156825182">"לא זמין"</string> - <string name="device_status_activity_title" msgid="1411201799384697904">"סטטוס"</string> - <string name="device_status" msgid="607405385799807324">"סטטוס"</string> - <string name="device_status_summary" product="tablet" msgid="3292717754497039686">"סטטוס הסוללה, הרשת ומידע אחר"</string> + <string name="device_status_activity_title" msgid="1411201799384697904">"מצב"</string> + <string name="device_status" msgid="607405385799807324">"מצב"</string> + <string name="device_status_summary" product="tablet" msgid="3292717754497039686">"מצב הסוללה, הרשת ומידע אחר"</string> <string name="device_status_summary" product="default" msgid="2599162787451519618">"מספר טלפון, אות וכדומה"</string> <string name="storage_settings" msgid="4211799979832404953">"אחסון"</string> <string name="storage_settings_title" msgid="8746016738388094064">"הגדרות אחסון"</string> @@ -969,8 +970,8 @@ <string name="location_access_title" msgid="7064108942964081243">"גישה למיקום שלי"</string> <string name="location_access_summary" msgid="69031404093194341">"אפשר ליישומים שביקשו את אישורך להשתמש בפרטי המיקום שלך"</string> <string name="location_sources_heading" msgid="1278732419851088319">"מקורות מיקום"</string> - <string name="about_settings" product="tablet" msgid="593457295516533765">"מידע על הטבלט"</string> - <string name="about_settings" product="default" msgid="1743378368185371685">"מידע על הטלפון"</string> + <string name="about_settings" product="tablet" msgid="593457295516533765">"אודות הטבלט"</string> + <string name="about_settings" product="default" msgid="1743378368185371685">"אודות הטלפון"</string> <string name="about_settings_summary" msgid="3371517697156165959">"הצג מידע משפטי, סטטוס, גרסת תוכנה"</string> <string name="legal_information" msgid="5769301644270604095">"מידע משפטי"</string> <string name="contributors_title" msgid="5917703088825286504">"תורמים"</string> @@ -1027,7 +1028,7 @@ <string name="activity_not_found" msgid="5551664692991605325">"היישום אינו מותקן בטלפון."</string> <string name="manageapplications_settings_title" msgid="7041951105633616745">"נהל יישומים"</string> <string name="manageapplications_settings_summary" msgid="1794401500935451259">"נהל והסר יישומים מותקנים"</string> - <string name="applications_settings" msgid="1721442176406964682">"Apps"</string> + <string name="applications_settings" msgid="1721442176406964682">"יישומים"</string> <string name="applications_settings_summary" msgid="6683465446264515367">"ניהול יישומים, הגדרת קיצורי דרך להפעלה מהירה"</string> <string name="applications_settings_header" msgid="1014813055054356646">"הגדרות יישום"</string> <string name="install_applications" msgid="4872012136210802181">"מקורות לא ידועים"</string> @@ -1073,7 +1074,7 @@ <string name="sort_order_alpha" msgid="1410278099123670628">"מיין לפי שם"</string> <string name="sort_order_size" msgid="7024513286636502362">"מיין לפי גודל"</string> <string name="show_running_services" msgid="5736278767975544570">"הצג שירותים פועלים"</string> - <string name="show_background_processes" msgid="2009840211972293429">"הצג תהליכים המאוחסנים בקובץ שמור"</string> + <string name="show_background_processes" msgid="2009840211972293429">"הצג תהליכים המאוחסנים בזיכרון"</string> <string name="reset_app_preferences" msgid="1321050641018356925">"אפס העדפות יישום"</string> <string name="reset_app_preferences_title" msgid="6093179367325336662">"האם לאפס העדפות יישום?"</string> <string name="reset_app_preferences_desc" msgid="1118129530999596317">"פעולה זו תאפס את כל ההעדפות עבור:"\n\n" "<li>"יישומים מושבתים"</li>\n" "<li>"התראות יישום מושבת"</li>\n" "<li>"יישומי ברירת מחדל לפעולות"</li>\n" "<li>"הגבלות נתוני רקע ליישומים"</li>\n\n" לא תאבד נתוני יישומים."</string> @@ -1082,7 +1083,7 @@ <string name="filter" msgid="2018011724373033887">"סינון"</string> <string name="filter_dlg_title" msgid="8693024463731076091">"בחר אפשרויות סינון"</string> <string name="filter_apps_all" msgid="5142129378749391876">"הכל"</string> - <string name="filter_apps_third_party" msgid="7786348047690140979">"ההורדה בוצעה"</string> + <string name="filter_apps_third_party" msgid="7786348047690140979">"הורדו"</string> <string name="filter_apps_running" msgid="7767071454371350486">"פועל"</string> <string name="filter_apps_onsdcard" product="nosdcard" msgid="4843063154701023349">"אחסון USB"</string> <string name="filter_apps_onsdcard" product="default" msgid="1477351142334784771">"בכרטיס SD"</string> @@ -1151,8 +1152,8 @@ <string name="service_started_by_app" msgid="818675099014723551">"הופעל על ידי יישום."</string> <!-- no translation found for service_client_name (4037193625611815517) --> <skip /> - <string name="service_background_processes" msgid="6844156253576174488">"<xliff:g id="MEMORY">%1$s</xliff:g> של שטח פנוי"</string> - <string name="service_foreground_processes" msgid="7583975676795574276">"<xliff:g id="MEMORY">%1$s</xliff:g> בשימוש"</string> + <string name="service_background_processes" msgid="6844156253576174488">"<xliff:g id="MEMORY">%1$s</xliff:g> של שטח פנוי"</string> + <string name="service_foreground_processes" msgid="7583975676795574276">"<xliff:g id="MEMORY">%1$s</xliff:g> בשימוש"</string> <string name="memory" msgid="6609961111091483458">"RAM"</string> <!-- no translation found for service_process_name (4098932168654826656) --> <skip /> @@ -1239,7 +1240,7 @@ <string name="quick_launch_clear_dialog_message" msgid="3921015601470260722">"קיצור הדרך של <xliff:g id="SHORTCUT_LETTER">%1$s</xliff:g> (<xliff:g id="APPLICATION_NAME">%2$s</xliff:g>) יוסר."</string> <string name="quick_launch_clear_ok_button" msgid="2634568926597586716">"אישור"</string> <string name="quick_launch_clear_cancel_button" msgid="1892854652197747064">"ביטול"</string> - <string name="quick_launch_display_mode_applications" msgid="1734058461846126775">"Apps"</string> + <string name="quick_launch_display_mode_applications" msgid="1734058461846126775">"יישומים"</string> <string name="quick_launch_display_mode_shortcuts" msgid="4177934019174169042">"קיצורי דרך"</string> <string name="input_methods_settings_title" msgid="6800066636850553887">"קלט טקסט"</string> <string name="input_method" msgid="5434026103176856164">"שיטת קלט"</string> @@ -1662,7 +1663,7 @@ <string name="transition_animation_scale_title" msgid="387527540523595875">"קנה מידה של הנפשת מעבר"</string> <string name="animator_duration_scale_title" msgid="3406722410819934083">"קנה מידת משך זמן למנפיש"</string> <string name="overlay_display_devices_title" msgid="5364176287998398539">"צור הדמיית תצוגות משניות"</string> - <string name="debug_applications_category" msgid="4206913653849771549">"Apps"</string> + <string name="debug_applications_category" msgid="4206913653849771549">"יישומים"</string> <string name="immediately_destroy_activities" msgid="8366775083630234121">"אל תשמור פעילויות"</string> <string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"השמד כל פעילות ברגע שהמשתמש עוזב אותה"</string> <string name="app_process_limit_title" msgid="4280600650253107163">"מגבלה של תהליך ברקע"</string> @@ -1830,4 +1831,745 @@ <string name="user_picture_title" msgid="7297782792000291692">"זיהוי תמונה"</string> <string name="cell_broadcast_settings" msgid="8415582011920085222">"שידורים סלולריים"</string> <string name="cell_broadcast_settings_summary" msgid="3301339398950905913">"בחר את סוגי התראות החירום להצגה."</string> + + <!-- *** CYANOGENMOD ADDITIONS START *** --> + + <string name="ok">אישור</string> + + <!-- Quiet hours --> + <string name="quiet_hours_title">שעות שקטות</string> + <string name="quiet_hours_summary">הגדר את השעות בהן המכשיר יהיה שקט</string> + <string name="quiet_hours_note_title">הערה</string> + <string name="quiet_hours_note_summary">שיחות נכנסות יתקבלו כרגיל בזמן השעות השקטות</string> + <string name="quiet_hours_enabled">הפעל את \"שעות שקטות \"</string> + <string name="quiet_hours_enabled_on">שעות שקטות יאכפו על המכשיר</string> + <string name="quiet_hours_enabled_off">התראות יתפקדו כרגיל</string> + <string name="quiet_hours_start">תחילת השעות השקטות</string> + <string name="quiet_hours_start_summary">הזמן בו תחל אכיפת השעות השקטות</string> + <string name="quiet_hours_end">סיום השעות השקטות</string> + <string name="quiet_hours_end_summary">הזמן בו תפסק אכיפת השעות השקטות</string> + <string name="quiet_hours_mute">השתק התראות</string> + <string name="quiet_hours_mute_on">לא יושמעו צלילים</string> + <string name="quiet_hours_mute_off">צלילים יושמעו כרגיל</string> + <string name="quiet_hours_still">השבת רטט</string> + <string name="quiet_hours_still_on">המכשיר לא ירטוט</string> + <string name="quiet_hours_still_off">המכשיר ירטוט כרגיל</string> + <string name="quiet_hours_dim">השבת תאורת התראות</string> + <string name="quiet_hours_dim_on">תאורת ההתראות תושבת</string> + <string name="quiet_hours_dim_off">תאורת ההתראות תתפקד כרגיל</string> + <string name="quiet_hours_haptic">השבת רטט במגע</string> + <string name="quiet_hours_haptic_on">רטט במגע יושבת</string> + <string name="quiet_hours_haptic_off">רטט במגע יתפקד כרגיל</string> + <string name="quiet_hours_active_from">פעיל בין</string> + <string name="quiet_hours_active_to">ל</string> + + <!-- time range preference --> + <string name="start_time_title">התחלה</string> + <string name="end_time_title">סיום</string> + + <!-- Hostname setting --> + <string name="device_hostname">שם המכשיר</string> + + <!-- About phone screen, setting option name--> + <string name="mod_version">גרסת CyanogenMod</string> + <string name="mod_version_default">לא ידועה</string> + <!-- About phone screen, build date of ROM --> + <string name="build_date">תאריך Build</string> + <string name="build_date_default">2012-01-01-0000</string> + <!-- About device screen, Cpu info. --> + <string name="cpu_info">מעבד</string> + <!-- About phone screen, Free memory info --> + <string name="mem_info">זיכרון</string> + <!-- About phone screen, status item label --> + + <!-- Anonymous Statistics #CM --> + <!-- About device screen, list item title. Takes the user to the screen about opting in or out of anonymous statistics. --> + <string name="anonymous_statistics_title">סטטיסטיקות CyanogenMod</string> + <string name="anonymous_statistics_summary">עזור לנו לשפר את CyanogenMod בעזרת הצטרפות לדיווח של סטטיסטיקות חסויות</string> + <string name="anonymous_statistics_warning_title">אודות</string> + <string name="anonymous_statistics_warning">הצטרפות לסטטיסטיקות CyanogenMod יאפשרו למידע שאינו אישי להשלח אל מפתחי CyanogenMod לשם מעקב אחר התקנות מכשירים יחודיות. המידע שנשלח כולל מזהה ייחודי, שאינו פוגע בפרטיותך ואינו חושף מידע אישי. המידע ישלח בכל פעם בה יופעל המכשיר.\n\nלהצגת דוגמה של המידע הנשלח לחץ על \"תצוגה מקדימה\".</string> + <string name="enable_reporting_title">הפעל דיווח</string> + <string name="preview_data_title">תצוגה מקדימה</string> + <string name="preview_data_summary">%s</string> + <string name="view_stats_title">הצג סטטיסטיקות</string> + <string name="anonymous_learn_more">למד עוד</string> + + <!-- Anonymous Statistics - Notification --> + <string name="anonymous_notification_desc">הפעל או בטל את סטטיסטיקות CyanogenMod</string> + + <!-- Anonymous Statistics - Preview --> + <string name="preview_id_title">מזהה ייחודי</string> + <string name="preview_device_title">מכשיר</string> + <string name="preview_version_title">גרסה</string> + <string name="preview_country_title">מדינה</string> + <string name="preview_carrier_title">ספקית</string> + + <!-- INTERFACE Settings --> + <!-- Settings main menu category heading. Interface (Launcher, Themes, System). [CHAR LIMIT=40] --> + <string name="header_category_interface">ממשק</string> + + <!-- Launcher settings --> + <string name="launcher_settings_title">Launcher</string> + + <!-- Themes settings --> + <string name="themes_settings_title">ערכות נושא</string> + + <!-- System Interface settings --> + <string name="system_settings_title">מערכת</string> + <string name="system_interface_title">ממשק מערכת</string> + + <!-- Notification Drawer --> + <string name="notification_drawer_title">מגירת ההתראות</string> + + <string name="lock_screen_title">מסך נעילה</string> + + <!-- Lock Screen Shortcuts --> + <string name="lockscreen_target_info">גרור את המחוון אל המטרות כדי לשייך קיצורים</string> + <string name="lockscreen_target_title">קיצורי מסך נעילה</string> + <string name="lockscreen_target_summary">הצג או שנה קיצורי מסך נעילה מותאמים אישית</string> + <string name="lockscreen_target_reset">קיצורי מסך הנעילה אופסו לברירת המחדל</string> + <string name="lockscreen_target_save">קיצורי מסך הנעילה נשמרו</string> + <string name="lockscreen_target_reset_title">אפס</string> + <string name="lockscreen_target_reset_message">למחוק את כל קיצורי מסך הנעילה ולאפס אותם לברירת המחדל?</string> + <string name="lockscreen_target_empty">ריק</string> + <string name="lockscreen_target_edit_title">עריכת קיצור דרך וסמל</string> + <string name="lockscreen_target_edit_msg">בחר או שנה את היישום או הפעילות הרצויים ואת הסמל המשוייך להם</string> + + <!-- Lock screen vibrate settings --> + <string name="lockscreen_vibrate_enabled_title">רטט</string> + <string name="lockscreen_vibrate_enabled_head">רטוט בעת פתיחת המכשיר</string> + + <!-- Lock screen misc. settings --> + <string name="lockscreen_battery_status_title">מצב הסוללה</string> + <string name="lockscreen_battery_status_charging">בעת טעינה בלבד</string> + <string name="lockscreen_battery_status_alwayson">מוצג תמיד</string> + + <!-- Sizes for pattern lockscreen --> + <string name="lock_pattern_size_3">3x3</string> + <string name="lock_pattern_size_4">4x4</string> + <string name="lock_pattern_size_5">5x5</string> + <string name="lock_pattern_size_6">6x6</string> + + <!-- Profiles settings --> + <string name="profiles_settings_title">פרופילים</string> + <string name="profiles_general_title">כללי</string> + <string name="profiles_add">הוסף</string> + <string name="profile_menu_delete">מחק</string> + <string name="profile_settings_title">פרופיל</string> + <string name="profile_empty_list_profiles_off">על מנת להגדיר ולהשתמש בפרופילי מערכת עליך להפעיל אותם.</string> + + <!-- Add Profile --> + <string name="add_profile_dialog_title">יצירת פרופיל חדש</string> + <string name="profile_name_title">שם</string> + <string name="profile_profile_name_prompt">הזן שם לפרופיל החדש</string> + <string name="menu_new_profile">פרופיל חדש</string> + <string name="menu_new_profile_summary">הוספת פרופיל חדש והגדרתו</string> + <string name="new_profile_name"><פרופיל חדש></string> + + <!-- Rename Dialog --> + <string name="rename_dialog_title">שינוי שם</string> + <string name="rename_dialog_message">הזן שם חדש</string> + <string name="duplicate_profile_name">שם הפרופיל תפוס!</string> + <string name="duplicate_appgroup_name">שם הקבוצה תפוס!</string> + + <!-- Reset Profiles --> + <string name="profile_reset_title">אפס</string> + <string name="profile_reset_message">למחוק פרופילים וקבוצות מותאמים אישית ולשחזר את ברירת המחדל?</string> + + <!-- Delete confimation messages --> + <string name="profile_delete_confirm">למחוק את הפרופיל?</string> + <string name="profile_app_delete_confirm">להסיר את היישום?</string> + <string name="profile_cannot_delete">לא ניתן למחוק פרופיל פעיל</string> + + <!-- Profile Config screen PreferenceGroup titles --> + <string name="profile_connectionoverrides_title">כפיית הגדרות חיבורים</string> + <string name="profile_volumeoverrides_title">כפיית עוצמות קול</string> + <string name="profile_vibratoroverrides_title">כפיית הגדרות רטט</string> + <string name="connection_state_disabled">השבת</string> + <string name="connection_state_enabled">הפעל</string> + <string name="volume_override_summary">הגדר ל</string> + <string name="vibrator_state_disabled">השבת</string> + <string name="vibrator_state_enabled">הפעל</string> + <string name="vibrator_state_silent">רק במצב שקט</string> + + <!-- Menu item for managing profiles --> + <string name="profile_profiles_manage">פרופילים</string> + <string name="profile_profile_manage">ניהול פרופיל</string> + <string name="profile_applist_manage">רשימת יישומים</string> + <string name="profile_appgroups_manage">קבוצות יישומים</string> + <string name="profile_appgroup_manage">ניהול קבוצת יישומים</string> + + <!-- Profile settings screen, section header for settings related to notification profiles --> + <string name="profile_settings">הגדרות פרופיל</string> + <string name="profile_name">שם</string> + + <!-- Profile Settings sound modes labels --> + <string name="sound_mode">מצב התראות</string> + <string name="ringer_mode">מצב צלצול</string> + <string name="lights_mode">מצב תאורה</string> + <string name="vibrate_mode">מצב רטט</string> + <string name="choose_soundtone">בחר צליל להתראה</string> + <string name="choose_ringtone">בחר רינגטון</string> + + <!-- Sound settings screen, setting option name to pick ringtone (a list dialog comes up)--> + <string name="soundtone_title">צליל התראה</string> + <string name="soundtone_summary">""</string> + + <!-- Title for application group setting screen --> + <string name="profile_appgroups_title">קבוצות יישומים</string> + <string name="profile_applist_title">יישומים</string> + <string name="profile_new_appgroup">קבוצת יישומים חדשה</string> + <string name="profile_delete_appgroup">למחוק את קבוצת היישומים הזו?</string> + <string name="profile_appgroup_name_prompt">הזן שם לקבוצת היישומים החדשה</string> + <string name="profile_appgroup_name_title">שם</string> + <string name="profile_add_app">הוסף יישום</string> + <string name="profile_delete_app">הסר יישום</string> + + <!-- Add application dialog box title --> + <string name="profile_choose_app">בחר יישום</string> + <string name="profile_settings_header">הגדרות פרופיל</string> + + <!-- Profiles - system settings --> + <string name="profile_system_settings_title">הגדרות מערכת</string> + <string name="profile_lockmode_title">מצב מסך נעילה</string> + <string name="profile_lockmode_default">ברירת מחדל</string> + <string name="profile_lockmode_insecure">לא מאובטח</string> + <string name="profile_lockmode_disabled">מושבת</string> + <string name="profile_lockmode_default_summary">משתמש במסך ברירת המחדל</string> + <string name="profile_lockmode_insecure_summary">משתמש במסך נעילה שאינו מאובטח</string> + <string name="profile_lockmode_disabled_summary">מסך הנעילה מושבת</string> + <string name="profile_airplanemode_title">מצב טיסה</string> + <string name="profile_disable_screen_lock_summary">השבת את אבטחת מסך הנעילה כשפרופיל זה פעיל</string> + + <string name="vibrator_type_ringer">שיחות</string> + <string name="vibrator_type_notification">התראות</string> + + <!-- Connection override toggles (not all are used at this time ) --> + <string name="possibleButtons">כפתורים אפשריים</string> + <string name="toggleWifi">Wi-Fi</string> + <string name="toggleWifiAp">נקודת גישה אישית של Wi-Fi</string> + <string name="toggleBluetooth">Bluetooth</string> + <string name="toggleGPS">GPS</string> + <string name="toggleData">נתונים לנייד</string> + <string name="toggleSync">סנכרון נתונים</string> + <string name="toggle2g3g">2G/3G</string> + <string name="toggleSound">מצב צלצול</string> + <string name="toggleBrightness">בהירות</string> + <string name="toggleAutoRotate">סיבוב אוטומטי</string> + <string name="toggleScreenTimeout">כיבוי מסך</string> + <string name="toggleAirplane">מצב טיסה</string> + <string name="toggleFlashlight">פנס</string> + <string name="toggleLockScreen">מסך נעילה</string> + <string name="toggleWimax">WiMAX</string> + + <!-- Screen security - Screen security --> + <string name="screen_security_category">אבטחת מסך</string> + <string name="screen_security_title">מסך נעילה</string> + <string name="screen_security_summary">הצג או שנה את הגדרות מסך הנעילה, השהייה וכיבוי המסך</string> + <string name="additional_options_title">אפשרויות נוספות</string> + <string name="unlock_menu_unlock_title">פתיחה בלחיצה על \"תפריט\"</string> + <string name="unlock_menu_unlock_summary">לחיצה על מקש התפריט תשחרר את המכשיר מנעילתו</string> + <string name="unlock_home_unlock_title">פתיחה בלחיצה על \"בית\"</string> + <string name="unlock_home_unlock_summary">לחיצה על מקש הבית תשחרר את המכשיר מנעילתו</string> + <string name="unlock_quick_unlock_control_title">פתיחה מהירה</string> + <string name="unlock_quick_unlock_control_summary">שחרר את נעילת המכשיר באופן אוטומטי כשהסיסמה הנכונה מוקלדת</string> + + <!-- Slide lock delay --> + <string name="delay_and_timeout_title">השהיית נעילה</string> + <string name="slide_lock_delay_title">השהה נעילת מסך</string> + <string name="slide_lock_timeout_delay_title">השהייה לאחר כיבוי אוטומטי של המסך</string> + <string name="slide_lock_screenoff_delay_title">השהייה לאחר כיבוי המסך בלחיצה</string> + <string name="slide_lock_delay_none">ללא</string> + <string name="slide_lock_delay_1s">שנייה</string> + <string name="slide_lock_delay_5s">5 שניות</string> + <string name="slide_lock_delay_10s">10 שניות</string> + <string name="slide_lock_delay_15s">15 שניות</string> + <string name="slide_lock_delay_30s">חצי דקה</string> + <string name="slide_lock_delay_1m">דקה</string> + <string name="slide_lock_delay_5m">5 דקות</string> + <string name="slide_lock_delay_10m">10 דקות</string> + <string name="slide_lock_delay_30m">חצי שעה</string> + + <!-- Performance settings --> + <string name="performance_settings_title">ביצועים</string> + + <!-- Performance Settings : Warning dialog --> + <string name="performance_settings_warning_title">המשך בזהירות</string> + <string name="performance_settings_warning">הגדרות אלו כלולות לניסויים וכל שינוי בהם עלול לגרום לחוסר יציבות, קריסות, איבוד מידע או כשלים חומרתיים.\n\nאנו מבקשים לא לדווח על באגים אם אחת מההגדרות או יותר שונתה מברירת המחדל.</string> + + <!-- Performance Settings : Processor Settings --> + <!-- Performance Settings : Processor settings title --> + <string name="processor_title">מעבד</string> + <!-- Performance Settings : Processor settings summary. --> + <string name="processor_summary">שנה את וסת המעבד ותדירותו</string> <!-- להשאיר governor?--> + + <!-- Performance Settings : Processor settings sub items --> + <string name="cpu_cur_freq_title">תדירות מעבד נוכחית</string> + <string name="cpu_governors_title">וסת מעבד</string> + <string name="cpu_governors_summary">%S</string> + <string name="cpu_min_freq_title">תדירות מינימאלית</string> + <string name="cpu_min_freq_summary">%s</string> + <string name="cpu_max_freq_title">תדירות מקסימאלית</string> + <string name="cpu_max_freq_summary">%s</string> + <string name="cpu_set_on_boot">הגדר בעליית המערכת</string> + <string name="cpu_set_on_boot_summary">שחזר את הגדרות המעבד בעליית המערכת</string> + + <!-- Performance Settings : I/O scheduler settings title --> + <string name="io_scheds_title">מתזמן קלט/פלט</string> + <!-- Performance Settings : I/O scheduler settings summary. --> + <string name="io_scheds_summary">שנה את מתזמן הקלט/פלט</string> + + <!-- Performance Settings : I/O scheduler settings sub items --> + <string name="io_sched_title">מתזמן קלט/פלט</string> + <string name="io_sched_summary">%S</string> + <string name="io_sched_set_on_boot">הגדר בעליית המערכת</string> + <string name="io_sched_set_on_boot_summary">שחזר את הגדרות מתזמן הקלט/פלט בעליית המערכת</string> + + <!-- Memory Management --> + <string name="memory_management_title">ניהול זיכרון</string> + <string name="memory_management_summary">התאם אישית את השימוש בזיכרון כדי לשנות את ביצועי המערכת</string> + <!-- zRam --> + <string name="pref_zram_title">zRam</string> + <string name="pref_zram_summary">דחיסת זיכרון לשם הגדלת הקיבולת הוירטואלית (מחייב הפעלה מחדש)</string> + <!-- KSM --> + <string name="pref_ksm_title">Kernel samepage merging</string> + <string name="pref_ksm_summary">KSM מקטין את דרישות הזיכרון הממשי ומשפר את הביצועים</string> + <!-- Purgeable Assets --> + <string name="pref_purgeable_assets_title">אפשר טיהור נכסים</string> + <string name="pref_purgeable_assets_summary">טיהור של נכסי מפת סיביות מאפשר שחרור של זיכרון נוסף בשעת הצורך (מחייב הפעלה מחדש)</string> + + <!-- Performance Settings : Dithering --> + <string name="pref_use_dithering_title">שיפור פני השטח</string> + <string name="dithering_no_dither">השבת</string> <!-- Have no idea about how to translate "dithering" זה בדיוק ההפך ממיזוג צבעים, אולי פירוד צבעים --> + <string name="dithering_color_banding">תקן איחוד צבעים (ברירת מחדל)</string> + <string name="dithering_blur_effect">תקן איחוד צבעים וטשטוש</string> + + <!-- Performance Settings : 16bpp Alpha --> + <string name="pref_use_16bpp_alpha_title">שקיפות 16bit</string> + <string name="pref_use_16bpp_alpha_summary">משפר ביצועים גרפיים, אבל פוגע באיכות ויכול לגרום לארטיפקטים חזותיים (מחייב הפעלה מחדש)</string> + + <!-- Display : Rotation --> + <string name="display_rotation_title">סיבוב אוטומטי</string> + <string name="display_rotation_disabled">כבוי</string> + <string name="display_rotation_unit">מעלות</string> + <string name="display_rotation_category_title">מצבי סיבוב</string> + <string name="display_rotation_0_title">0 מעלות</string> + <string name="display_rotation_90_title">90 מעלות</string> + <string name="display_rotation_180_title">180 מעלות</string> + <string name="display_rotation_270_title">270 מעלות</string> + + <!-- Lock screen shortcuts --> + <string name="picker_activities">פעילויות</string> + <string name="select_custom_app_title">בחר יישום מותאם אישית</string> + <string name="select_custom_activity_title">בחר פעילות מותאמת אישית</string> + <string name="icon_picker_choose_icon_title">בחר סמל</string> + <string name="icon_picker_alarm">שעון מעורר</string> + <string name="icon_picker_browser">דפדפן</string> + <string name="icon_picker_calendar">יומן</string> + <string name="icon_picker_camera">מצלמה</string> + <string name="icon_picker_chrome">Chrome</string> + <string name="icon_picker_email">דוא\"ל</string> + <string name="icon_picker_email2">דוא\"ל Holo</string> + <string name="icon_picker_facebook">Facebook</string> + <string name="icon_picker_gallery">גלריה</string> + <string name="icon_picker_google_small">Google (קטן)</string> + <string name="icon_picker_googleplus">Google Plus</string> + <string name="icon_picker_googletalk">Google Talk</string> + <string name="icon_picker_maps">מפות</string> + <string name="icon_picker_movie">סרט</string> + <string name="icon_picker_music">מוסיקה</string> + <string name="icon_picker_nav_normal">ניווט</string> + <string name="icon_picker_phone">טלפון</string> + <string name="icon_picker_podcast">Podcast</string> + <string name="icon_picker_rss">Rss</string> + <string name="icon_picker_search">חיפוש</string> + <string name="icon_picker_sms">הודעות</string> + <string name="icon_picker_twitter">Twitter</string> + + <!-- String for IconPicker --> + <string name="icon_picker_title">בחר מקור לסמל</string> + <string name="icon_picker_system_icons_title">סמלי מערכת</string> + <string name="icon_picker_gallery_title">גלריה</string> + <string name="icon_picker_pack_title">חבילת סמלים</string> + + <string name="increasing_ring_title">רינגטון מתגבר</string> + <!-- Sound settings screen, the caption of the checkbox for making incoming calls increase in volume --> + <string name="checkbox_increasing_ring">הפעל</string> + <!-- Sound settings screen, the title of the volume bar to adjust the minimum increasing ring volume --> + <string name="increasing_ring_min_volume_title">עוצמת קול התחלתית</string> + <string name="increasing_ring_volume_notice">הערה:\nמשום שעוצמת הקול ההתחלתית גבוהה מעוצמת הצלצול, הרינגטון יושמע על פי עוצמת הצלצול במקום.</string> + <string name="increasing_ring_interval_title">קצב ההתגברות</string> + <string name="increasing_ring_interval_eachring">בכל צלצול</string> + <string name="increasing_ring_interval_half_second">חצי שנייה</string> + <string name="increasing_ring_interval_1second">שנייה</string> + <string name="increasing_ring_interval_2seconds">2 שניות</string> + <string name="increasing_ring_interval_3seconds">3 שניות</string> + <string name="increasing_ring_interval_5seconds">5 שניות</string> + <string name="increasing_ring_interval_10seconds">10 שניות</string> + + <string name="profile_write_nfc_tag">כתוב לתווית NFC</string> + <string name="profile_write_touch_tag">גע בתווית כדי לכתוב</string> + <string name="profile_write_success">תווית נכתבה בהצלחה</string> + <string name="profile_write_failed">כתיבת התווית נכשלה!</string> + <string name="profile_selected">פרופיל נבחר: %1$s</string> + <string name="profile_nfc_text">כתיבת פרופיל לתווית NFC מאפשרת לבחור אותו בהקשה על התווית. הקשה נוספת תשיב את הפרופיל הקודם.</string> + <string name="profile_unknown_nfc_tag">פרופיל לא ידוע</string> + <string name="profile_add_nfc_text">התווית מפנה לפרופיל שאינו מוכר. שיוך של תווית NFC זו לפרופיל קיים יאפשר את בחירתו בעתיד.</string> + <string name="profile_select">בחר פרופיל</string> + + <string name="link_volume_ringtones">קשר בין עוצמות הקול של רינגטון והתראות</string> + <string name="link_volume_mutes">מצב שקט ישפיע על התראות</string> + + <!-- Display settings screen, notification light settings --> + <string name="notification_light_general_title">כללי</string> + <string name="notification_light_applist_title">יישומים</string> + <string name="notification_light_phonelist_title">טלפון</string> + <string name="notification_light_use_custom">השתמש בערכים מותאמים אישית</string> + <string name="notification_light_enabled">מופעל</string> + <string name="notification_light_disabled">מושבת</string> + <string name="notification_light_default_value">ברירת מחדל</string> + <string name="notification_light_missed_call_title">שיחה שלא נענתה</string> + <string name="notification_light_voicemail_title">דואר קולי</string> + + <!-- Notification light dialogs --> + <string name="edit_light_settings">עריכת הגדרות תאורה</string> + <string name="pulse_speed_title">אורך הבהוב ומהירות</string> + <string name="picker_arrow">←</string> + <string name="default_time">רגיל</string> + <string name="custom_time">מותאם אישית</string> + <string name="dialog_test">בדיקה</string> + <string name="dialog_delete_title">מחק</string> + <string name="dialog_delete_message">למחוק פריט נבחר?</string> + <string name="dialog_test_message">כבה את המסך כדי לראות את ההתראה הנבחרת בפעולה או סגור את ההודעה כדי לעצור את הבדיקה.</string> + <string name="dialog_test_button">סגור</string> + + <!-- Values for the notification light pulse spinners --> + <string name="pulse_length_always_on">דולק תמיד</string> + <string name="pulse_length_very_short">קצר מאוד</string> + <string name="pulse_length_short">קצר</string> + <string name="pulse_length_normal">רגיל</string> + <string name="pulse_length_long">ארוך</string> + <string name="pulse_length_very_long">ארוך מאוד</string> + <string name="pulse_speed_very_fast">מהיר מאוד</string> + <string name="pulse_speed_fast">מהיר</string> + <string name="pulse_speed_normal">רגיל</string> + <string name="pulse_speed_slow">איטי</string> + <string name="pulse_speed_very_slow">איטי מאוד</string> + + <!-- Battery light settings --> + <string name="battery_light_title">תאורת סוללה</string> + <string name="battery_low_pulse_title">הבהב אם הסוללה חלשה</string> + <string name="battery_light_list_title">צבעים</string> + <string name="battery_light_low_color_title">סוללה חלשה</string> + <string name="battery_light_medium_color_title">טוען</string> + <string name="battery_light_full_color_title">סוללה טעונה במלואה</string> + + <!-- Sound settings screen --> + <string name="volume_overlay_title">סגנון חלונית עוצמת קול</string> + <string name="volbtn_music_controls_title">מקשי הקול לשליטה במוסיקה</string> + <string name="volbtn_music_controls_summary">כשהמסך כבוי, לחיצה ארוכה על מקשי עוצמת הקול יעברו בין רצועות</string> + <string name="volume_ring_only_description">רינגטון</string> + <string name="ring_mode_title">מצב צלצול</string> + <string name="ring_mode_normal">רגיל</string> + <string name="ring_mode_vibrate">רטט</string> + <string name="ring_mode_mute">שקט</string> + <!-- Headsets --> + <!-- Category title for headset specific Settings. [CHAR LIMIT=40] --> + <string name="headset_category_title">אוזניות</string> + <string name="headset_connect_player_title">הפעל יישום מוזיקה בחיבור</string> + + <!-- Hardware keys --> + <string name="hardware_keys_title">מקשים חומרתיים</string> + <string name="hardware_keys_bindings_title">פעולות מקשים</string> + <string name="hardware_keys_enable_custom_title">אפשר פעולות מותאמות אישית</string> + <string name="hardware_keys_home_long_press_title">מקש הבית (לחיצה ארוכה)</string> + <string name="hardware_keys_menu_press_title">מקש התפריט</string> + <string name="hardware_keys_menu_long_press_title">מקש התפריט (לחיצה ארוכה)</string> + <string name="hardware_keys_assist_press_title">מקש החיפוש</string> + <string name="hardware_keys_assist_long_press_title">מקש החיפוש (לחיצה ארוכה)</string> + <string name="hardware_keys_app_switch_press_title">מקש החלפת היישומים</string> + <string name="hardware_keys_app_switch_long_press_title">מקש החלפת היישומים (לחיצה ארוכה)</string> + <string name="hardware_keys_show_overflow_title">הצג את התפריט הצף</string> + <string name="hardware_keys_show_overflow_summary">הצג את כפתור תפריט שלוש הנקודות בתוך יישומים</string> + <string name="hardware_keys_show_overflow_toast_enable">ייתכן שהתפריט לא יוצג עד שהיישומים יופעלו מחדש</string> + <string name="hardware_keys_show_overflow_toast_disable">ייתכן שהתפריט לא יוסתר עד שהיישומים יופעלו מחדש</string> + <string name="hardware_keys_action_nothing">ללא פעולה</string> + <string name="hardware_keys_action_menu">פתח/סגור את התפריט</string> + <string name="hardware_keys_action_app_switch">יישומים אחרונים</string> + <string name="hardware_keys_action_search">עוזרת החיפוש</string> + <string name="hardware_keys_action_voice_search">חיפוש קולי</string> + <string name="hardware_keys_action_in_app_search">חיפוש בתוך יישומים</string> + + <!-- Navigation Bar #CM --> + <string name="navigation_bar_title">סרגל הניווט</string> + <string name="navigation_bar_help_text">1 - כדי להתחיל לערוך, לחץ על סמל המנעול.\n\n2 - לחץ על כל כפתור כדי לשייך או לשנות את אופי פעולתו\n\n3 - לחץ על כל כפתור והחזק אותו כדי לשנות את מיקומו\n\n4 - כדי לשמור, לחץ על סמל המנעול בשנית\n\n5 - כדי לשחזר לברירת המחדל, לחץ על כפתור האיפוס\n\n</string> + <string name="navigation_bar_tips">• ניתן לשייך פעולות לכפתור אחד בלבד בכל רגע נתון\n\n• לא ניתן להזיז את הכפתורים הצדדיים</string> + <string name="navigation_bar_tips_title">טיפים מהירים</string> + <string name="navigation_bar_reset_message">למחוק את ההגדרות הנוכחיות ולשחזר לברירת המחדל?</string> + <string name="navigation_bar_save_message">הגדרות סרגל הניווט נשמרו</string> + <string name="navigation_bar_reset_toast">סרגל הניווט אופס לברירת המחדל</string> + <string name="navigation_bar_menu_editable">ניתן לערוך</string> + <string name="navigation_bar_menu_locked">נעול</string> + + <!-- Power Widget --> + <string name="power_widget_title">Power widget</string> + <string name="title_expanded_widget">Power widget</string> + <string name="power_widget_behavior">התנהגות ה-Wigdet</string> + <string name="title_expanded_hide_onchange">סגור את המגירה בשינוי</string> + <string name="title_expanded_hide_indicator">Hide indicators</string> + <string name="title_expanded_hide_scrollbar">הסתר את פס הגלילה</string> + <string name="title_widget_picker">כפתורי יישומון</string> + <string name="summary_widget_picker">הצג או שנה את הכפתורים המוצגים</string> + <string name="title_widget_order">סדר כפתורי היישומון</string> + <string name="summary_widget_order">הצג או שנה את סדר הכפתורים</string> + <string name="title_buttons">כפתורים</string> + <string name="title_toggle_wifi">Wi-Fi</string> + <string name="title_toggle_bluetooth">Bluetooth</string> + <string name="title_toggle_gps">GPS</string> + <string name="title_toggle_sound">צליל</string> + <string name="title_toggle_brightness">בהירות</string> + <string name="title_toggle_sync">סנכרון</string> + <string name="title_toggle_wifiap">Wi-Fi AP</string> + <string name="title_toggle_screentimeout">השהיית כיבוי מסך</string> + <string name="title_toggle_mobiledata">נתונים לנייד</string> + <string name="title_toggle_lockscreen">מסך נעילה</string> + <string name="title_toggle_networkmode">רשת</string> + <string name="title_toggle_autorotate">סיבוב אוטומטי</string> + <string name="title_toggle_airplane">מצב טיסה</string> + <string name="title_toggle_flashlight">פנס</string> + <string name="title_toggle_sleep">לך לישון</string> + <string name="title_toggle_media_play_pause">מדיה: הפעל/השהה</string> + <string name="title_toggle_media_previous">מדיה: חזור לקודם</string> + <string name="title_toggle_media_next">מדיה: דלג לבא</string> + <string name="title_toggle_lte">LTE</string> + <string name="title_toggle_wimax">WiMAX</string> + <string name="title_button_modes">מצבי כפתורים</string> + <string name="pref_brightness_mode_title">מצבי בהירות</string> + <string name="pref_brightness_mode_summary">הצג או שנה את מצבי כפתור הבהירות</string> + <string name="cm_brightness_mode_auto">אוטומטי</string> + <string name="cm_brightness_mode_dim">עמום</string> + <string name="pref_network_mode_title">מצבי רשת</string> + <string name="pref_screentimeout_mode_title">מצבי השהיית כיבוי מסך</string> + <string name="pref_ring_mode_title">מצבי קול</string> + <string name="pref_ring_mode_summary">הצג או שנה את מצבי כפתור הקול</string> + <string name="cm_sound_mode_silent">שקט</string> + <string name="cm_sound_mode_vibrate">רטט</string> + <string name="cm_sound_mode_sound">צליל</string> + <string name="cm_sound_mode_soundVibrate">צליל ורטט</string> + <string name="pref_flash_mode_title">מצבי פנס</string> + <string name="expanded_haptic_feedback_title">משוב מגע</string> + + <!-- Kill app long-press back --> + <string name="kill_app_longpress_back">סגור תהליך בלחיצה על חזור</string> + <string name="kill_app_longpress_back_summary">סגור את תהליך היישום הנוכחי בלחיצה ארוכה על חזור</string> + + <!-- Change Log strings --> + <string name="changelog_title">צפייה בתיעוד השינויים</string> + <string name="changelog_loading">טוען את התיעוד...</string> + <string name="changelog_error">לא ניתן לטעון את תיעוד השינויים</string> + <string name="changelog_unknown">לא ידוע</string> + <string name="changelog_version">גרסה</string> + + <!-- Power menu enable disable --> + <string name="power_menu_title">תפריט כיבוי</string> + <string name="power_menu_reboot_title">הפעלה מחדש</string> + <string name="power_menu_screenshot_title">צילום מסך</string> + <string name="power_menu_expanded_desktop">שולחן עבודה מורחב</string> + <string name="power_menu_profiles_title">החלפת פרופיל</string> + <string name="power_menu_airplane_title">מצב טיסה</string> + <string name="power_menu_user_title">החלפת משתמש</string> + <string name="power_menu_sound_title">אפשרויות קול</string> + + <!-- CM Updater --> + <string name="cmupdate_settings_title">עדכוני CyanogenMod</string> + <string name="cmupdate_settings_summary">בדוק, צפה או התקן עדכונים </string> + + <!-- Advanced, Device specific (DeviceParts) settings --> + <string name="advanced_settings_title">מתקדם</string> + + <!-- Whether to display IME switcher notifcation --> + <string name="ime_switcher_notify">התראת בוחר קלט</string> + <string name="ime_switcher_notify_summary">הצג את התראת בוחר אמצעי הקלט</string> + + <!-- Status bar --> + <string name="status_bar_title">שורת המצב</string> + <string name="status_bar_clock_title">שעון</string> + <string name="status_bar_general_title">כללי</string> + <string name="status_bar_show_clock_title">הצג שעון</string> + <string name="status_bar_am_pm_title">סגנון AM/PM</string> + <string name="status_bar_am_pm_info">שעון 24 שעות מופעל</string> + <string name="status_bar_battery_title">סגנון חיווי סוללה</string> + <string name="status_bar_toggle_brightness">שליטה בבהירות</string> + <string name="status_bar_toggle_brightness_summary">שנה את בהירות המסך באמצעות החלקת האצבע על שורת המצב</string> + <string name="status_bar_toggle_info">בהירות אוטומטית מופעלת</string> + <string name="status_bar_signal_text_title">סגנון חיווי אות</string> + <string name="status_bar_style_icon">סמל</string> + <string name="status_bar_style_hidden">מוסתר</string> + <string name="status_bar_signal_text_show_text">טקסט</string> + <string name="status_bar_battery_status_percentage">אחוזים</string> + <string name="status_bar_battery_status_circle">מעגל</string> + <string name="status_bar_battery_status_circle_percentage">מעגל עם אחוזים</string> + + <!-- Status bar notification count --> + <string name="status_bar_notif_count_title">הצג מונה התראות</string> + <string name="status_bar_notif_count_summary">הצג את מספר ההתראות הממתינות בכל יישום</string> + + <!-- Wakeup options --> + <string name="display_category_wakeup_options_title">אפשרויות התעוררות</string> + <string name="pref_volume_wake_title">התעוררות באמצעות מקשי הקול</string> + <string name="pref_volume_wake_summary">לחיצה על מקשי הקול למעלה/למטה תעיר את המכשיר</string> + + <!-- Setting checkbox summary for displaying USB debugging notification --> + <string name="adb_notify">התראת ניקוי באגים</string> + <string name="adb_notify_summary">הצג התראה כשניקוי באגים ב-USB מחובר</string> + + <!-- Launches Dev Tools --> + <string name="development_tools_title">הפעל כלים</string> + + <!-- USB Mass Storage --> + <string name="usb_mass_storage_title">אחסון בנפח גדול</string> + <string name="usb_mass_storage_summary">הפעל אחסון USB בנפח גדול</string> + + <!-- Android debugging over WiFi --> + <string name="adb_over_network">ADB על גבי רשת</string> + <string name="adb_over_network_summary">אפשר ניקוי באגים בעזרת TCP/IP על גבי ממשקי רשת (Wi-Fi, רשתות USB). הגדרה זו מתאפסת בהפעלה מחדש</string> + <!-- Warning for Adb over Network --> + <string name="adb_over_network_warning">אזהרה: כש ADB על גבי הרשת מופעל, המכשיר חשוף לחדירות בכל הרשתות המחוברות כולל רשת הGSM!\n\nהשתמש באפשרות זו רק כאשר אתה מחובר לרשתות בטוחות.\n\nהאם אתה בטוח שברצונך לאפשר את הפונקציה?</string> + + <string name="lockscreen_buttons_title">תפקוד המקשים</string> + <string name="lockscreen_buttons_summary">הצג או שנה את אופן תפקוד המקשים במסך הנעילה</string> + <string name="lockscreen_long_press_back_title">לחיצה ארוכה על \"חזור\"</string> + <string name="lockscreen_long_press_home_title">לחיצה ארוכה על \"בית\"</string> + <string name="lockscreen_long_press_menu_title">לחיצה ארוכה על \"תפריט\"</string> + <string name="lockscreen_buttons_no_action">ללא פעולה</string> + <string name="lockscreen_buttons_flashlight">פנס</string> + <string name="lockscreen_buttons_next">השיר הבא</string> + <string name="lockscreen_buttons_previous">השיר הקודם</string> + <string name="lockscreen_buttons_playpause">הפעל/השהה מוסיקה</string> + <string name="lockscreen_buttons_toggle_sound">שנה מצב קול</string> + + <!-- Quick settings panel --> + <string name="quick_settings_panel_title">חלונית ההגדרות המהירות</string> + <string name="quick_settings_title">הגדרות מהירות</string> + <string name="title_static_tiles">אריחים קבועים</string> + <string name="tile_picker_title">אריחים ומבנה</string> + <string name="tile_picker_summary">הצג, בחר או שנה את האריחים המוצגים ואופן סידורם</string> + <string name="tile_choose_title">בחר אריח</string> + + <string name="title_tile_airplane">מצב טיסה</string> + <string name="title_tile_battery">מצב הסוללה</string> + <string name="title_tile_bluetooth">Bluetooth</string> + <string name="title_tile_brightness">בהירות</string> + <string name="title_tile_sleep">לך לישון</string> + <string name="title_tile_gps">GPS</string> + <string name="title_tile_torch">פנס</string> + <string name="title_tile_lockscreen">מסך נעילה</string> + <string name="title_tile_lte">LTE</string> + <string name="title_tile_mobiledata">נתונים לנייד</string> + <string name="title_tile_profile">פרופילים</string> + <string name="title_tile_autorotate">סיבוב אוטומטי</string> + <string name="title_tile_settings">הגדרות</string> + <string name="title_tile_sound">צליל</string> + <string name="title_tile_sync">סנכרון</string> + <string name="title_tile_wifiap">Wi-Fi AP</string> + <string name="title_tile_wifi">Wi-Fi</string> + <string name="title_tile_wimax">WiMAX</string> + <string name="title_tile_user">מעבר בין משתמשים</string> + <string name="title_tile_networkmode">מצב רשת</string> + <string name="title_tile_nfc">NFC</string> + <string name="title_tile_screen_timeout">השהיית כיבוי מסך</string> + <string name="title_tile_usb_tether">קשירת USB</string> + + <string name="title_dynamic_tiles">אריחים משתנים</string> + <string name="dynamic_tiles_note_title">הערה</string> + <string name="dynamic_tiles_note_summary">אריחים משתנים יופיעו בעקבות אירועי מערכת, הם אינם מוצגים תמיד</string> + <string name="title_dynamic_alarm">שעון מעורר</string> + <string name="title_dynamic_bugreport">דיווח באגים</string> + <string name="title_dynamic_ime">שינוי אמצעי קלט</string> + <string name="title_dynamic_usbtether">קשירת USB</string> + <string name="title_dynamic_wifi">מסך Wi-Fi</string> + + <string name="title_general">כללי</string> + <string name="title_quick_pulldown">משיכה מהירה</string> + <string name="summary_quick_pulldown">%1$s של שורת ההתראות תציג את ההגדרות המהירות</string> + <string name="quick_pulldown_summary_left">משיכת צידה השמאלי</string> + <string name="quick_pulldown_summary_right">משיכת צידה הימני</string> + <string name="quick_pulldown_off">כבוי</string> + <string name="quick_pulldown_left">שמאל</string> + <string name="quick_pulldown_right">ימין</string> + + <string name="title_collapse_panel">סגירה אוטומטית</string> + <string name="summary_collapse_panel">סגור את חלונית ההגדרות לאחר לחיצה על אריח</string> + + <!-- Reset tiles --> + <string name="tiles_reset_title">אפס</string> + <string name="tiles_reset_message">לשחזר את האריחים המוצגים כברירת מחדל?</string> + + <!--- Volume key cursor control --> + <string name="volume_key_cursor_control_title">שליטה בסמן עם כפתורי הקול</string> + <string name="volume_key_cursor_control_off">מושבת</string> + <string name="volume_key_cursor_control_on">כפתור למעלה/למטה מזיז את הסמן שמאלה/ימינה</string> + <string name="volume_key_cursor_control_on_reverse">כפתור למעלה/למטה מזיז את הסמן ימינה/שמאלה</string> + + <!-- Wi-Fi Settings --> + + <!-- Wi-Fi settings screen, advanced, title of the item to show the Wi-Fi device's MAC address. --> + <string name="wifi_setting_countrycode_title">קוד Wi-Fi אזורי</string> + <!-- Wi-Fi settings screen, setting summary for setting the wifi frequency band [CHAR LIMIT=50]--> + <string name="wifi_setting_countrycode_summary">בחר את הקוד האזורי עבור חיבור ה-Wi-Fi</string> + <!-- Wi-Fi settings screen, error message when the frequency band could not be set [CHAR LIMIT=50]. --> + <string name="wifi_setting_countrycode_error">חלה תקלה בהגדרת הקוד.</string> + <!-- Wi-Fi settings screen, advanced, title of the item to set the Wi-Fi priority. --> + <string name="wifi_setting_priority_title">עדיפות רשתות Wi-Fi</string> + <!-- Wi-Fi settings screen, setting summary for setting the Wi-Fi priority--> + <string name="wifi_setting_priority_summary">ציין את סדר העדיפויות של רשתות ה-Wi-Fi</string> + + <!-- Wireless display --> + <string name="pref_wifi_disable_hdcp_title">דלג על משא ומתן של HDCP</string> + <string name="pref_wifi_disable_hdcp_summary">נסה אפשרות זו במידה והינך מצליח להתחבר למסך אך לא לראות פלט</string> + + <!--- Sms security limit --> + <string name="app_security_title">אבטחת יישומים</string> + <string name="sms_security_check_limit_title">הגבלת הודעות SMS</string> + <string name="sms_security_check_limit_summary">הצגת הודעת אזהרה כדי למנוע מיישום לשלוח יותר מידי הודעות SMS ברציפות. המגבלה הנוכחית היא %d הודעות ברבע שעה.</string> + <string name="sms_security_check_limit_default">30 (ברירת מחדל)</string> + + <!--- Lock clock --> + <string name="lock_clock_title">Widget שעון</string> + <string name="lock_clock_summary">הצג או שנה את אופן הצגת Widget ה\"קרונוס\"</string> + + <!-- Stylus Icon --> + <string name="stylus_icon_enabled_title">הצג סמן בעת שימוש בסטילוס</string> + <string name="stylus_icon_enabled_summary">הצג את הסמן בזמן ריחוף או ציור בעזרת סטילוס</string> + + <!-- Accessibility --> + + <!-- Title for the accessibility preference to home button to answers a call. [CHAR LIMIT=35] --> + <string name="accessibility_home_button_answers_call_prerefence_title">לחצן הבית עונה לשיחה</string> + + <!-- Lock screen Widget options --> + <string name="lockscreen_maximize_widgets_title">הגדל וידג\'טים</string> + <string name="lockscreen_maximize_widgets_summary">הצג את הוידג\'טים מוגדלים ואת פתיחת הנעילה מכווצת כשהמסך נדלק</string> + + <!-- Bluetooth --> + + <!-- Activity label of BluetoothMasPermissionActivity, also used as Strings in the permission dialog [CHAR LIMIT=none] --> + <string name="bluetooth_mas_request">בקשת גישה להודעות</string> + + <!-- Bluetooth MAS permission Alert Activity text [CHAR LIMIT=none] --> + <string name="bluetooth_mas_acceptance_dialog_text">%1$s רוצה לגשת להודעות שלך. לאפשר גישה ל-%2$s?</string> + + <!-- Bluetooth MAS permission Alert Activity checkbox text [CHAR LIMIT=none] --> + <string name="bluetooth_mas_remember_choice">אל תשאל שוב</string> + + <!-- Custom lock screen background --> + <string name="lockscreen_custom_background_title">רקע</string> + <string name="lockscreen_custom_background_dialog_title">בחר צבע</string> + <string name="lockscreen_background_result_successful">הרקע שונה בהצלחה</string> + <string name="lockscreen_background_result_not_successful">חלה שגיאה בעת שינוי הרקע</string> + <string name="lockscreen_background_color_fill">מילוי בצבע</string> + <string name="lockscreen_background_custom_image">טפט מותאם אישית</string> + <string name="lockscreen_background_default_wallpaper">טפט ברירת מחדל</string> + + <!-- **** CYANOGENMOD ADDITIONS END **** --> </resources> diff --git a/res/values-ja/arrays.xml b/res/values-ja/arrays.xml index 2c2e94f..291bdef 100644 --- a/res/values-ja/arrays.xml +++ b/res/values-ja/arrays.xml @@ -295,4 +295,72 @@ <item msgid="5077768429488260031">"許可しない"</item> <item msgid="1417929597727989746">"常に許可する"</item> </string-array> + + <string-array name="wifi_countrycode_entries"> + <item>アメリカ合衆国</item> + <item>カナダ, 台湾</item> + <item>ドイツ</item> + <item>ヨーロッパ</item> + <item>日本, ロシア</item> + <item>オーストラリア</item> + <item>中国</item> + <item>韓国</item> + <item>トルコ</item> + <item>シンガポール</item> + <item>ブラジル</item> + </string-array> + + <string-array name="volume_overlay_entries"> + <item>シングル</item> + <item>拡張可能</item> + <item>拡張</item> + <item>なし</item> + </string-array> + + <string-array name="entries_network_widget"> + <item>2G/3G+2G</item> + <item>2G/3Gのみ</item> + <item>2G/3Gのみ/3G+2G</item> + </string-array> + + <string-array name="entries_screentimeout_widget"> + <item>15秒/1分/5分</item> + <item>30秒/2分/5分</item> + </string-array> + + <string-array name="entries_flash_widget"> + <item>ノーマル</item> + <item>ハイ / デスレイ</item> + </string-array> + + <string-array name="haptic_feedback_entries"> + <item>グローバルの設定</item> + <item>オン</item> + <item>オフ</item> + </string-array> + + <string-array name="pref_zram_size_entries"> + <item>無効</item> + <item>10%</item> + <item>18%(デフォルト)</item> + <item>26%</item> + </string-array> + + <string-array name="entries_status_bar_am_pm"> + <item>ノーマル</item> + <item>小さく</item> + <item>無し(デフォルト)</item> + </string-array> + + <string-array name="profile_entries"> + <item>オン</item> + <item>オフ</item> + <item>オーバーライドしない</item> + </string-array> + + <string-array name="profile_connection_entries"> + <item>無効</item> + <item>有効</item> + </string-array> + </resources> diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml index e54f496..b486ec8 100644 --- a/res/values-ja/strings.xml +++ b/res/values-ja/strings.xml @@ -1836,4 +1836,741 @@ <string name="user_picture_title" msgid="7297782792000291692">"画像ID"</string> <string name="cell_broadcast_settings" msgid="8415582011920085222">"エリアメール"</string> <string name="cell_broadcast_settings_summary" msgid="3301339398950905913">"表示する緊急警報の種類を選択してください。"</string> + + <!-- ** CYANOGENMOD ADDITIONS ** --> + + <!-- Activity label of BluetoothMasPermissionActivity, also used as Strings in the permission dialog [CHAR LIMIT=none] --> + <string name="bluetooth_mas_request">"メッセージアクセスリクエスト"</string> + + <!-- Bluetooth MAS permission Alert Activity text [CHAR LIMIT=none] --> + <string name="bluetooth_mas_acceptance_dialog_text">%1$s はメッセージにアクセスしようとします。%2$s を許可しますか?</string> + + <!-- Bluetooth MAS permission Alert Activity checkbox text [CHAR LIMIT=none] --> + <string name="bluetooth_mas_remember_choice">次回以降表示しない</string> + + <!-- Wi-Fi settings screen, advanced, title of the item to set the Wi-Fi priority. --> + <string name="wifi_setting_priority_title">Wi-Fi優先度</string> + <!-- Wi-Fi settings screen, setting summary for setting the Wi-Fi priority--> + <string name="wifi_setting_priority_summary">Wi-Fiネットワークの優先度を設定する</string> + + <string name="battery_info_status_full">フル</string> + <!-- Brightness gadget value used to describe maximum brightness state. --> + <string name="gadget_brightness_state_full">フル</string> + <!-- Brightness gadget value used to describe half brightness state. --> + <string name="gadget_brightness_state_half">ハーフ</string> + + <!-- Category title for headset specific Settings. [CHAR LIMIT=40] --> + <string name="headset_category_title">ヘッドセット</string> + + <!-- Wi-Fi settings screen, advanced, title of the item to show the Wi-Fi device's MAC address. --> + <string name="wifi_setting_countrycode_title">Wi-Fi地域コード</string> + <!-- Wi-Fi settings screen, setting summary for setting the wifi frequency band [CHAR LIMIT=50]--> + <string name="wifi_setting_countrycode_summary">Wi-Fiの地域コードを指定する</string> + <!-- Wi-Fi settings screen, error message when the frequency band could not be set [CHAR LIMIT=50]. --> + <string name="wifi_setting_countrycode_error">地域コードの設定に問題がありました</string> + + <string name="adb_notify">USBデバッグの通知</string> + <string name="adb_notify_summary">USBデバッグが接続されたときに通知する</string> + <string name="link_volume_ringtones">"着信音と同じ音量にする"</string> + <string name="link_volume_mutes">"ミュート状態をリンクさせる"</string> + <string name="icon_picker_search">検索</string> + <string name="icon_picker_google_small">Google (小)</string> + <string name="accessibility_home_button_answers_call_prerefence_title">ホームボタンで着信に応答</string> + + <!-- String for ShortcutPickHelper --> + <string name="picker_activities">アクティビティ</string> + <string name="select_custom_app_title">カスタムアプリケーションを選択</string> + <string name="select_custom_activity_title">カスタムアクティビティを選択</string> + <string name="icon_picker_choose_icon_title">アイコンを選択</string> + <string name="icon_picker_alarm">アラーム</string> + <string name="icon_picker_browser">ブラウザ</string> + <string name="icon_picker_calendar">カレンダー</string> + <string name="icon_picker_camera">カメラ</string> + <string name="icon_picker_email">Eメール</string> + <string name="icon_picker_facebook">Facebook</string> + <string name="icon_picker_gallery">ギャラリー</string> + <string name="icon_picker_googleplus">Googleプラス</string> + <string name="icon_picker_googletalk">Googleトーク</string> + <string name="icon_picker_maps">地図</string> + <string name="icon_picker_movie">動画</string> + <string name="icon_picker_music">音楽</string> + <string name="icon_picker_nav_normal">ナビ</string> + <string name="icon_picker_phone">電話</string> + <string name="icon_picker_podcast">Podcast</string> + <string name="icon_picker_rss">Rss</string> + <string name="icon_picker_sms">メッセージ</string> + <string name="icon_picker_twitter">Twitter</string> + + <!-- String for IconPicker --> + <string name="icon_picker_title">アイコンソースを選択</string> + <string name="icon_picker_system_icons_title">システムアイコン</string> + <string name="icon_picker_gallery_title">ギャラリー</string> + <string name="icon_picker_pack_title">アイコンパック</string> + + <string name="vibrator_type_ringer">着信</string> + <string name="vibrator_type_notification">通知</string> + <string name="volume_overlay_title">音量パネル</string> + <string name="headset_connect_player_title">接続時に音楽アプリを起動</string> + <string name="volume_ring_only_description">着信音</string> + <string name="ring_mode_title">着信音モード</string> + <string name="ring_mode_normal">ノーマル</string> + <string name="ring_mode_vibrate">バイブレーション</string> + <string name="ring_mode_mute">ミュート</string> + + <!-- Battery light settings #CM --> + <string name="battery_light_title">バッテリーライト</string> + <string name="battery_low_pulse_title">残量が少なくなったら点滅</string> + <string name="battery_light_list_title">色</string> + <string name="battery_light_low_color_title">少量時</string> + <string name="battery_light_medium_color_title">充電中</string> + <string name="battery_light_full_color_title">フル時</string> + + <!-- Display settings screen, notification light settings --> + <string name="notification_light_general_title">一般</string> + <string name="notification_light_phonelist_title">電話</string> + <string name="notification_light_missed_call_title">不在着信</string> + <string name="notification_light_voicemail_title">ボイスメール</string> + <string name="notification_light_applist_title">アプリケーション</string> + <string name="notification_light_default_value">デフォルト</string> + <string name="notification_light_use_custom">カスタム設定を使用</string> + <string name="notification_light_enabled">有効</string> + <string name="notification_light_disabled">無効</string> + + <!-- Notification light dialogs --> + <string name="edit_light_settings">ライトの設定を編集</string> + <string name="pulse_speed_title">点滅の長さと速度</string> + <string name="picker_arrow">→</string> + <string name="default_time">ノーマル</string> + <string name="custom_time">カスタム</string> + <string name="dialog_test">テスト</string> + <string name="dialog_delete_title">削除</string> + <string name="dialog_delete_message">選択したアイテムを削除しますか?</string> + <string name="dialog_test_message">スクリーンをオフにして選択された通知の挙動を確認、またはこのダイアログを閉じてテストを終了してください。</string> + <string name="dialog_test_button">閉じる</string> + + <!-- Values for the notification light pulse spinners --> + <string name="pulse_length_always_on">常にオン</string> + <string name="pulse_length_very_short">とても短い</string> + <string name="pulse_length_short">短い</string> + <string name="pulse_length_normal">ノーマル</string> + <string name="pulse_length_long">長い</string> + <string name="pulse_length_very_long">とても長い</string> + <string name="pulse_speed_very_fast">とても速い</string> + <string name="pulse_speed_fast">速い</string> + <string name="pulse_speed_normal">ノーマル</string> + <string name="pulse_speed_slow">遅い</string> + <string name="pulse_speed_very_slow">とても遅い</string> + + <!-- Advanced, Device specific (DeviceParts) settings #CM --> + <string name="advanced_settings_title">アドバンスド</string> + + <!-- INTERFACE Settings #CM --> + <!-- Settings main menu category heading. Interface (Launcher, Themes, System). [CHAR LIMIT=40] --> + <string name="header_category_interface">インタフェース</string> + + <!-- Launcher settings #CM --> + <string name="launcher_settings_title">ランチャー</string> + + <!-- Themes settings #CM --> + <string name="themes_settings_title">テーマ</string> + + <!-- System Interface settings #CM --> + <string name="system_settings_title">システム</string> + <string name="system_interface_title">システムインタフェース</string> + + <!-- Notification Drawer #CM --> + <string name="notification_drawer_title">通知領域</string> + + <!-- Hardware keys #CM --> + <string name="hardware_keys_title">ハードウェアキー</string> + <string name="hardware_keys_bindings_title">キーアクション</string> + <string name="hardware_keys_enable_custom_title">カスタムアクション</string> + <string name="hardware_keys_home_long_press_title">ホームキー(長押し)</string> + <string name="hardware_keys_menu_press_title">メニューキー</string> + <string name="hardware_keys_menu_long_press_title">メニューキー(長押し)</string> + <string name="hardware_keys_assist_press_title">検索キー</string> + <string name="hardware_keys_assist_long_press_title">検索キー(長押し)</string> + <string name="hardware_keys_app_switch_press_title">タスクキー</string> + <string name="hardware_keys_app_switch_long_press_title">タスクキー(長押し)</string> + <string name="hardware_keys_show_overflow_title">オーバーフローアクション</string> + <string name="hardware_keys_show_overflow_summary">3ドットのオーバーフローメニューボタンをアプリ内に表示する</string> + <string name="hardware_keys_show_overflow_toast_enable">アクションオーバーフローボタンはアプリを再起動するまで表示されません</string> + <string name="hardware_keys_show_overflow_toast_disable">アクションオーバーフローボタンはアプリを再起動するまで表示されます</string> + <string name="hardware_keys_action_nothing">無し</string> + <string name="hardware_keys_action_menu">メニューを開く/閉じる</string> + <string name="hardware_keys_action_app_switch">最近使ったアプリ</string> + <string name="hardware_keys_action_search">検索アシスタント</string> + <string name="hardware_keys_action_voice_search">音声検索</string> + <string name="hardware_keys_action_in_app_search">アプリ内検索</string> + + <!-- Navigation Bar #CM --> + <string name="navigation_bar_title">ナビゲーションバー</string> + <string name="navigation_bar_help_text">1 - 編集するにはロックアイコンをタップします\n\n2 - 機能の割り当てや変更をするボタンをタップします\n\n3 - 並びを変更するには長押しします\n\n4 - 保存するために再びロックアイコンをタップします\n\n5 - システムのデフォルトに戻すにはリセットボタンをタップします\n\n</string> + <string name="navigation_bar_tips">• アクションは一度に一つのボタンにしか割り当てられません\n\n• ホームボタンは変更できません\n\n• サイドボタンは並び替えできません</string> + <string name="navigation_bar_tips_title">クィックチップス</string> + <string name="navigation_bar_reset_message">現在の設定を破棄し、デフォルトに戻しますか?</string> + <string name="navigation_bar_save_message">ナビゲーションバーの設定を保存しました</string> + <string name="navigation_bar_reset_toast">ナビゲーションバーをデフォルトに戻しました</string> + <string name="navigation_bar_menu_editable">編集可能</string> + <string name="navigation_bar_menu_locked">ロック中</string> + + <!-- Power Widget #CM --> + <string name="power_widget_title">電源管理ウィジェット</string> + <string name="title_expanded_widget">電源管理ウィジェットを表示</string> + <string name="power_widget_behavior">ウィジェットの挙動</string> + <string name="title_expanded_hide_onchange">変更したら隠す</string> + <string name="title_expanded_hide_scrollbar">スクロールバーを隠す</string> + <string name="title_widget_picker">ウィジェットボタン</string> + <string name="summary_widget_picker">ウィジェットボタンを選択</string> + <string name="title_widget_order">ウィジェットボタンの並び</string> + <string name="summary_widget_order">ウィジェットボタンを並び替える</string> + <string name="title_buttons">ボタン</string> + <string name="title_toggle_wifi">Wi-Fiトグル</string> + <string name="title_toggle_bluetooth">Bluetoothトグル</string> + <string name="title_toggle_gps">GPSトグル</string> + <string name="title_toggle_sound">サウンドトグル</string> + <string name="title_toggle_brightness">明るさトグル</string> + <string name="title_toggle_sync">同期トグル</string> + <string name="title_toggle_wifiap">Wi-Fi APトグル</string> + <string name="title_toggle_screentimeout">スクリーンタイムアウトトグル</string> + <string name="title_toggle_mobiledata">モバイルデータトグル</string> + <string name="title_toggle_lockscreen">ロックスクリーントグル</string> + <string name="title_toggle_networkmode">2G/3Gトグル</string> + <string name="title_toggle_autorotate">回転トグル</string> + <string name="title_toggle_airplane">機内モードトグル</string> + <string name="title_toggle_flashlight">LEDフラッシュトグル</string> + <string name="title_toggle_sleep">スリープ</string> + <string name="title_toggle_media_play_pause">メディア: 再生/停止トグル</string> + <string name="title_toggle_media_previous">メディア: 前に戻る</string> + <string name="title_toggle_media_next">メディア: 次に進む</string> + <string name="title_toggle_wimax">WiMAXトグル</string> + <string name="title_toggle_lte">LTEトグル</string> + <string name="title_button_modes">ボタンモード</string> + <string name="pref_brightness_mode_title">明るさ</string> + <string name="pref_brightness_mode_summary">明るさトグルで変更するモードの選択</string> + <string name="cm_brightness_mode_auto">自動</string> + <string name="cm_brightness_mode_dim">暗い</string> + <string name="pref_network_mode_title">ネットワーク</string> + <string name="pref_screentimeout_mode_title">スクリーンタイムアウト</string> + <string name="pref_ring_mode_title">サウンド</string> + <string name="pref_ring_mode_summary">サウンドトグルで変更するモードの選択</string> + <string name="cm_sound_mode_silent">サイレント</string> + <string name="cm_sound_mode_vibrate">バイブレーション</string> + <string name="cm_sound_mode_sound">サウンド</string> + <string name="cm_sound_mode_soundVibrate">サウンドとバイブレーション</string> + <string name="pref_flash_mode_title">フラッシュ</string> + <string name="expanded_haptic_feedback_title">バイブフィードバック</string> + + <!-- Status bar #CM --> + <string name="status_bar_title">ステータスバー</string> + <string name="status_bar_general_title">一般</string> + <string name="status_bar_show_clock_title">時計を表示</string> + <string name="status_bar_am_pm_title">AM/PMスタイル</string> + <string name="status_bar_am_pm_info">24時間スタイルが有効</string> + <string name="status_bar_clock_title">時計</string> + <string name="status_bar_battery_title">バッテリー状態のスタイル</string> + <string name="status_bar_toggle_brightness">明るさのコントロール</string> + <string name="status_bar_toggle_brightness_summary">ステータスバーをスライディングすることで明るさの調整ができるようにする</string> + <string name="status_bar_toggle_info">自動明るさ調整は有効</string> + <string name="status_bar_signal_text_title">代替の電波強度表示</string> + <string name="status_bar_style_icon">アイコン</string> + <string name="status_bar_style_hidden">非表示</string> + <string name="status_bar_signal_text_show_text">シグナルテキスト</string> + <string name="status_bar_battery_status_percentage">数値</string> + <string name="status_bar_battery_status_circle">サークル</string> + <string name="status_bar_battery_status_circle_percentage">サークルに数値</string> + + <!-- Lock screen #CM --> + <string name="lock_screen_title">ロック画面</string> + + <!-- Lock Screen Shortcuts --> + <string name="lockscreen_target_info">ショートカットを割り当てたいターゲットにスライダーをドラッグ</string> + <string name="lockscreen_target_title">ロック画面のショートカット</string> + <string name="lockscreen_target_summary">ロック画面にショートカットを追加したり編集する</string> + <string name="lockscreen_target_reset">ロック画面のショートカットをデフォルトに戻す</string> + <string name="lockscreen_target_save">ロック画面のショートカットを保存しました</string> + <string name="lockscreen_target_reset_title">リセット</string> + <string name="lockscreen_target_reset_message">全てのロック画面ショートカットを削除してデフォルトに戻しますか?</string> + <string name="lockscreen_target_empty">なし</string> + <string name="lockscreen_target_edit_title">ショートカットの編集</string> + <string name="lockscreen_target_edit_msg">希望するアプリケーションやアクティビティとアイコンを選択して変更します</string> + + <!-- Lock screen vibrate settings --> + <string name="lockscreen_vibrate_enabled_title">バイブレーション</string> + <string name="lockscreen_vibrate_enabled_head">ロック解除時にバイブさせる</string> + + <!-- Lock screen misc. settings #CM --> + <string name="lockscreen_battery_status_title">バッテリーステータス</string> + <string name="lockscreen_battery_status_charging">充電中のみ</string> + <string name="lockscreen_battery_status_alwayson">常に表示</string> + + <string name="lockscreen_buttons_title">ボタンアクション</string> + <string name="lockscreen_buttons_summary">ロック画面のボタンアクションを確認及び編集</string> + <string name="lockscreen_long_press_back_title">戻るボタンの長押し</string> + <string name="lockscreen_long_press_home_title">ホームボタンの長押し</string> + <string name="lockscreen_long_press_menu_title">メニューボタンの長押し</string> + <string name="lockscreen_buttons_no_action">なし</string> + <string name="lockscreen_buttons_flashlight">フラッシュライト</string> + <string name="lockscreen_buttons_next">次の曲</string> + <string name="lockscreen_buttons_previous">前の曲</string> + <string name="lockscreen_buttons_playpause">音楽の再生/停止</string> + <string name="lockscreen_buttons_toggle_sound">サウンドのトグル</string> + + <!-- Profiles settings #CM --> + <string name="profiles_settings_title">プロファイル</string> + <string name="profiles_general_title">一般</string> + <string name="profiles_add">追加</string> + <string name="profile_menu_delete">削除</string> + <string name="profile_settings_title">プロファイル</string> + <string name="profile_empty_list_profiles_off">システムプロファイルを編集して使用するにはプロファイル設定をオンにします</string> + + <!-- Add Profile --> + <string name="add_profile_dialog_title">新規プロファイル作成</string> + <string name="profile_name_title">プロファイルの名前</string> + <string name="profile_profile_name_prompt">新しいプロファイルの名前を入力してください</string> + <string name="menu_new_profile">新規プロファイル</string> + <string name="menu_new_profile_summary">新しいプロファイルを追加して編集する</string> + <string name="new_profile_name"><新規プロファイル></string> + + <!-- Rename Dialog --> + <string name="rename_dialog_title">リネーム</string> + <string name="rename_dialog_message">新しい名前を入力</string> + <string name="duplicate_profile_name">プロファイル名が重複しています!</string> + <string name="duplicate_appgroup_name">アプリグループ名が重複しています!</string> + + <!-- Reset Profiles --> + <string name="profile_reset_title">リセット</string> + <string name="profile_reset_message">全てのプロファイルとアプリグループを削除してそれらを初期設定に戻しますか?</string> + + <!-- Delete confimation messages --> + <string name="profile_delete_confirm">このプロファイルを削除してもよろしいですか?</string> + <string name="profile_app_delete_confirm">このアプリを削除してもよろしいですか?</string> + <string name="profile_cannot_delete">アクティブなプロファイルを削除することはできません</string> + + <!-- Profile Config screen PreferenceGroup titles --> + <string name="profile_connectionoverrides_title">接続のオーバーライド</string> + <string name="profile_volumeoverrides_title">音量のオーバーライド</string> + <string name="profile_vibratoroverrides_title">バイブのオーバーライド</string> + <string name="connection_state_disabled">無効</string> + <string name="connection_state_enabled">有効</string> + <string name="volume_override_summary">設定は </string> + <string name="vibrator_state_disabled">無効</string> + <string name="vibrator_state_enabled">有効</string> + <string name="vibrator_state_silent">マナーモード時のみ</string> + + <!-- Menu item for managing profiles --> + <string name="profile_profiles_manage">プロファイル</string> + <string name="profile_profile_manage">プロファイルの管理</string> + <string name="profile_applist_manage">アプリケーションリスト</string> + <string name="profile_appgroups_manage">アプリグループの管理</string> + <string name="profile_appgroup_manage">プロファイル</string> + + <!-- Profile settings screen, section header for settings related to notification profiles --> + <string name="profile_settings">プロファイル設定</string> + <string name="profile_name">名前</string> + + <!-- Profile Settings sound modes labels --> + <string name="sound_mode">通知モード</string> + <string name="ringer_mode">着信音モード</string> + <string name="lights_mode">ライトモード</string> + <string name="vibrate_mode">バイブモード</string> + <string name="choose_soundtone">通知音を選択</string> + <string name="choose_ringtone">着信音を選択</string> + + <!-- Sound settings screen, setting option name to pick ringtone (a list dialog comes up)--> + <string name="soundtone_title">通知音</string> + <string name="soundtone_summary">""</string> + + <!-- Title for application group setting screen --> + <string name="profile_appgroups_title">アプリグループ</string> + <string name="profile_applist_title">アプリケーション</string> + <string name="profile_new_appgroup">新規アプリグループ</string> + <string name="profile_delete_appgroup">このグループを削除する</string> + <string name="profile_appgroup_name_prompt">アプリグループの名前を入力してください</string> + <string name="profile_appgroup_name_title">名前</string> + <string name="profile_add_app">アプリを追加</string> + <string name="profile_delete_app">アプリを削除</string> + + <!-- Add application dialog box title --> + <string name="profile_choose_app">アプリ選択</string> + <string name="profile_settings_header">プロファイル設定</string> + + <!-- Profiles - system settings --> + <string name="profile_system_settings_title">システム設定</string> + <string name="profile_lockmode_title">画面ロックモード</string> + <string name="profile_lockmode_default">デフォルト</string> + <string name="profile_lockmode_insecure">インセキュア</string> + <string name="profile_lockmode_disabled">無効</string> + <string name="profile_lockmode_default_summary">システムデフォルトの設定</string> + <string name="profile_lockmode_insecure_summary">セキュリティなしのロック</string> + <string name="profile_lockmode_disabled_summary">ロック画面は無効</string> + <string name="profile_disable_screen_lock_summary">このプロファイルを使用している間はロック画面のセキュリティを無効にする</string> + <string name="profile_airplanemode_title">機内モード</string> + + <!-- Connection override toggles (not all are used at this time ) --> + <string name="possibleButtons">可能なボタン</string> + <string name="toggleWifi">Wi-Fi</string> + <string name="toggleWifiAp">ポータブルアクセスポイント</string> + <string name="toggleBluetooth">Bluetooth</string> + <string name="toggleGPS">GPS</string> + <string name="toggleData">データ通信</string> + <string name="toggleSync">データ同期</string> + <string name="toggle2g3g">2G/3G</string> + <string name="toggleSound">着信モード</string> + <string name="toggleBrightness">明るさ</string> + <string name="toggleAutoRotate">回転</string> + <string name="toggleScreenTimeout">スクリーンタイムアウト</string> + <string name="toggleAirplane">機内モード</string> + <string name="toggleFlashlight">フラッシュライト</string> + <string name="toggleLockScreen">画面のロック</string> + <string name="toggleWimax">WiMAX</string> + + <!-- misc #CM --> + <string name="ime_switcher_notify">入力方法セレクタの通知</string> + <string name="ime_switcher_notify_summary">入力方法セレクタを通知バーに表示する</string> + + <!-- Screen security - Screen security #CM --> + <string name="screen_security_category">画面のセキュリティ</string> + <string name="screen_security_title">画面のロック</string> + <string name="screen_security_summary">ロック画面のセキュリティを表示、変更する(遅延やタイムアウトの調整)</string> + <string name="additional_options_title">追加オプション</string> + <string name="unlock_menu_unlock_title">メニューアンロック</string> + <string name="unlock_menu_unlock_summary">メニューボタンを押して端末をロックから解除する</string> + <string name="unlock_home_unlock_title">ホームアンロック</string> + <string name="unlock_home_unlock_summary">ホームボタンを押して端末をロックから解除する</string> + <string name="unlock_quick_unlock_control_title">クイックアンロック</string> + <string name="unlock_quick_unlock_control_summary">PINやパワードを入力後、OKを押す必要を省く(不正入力時のカウントは無効になる)</string> + + <!-- Delays and timeouts --> + <string name="delay_and_timeout_title">ロックの遅延</string> + + <!-- Slide lock delay --> + <string name="slide_lock_delay_title">スライドロックの遅延</string> + <string name="slide_lock_timeout_delay_title">画面タイムアウト時の遅延</string> + <string name="slide_lock_screenoff_delay_title">画面オフ時の遅延</string> + <string name="slide_lock_delay_none">なし</string> + <string name="slide_lock_delay_1s">1秒</string> + <string name="slide_lock_delay_5s">5秒</string> + <string name="slide_lock_delay_10s">10秒</string> + <string name="slide_lock_delay_15s">15秒</string> + <string name="slide_lock_delay_30s">30秒</string> + <string name="slide_lock_delay_1m">1分</string> + <string name="slide_lock_delay_5m">5分</string> + <string name="slide_lock_delay_10m">10分</string> + <string name="slide_lock_delay_30m">30分</string> + + <!-- Performance settings #CM --> + <string name="performance_settings_title">パフォーマンス</string> + + <!-- Performance Settings : Warning dialog #CM --> + <string name="performance_settings_warning_title">注意してください</string> + <string name="performance_settings_warning">これらの設定は実験中のものを含み、変更により不安定、クラッシュ、データの損失、あるいはハードウェアの故障を引き起こす可能性があります。\n\nこれらの設定を変更した後にバグリポートをしないでください。</string> + + <!-- Performance Settings : Processor Settings --> + <!-- Performance Settings : Processor settings title --> + <string name="processor_title">プロセッサ</string> + <!-- Performance Settings : Processor settings summary. --> + <string name="processor_summary">調整タイプとクロックの設定</string> + + <!-- Performance Settings : Processor settings sub items --> + <string name="cpu_cur_freq_title">現在のCPUクロック</string> + <string name="cpu_governors_title">CPU調整</string> + <string name="cpu_min_freq_title">最小CPUクロック</string> + <string name="cpu_max_freq_title">最大CPUクロック</string> + <string name="cpu_set_on_boot">起動時に適用</string> + <string name="cpu_set_on_boot_summary">起動時にCPU設定を適用する</string> + + <!-- Performance Settings : I/O scheduler settings title --> + <string name="io_scheds_title">I/O スケジューラ</string> + <!-- Performance Settings : I/O scheduler settings summary. --> + <string name="io_scheds_summary">I/O スケジューラを変更する</string> + + <!-- Performance Settings : I/O scheduler settings sub items --> + <string name="io_sched_title">I/O スケジューラ</string> + <string name="io_sched_summary">%S</string> + <string name="io_sched_set_on_boot">起動時に設定</string> + <string name="io_sched_set_on_boot_summary">I/O スケジューラの変更を起動時に適用する</string> + + <!-- Memory Management --> + <string name="memory_management_title">メモリマネジメント</string> + <string name="memory_management_summary">システムパフォーマンスを変更するためにメモリの利用をカスタマイズする</string> + <!-- zRam --> + <string name="pref_zram_title">zRam</string> + <string name="pref_zram_summary">メモリを圧縮して仮想領域を増やす(要再起動)</string> + <!-- KSM --> + <string name="pref_ksm_title">Kernel samepage merging</string> + <string name="pref_ksm_summary">KSMは必要とする物理メモリを減らし、パフォーマンスを向上させます</string> + <!-- Purgeable Assets --> + <string name="pref_purgeable_assets_title">アセットの排除を許可</string> + <string name="pref_purgeable_assets_summary">メモリ内に解放可能なビットマップアセットがあれば、システムは必要に応じてRAMを確保できます(要再起動)</string> + + <!-- Performance Settings : Dithering --> + <string name="pref_use_dithering_title">サーフェスディザリング</string> + <string name="dithering_no_dither">ディザリングは無効</string> + <string name="dithering_color_banding">カラーバンディングを固定(デフォルト)</string> + <string name="dithering_blur_effect">カラーバンディングとエフェクトを固定</string> + + <!-- Performance Settings : 16bpp Alpha --> + <string name="pref_use_16bpp_alpha_title">16ビット透過</string> + <string name="pref_use_16bpp_alpha_summary">16ビット透過を使用することでスクロールのパフォーマンスが向上しますが、低品質で稀に不自然に見えます( +要再起動)</string> + + <!-- Anonymous Statistics #CM --> + <!-- About device screen, list item title. Takes the user to the screen about opting in or out of anonymous statistics. --> + <string name="anonymous_statistics_title">CyanogenMod 利用統計</string> + <string name="anonymous_statistics_summary">CyanogenMod をより良くするための匿名利用統計報告をオプトインする</string> + <string name="anonymous_statistics_warning_title">利用統計について</string> + <string name="anonymous_statistics_warning">匿名利用状況の送信を許諾することによって、CyanogenModの開発者がデバイス単位のユニークインストール数を追跡することができます。 + 送信される情報にはユニークIDが含まれますが、これはあなたの個人情報、端末のタイプ及びバージョン情報とは結びつきません。 + データ送信は端末の起動時に毎回行われ、送信されるデータの例はプレビューをクリックすることにより確認できます。</string> + <string name="enable_reporting_title">リポートを有効にする</string> + <string name="preview_data_title">データのプレビュー</string> + <string name="preview_data_summary">%s</string> + <string name="view_stats_title">ステータスを見る</string> + <string name="anonymous_learn_more">詳細</string> + + <!-- Anonymous Statistics - Notification --> + <string name="anonymous_notification_desc">CyanogenMod 利用統計を有効/無効にする</string> + + <!-- Anonymous Statistics - Preview --> + <string name="preview_id_title">ユニークID</string> + <string name="preview_device_title">デバイス</string> + <string name="preview_version_title">バージョン</string> + <string name="preview_country_title">国</string> + <string name="preview_carrier_title">キャリア</string> + + <!-- About device screen, version of modification of Android. --> + <string name="mod_version">CyanogenMod バージョン</string> + <string name="mod_version_default">不明</string> + + <!-- About device screen, build date of ROM. --> + <string name="build_date">ビルド日時</string> + + <!-- Setting checkbox title for Whether debugging should run over TCP/IP. --> + <string name="adb_over_network">ADBオーバーネットワーク</string> + <string name="adb_over_network_summary">ネットワークインタフェース(Wi-FiやUSB)越しのTCP/IPデバッグを有効にする(この設定は再起動でリセットされます)</string> + <!-- Warning for Adb over Network --> + <string name="adb_over_network_warning">警告: ADBオーバーネットワークを有効にするとあなたの端末は、GSMを含むすべての接続可能なネットワークからの侵入を許します!\n\n信頼できるネットワークに接続している場合にのみ有効にしてください。\n\n本当にこの機能を有効にしますか?</string> + + <!-- UI debug setting: kill app long-press back [CHAR LIMIT=25] --> + <string name="kill_app_longpress_back">戻るボタンでアプリ終了</string> + <!-- UI debug settting: kill app long-press back [CHAR LIMIT=50] --> + <string name="kill_app_longpress_back_summary">戻るボタンを長押ししてフォアグラウンドアプリを終了する</string> + + <!-- Wakeup options --> + <string name="display_category_wakeup_options_title">復帰オプション</string> + <string name="pref_volume_wake_title">音量ボタンで復帰</string> + <string name="pref_volume_wake_summary">音量アップ/ダウンボタンで端末を復帰する</string> + + <!-- Quiet hours --> + <string name="quiet_hours_title">サイレントタイム</string> + <string name="quiet_hours_summary">デバイスがサイレントモードになる時間の参照や変更</string> + <string name="quiet_hours_note_title">ノート</string> + <string name="quiet_hours_note_summary">着信はサイレントタイム中でも通常の挙動になります</string> + <string name="quiet_hours_enabled">サイレントタイムを有効にする</string> + <string name="quiet_hours_enabled_on">サイレントタイムが機能します</string> + <string name="quiet_hours_enabled_off">通知は平常通り行われます</string> + <string name="quiet_hours_start">開始時刻</string> + <string name="quiet_hours_start_summary">サイレントタイムが始まる時刻</string> + <string name="quiet_hours_end">終了時刻</string> + <string name="quiet_hours_end_summary">サイレントタイムが終了する時刻</string> + <string name="quiet_hours_mute">通知音をミュート</string> + <string name="quiet_hours_mute_on">通知音は再生されません</string> + <string name="quiet_hours_mute_off">通知音は再生されます</string> + <string name="quiet_hours_still">バイブレーションを無効</string> + <string name="quiet_hours_still_on">端末はバイブしません</string> + <string name="quiet_hours_still_off">端末は平常通りバイブします</string> + <string name="quiet_hours_dim">LEDを暗くする</string> + <string name="quiet_hours_dim_on">可能であればLEDを暗くします</string> + <string name="quiet_hours_dim_off">LEDは最大照度で点灯します</string> + <string name="quiet_hours_haptic">バイブフィードバックを無効にする</string> + <string name="quiet_hours_haptic_on">バイブフィードバックは無効</string> + <string name="quiet_hours_haptic_off">バイブフィードバックは有効</string> + <string name="quiet_hours_active_from">有効時間</string> + <string name="quiet_hours_active_to">から</string> + + <!-- time range preference --> + <string name="start_time_title">開始</string> + <string name="end_time_title">終了</string> + + <!-- Display : Rotation #CM --> + <string name="display_rotation_title">自動回転</string> + <string name="display_rotation_disabled">無効</string> + <string name="display_rotation_unit">度</string> + <string name="display_rotation_category_title">回転モード</string> + <string name="display_rotation_0_title">0度</string> + <string name="display_rotation_90_title">90度</string> + <string name="display_rotation_180_title">180度</string> + <string name="display_rotation_270_title">270度</string> + + <!-- Setting for volume rocker music controls --> + <string name="volbtn_music_controls_title">音量ボタン音楽コントロール</string> + <string name="volbtn_music_controls_summary">スクリーンOFF時、音量ボタンを長押しすることで音楽のトラックをシークする</string> + + <!-- Setting checkbox title for root access --> + <string name="root_access">Rootアクセス</string> + <string name="root_access_warning_title">Rootアクセスを許可しますか?</string> + <string name="root_access_warning_message">アプリケーションによるrootアクセスを許可することは危険で、システムのセキュリティを危険にさらします!</string> + <string name="root_access_none">無効</string> + <string name="root_access_apps">アプリのみ</string> + <string name="root_access_adb">ADBのみ</string> + <string name="root_access_all">アプリとADB</string> + + <string name="profile_write_nfc_tag">NFCタグに書き込む</string> + <string name="profile_write_touch_tag">書き込むタグにタッチ</string> + <string name="profile_write_success">タグに書き込み成功</string> + <string name="profile_write_failed">タグに書き込み失敗!</string> + <string name="profile_selected">選択中プロファイル: %1$s</string> + <string name="profile_nfc_text">NFCタグにプロファイルを書き込むと、タグにタッチすることでプロファイルを選択できます。タグに2回タッチすれば、以前選択していたプロファイルを選択できます。</string> + <string name="profile_unknown_nfc_tag">不明なプロファイル</string> + <string name="profile_add_nfc_text">このNFCタグは不明なプロファイルを指定しています。このNFCタグに既にあるプロファイルを割り当てることで次回よりプロファイルを選択できるようになります。</string> + <string name="profile_select">プロファイルを選択</string> + + <!-- about page --> + <string name="cpu_info">プロセッサ</string> + <string name="mem_info">メモリ</string> + + <!-- Hostname setting --> + <string name="device_hostname">デバイスのホスト名</string> + + <!-- Status bar notification count --> + <string name="status_bar_notif_count_title">通知の数を表示する</string> + <string name="status_bar_notif_count_summary">ステータスバーに溜まっている通知の数を表示する</string> + + <string name="increasing_ring_title">着信音の増加</string> + <!-- Sound settings screen, the caption of the checkbox for making incoming calls increase in volume --> + <string name="checkbox_increasing_ring">有効</string> + <!-- Sound settings screen, the title of the volume bar to adjust the minimum increasing ring volume --> + <string name="increasing_ring_min_volume_title">開始時の音量</string> + <string name="increasing_ring_volume_notice">注意:\n開始時の音量を着信音量より高くした場合、着信音量の値で再生されます。</string> + <string name="increasing_ring_interval_title">増加間隔</string> + <string name="increasing_ring_interval_eachring">着信音のパターンごと</string> + <string name="increasing_ring_interval_half_second">0.5 秒</string> + <string name="increasing_ring_interval_1second">1 秒</string> + <string name="increasing_ring_interval_2seconds">2 秒</string> + <string name="increasing_ring_interval_3seconds">3 秒</string> + <string name="increasing_ring_interval_5seconds">5 秒</string> + <string name="increasing_ring_interval_10seconds">10 秒</string> + + <!-- Change Log strings --> + <string name="changelog_title">更新履歴の表示</string> + <string name="changelog_loading">更新履歴をロード中...</string> + <string name="changelog_error">更新履歴をロードできませんでした</string> + <string name="changelog_unknown">不明</string> + <string name="changelog_version">バージョン</string> + + <!-- Power menu screenshot --> + <string name="power_menu_title">電源ボタンメニュー</string> + <string name="power_menu_reboot_title">再起動メニュー</string> + <string name="power_menu_screenshot_title">スクリーンショット</string> + <string name="power_menu_expanded_desktop">拡張デスクトップ</string> + <string name="power_menu_profiles_title">プロファイル切り替え</string> + <string name="power_menu_airplane_title">機内モード</string> + <string name="power_menu_user_title">ユーザー切り替え</string> + <string name="power_menu_sound_title">サウンドパネル</string> + + <!-- Launches Dev Tools --> + <string name="development_tools_title">開発ツールの起動</string> + + <!-- USB Mass Storage --> + <string name="usb_mass_storage_title">マスストレージ</string> + <string name="usb_mass_storage_summary">USBマスストレージを有効にする</string> + + <!--- Volume key cursor control --> + <string name="volume_key_cursor_control_title">音量キーカーソル制御</string> + <string name="volume_key_cursor_control_off">無効</string> + <string name="volume_key_cursor_control_on">音量アップ/ダウンでカーソルを左/右に移動する</string> + <string name="volume_key_cursor_control_on_reverse">音量アップ/ダウンでカーソルを右/左に移動する</string> + + <!-- CM Updater --> + <string name="cmupdate_settings_title">CyanogenModアップデート</string> + <string name="cmupdate_settings_summary">利用できるアップデートのチェック、表示及びインストール</string> + + <!--- Sms security limit --> + <string name="app_security_title">アプリのセキュリティ</string> + <string name="sms_security_check_limit_title">SMSメッセージ制限</string> + <string name="sms_security_check_limit_summary">頻繁にSMSメッセージを送信するアプリに対して警告ダイアログを表示させる。現在の制限: %d通/5分</string> + <string name="sms_security_check_limit_default">30 (デフォルト)</string> + + <!-- CM10.1 --> + <string name="title_expanded_hide_indicator">インジケータを隠す</string> + <string name="quick_settings_panel_title">クイック設定パネル</string> + <string name="quick_settings_title">クイック設定</string> + <string name="title_static_tiles">固定タイル</string> + <string name="tile_picker_title">タイルとレイアウト</string> + <string name="tile_picker_summary">表示中のタイルのレイアウトの確認、選択、変更</string> + <string name="tile_choose_title">タイルを選択</string> + <string name="title_tile_airplane">機内モード</string> + <string name="title_tile_battery">バッテリーステータス</string> + <string name="title_tile_bluetooth">Bluetooth</string> + <string name="title_tile_brightness">画面の明るさ</string> + <string name="title_tile_sleep">スリープ</string> + <string name="title_tile_gps">GPS</string> + <string name="title_tile_lockscreen">ロック画面</string> + <string name="title_tile_lte">LTE</string> + <string name="title_tile_mobiledata">データ通信</string> + <string name="title_tile_profile">プロファイル</string> + <string name="title_tile_autorotate">画面の回転</string> + <string name="title_tile_settings">設定</string> + <string name="title_tile_sound">サウンド</string> + <string name="title_tile_sync">同期</string> + <string name="title_tile_wifiap">Wi-Fi AP</string> + <string name="title_tile_wifi">Wi-Fi</string> + <string name="title_tile_wimax">WiMAX</string> + <string name="title_tile_user">ユーザー切り替え</string> + <string name="title_tile_networkmode">2G/3G</string> + <string name="title_tile_torch">トーチ</string> + <string name="title_tile_nfc">NFC</string> + <string name="title_tile_screen_timeout">画面のタイムアウト</string> + <string name="title_tile_usb_tether">USBテザリング</string> + + <string name="title_dynamic_tiles">ダイナミックタイル</string> + <string name="dynamic_tiles_note_title">ノート</string> + <string name="dynamic_tiles_note_summary">ダイナミックタイルは常時表示されるのではなく、システムイベントにより表示されます。</string> + <string name="title_dynamic_alarm">アラーム</string> + <string name="title_dynamic_bugreport">バグリポート</string> + <string name="title_dynamic_ime">入力方法の選択</string> + <string name="title_dynamic_usbtether">USBテザリング</string> + <string name="title_dynamic_wifi">Wi-Fiディスプレイ</string> + + <string name="title_general">一般</string> + <string name="title_quick_pulldown">クイックプルダウン</string> + <string name="summary_quick_pulldown">ステータスバーの%1$sでクイック設定パネルをプルダウンする</string> + <string name="quick_pulldown_off">オフ</string> + <string name="quick_pulldown_left">左</string> + <string name="quick_pulldown_right">右</string> + <string name="quick_pulldown_summary_left">左側</string> + <string name="quick_pulldown_summary_right">右側</string> + <string name="title_collapse_panel">自動的に閉じる</string> + <string name="summary_collapse_panel">トグル後にクイック設定パネルを自動的に閉じる</string> + + <!-- Reset tiles --> + <string name="tiles_reset_title">リセット</string> + <string name="tiles_reset_message">タイルとレイアウトを初期設定に戻しますか?</string> + + <!-- Wi-Fi display --> + <string name="pref_wifi_disable_hdcp_title">DHCPネゴシエーションをスキップ</string> + <string name="pref_wifi_disable_hdcp_summary">接続できても何も出力されない場合、このオプションをお試しください。</string> + + <!--- Lock clock --> + <string name="lock_clock_title">時計ウィジェット</string> + <string name="lock_clock_summary">\'cLock\' ホームとロック画面のウィジェットの見え方を設定する。</string> + + <!-- Stylus Icon --> + <string name="stylus_icon_enabled_title">スタイラスポインタを表示する</string> + <string name="stylus_icon_enabled_summary">スタイラスで描いたり操作しているときにポインタのアイコンを表示する</string> + + <string name="lockscreen_maximize_widgets_title">ウィジェットを最大化</string> + <string name="lockscreen_maximize_widgets_summary">画面がオンのときウィジェットを最大で表示し、アンロックを最小で表示する</string> + + <!-- Custom lock screen background --> + <string name="lockscreen_custom_background_title">背景</string> + <string name="lockscreen_custom_background_dialog_title">色を選択</string> + <string name="lockscreen_background_result_successful">背景を変更しました</string> + <string name="lockscreen_background_result_not_successful">背景は変更されませんでした</string> + <string name="lockscreen_background_color_fill">単色で染める</string> + <string name="lockscreen_background_custom_image">カスタムイメージ</string> + <string name="lockscreen_background_default_wallpaper">デフォルトの壁紙</string> + + <!-- **** CYANOGENMOD ADDITIONS END **** --> </resources> diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml index 299f250..b6339d7 100644 --- a/res/values-lt/strings.xml +++ b/res/values-lt/strings.xml @@ -1830,4 +1830,692 @@ <string name="user_picture_title" msgid="7297782792000291692">"Nuotraukos ID"</string> <string name="cell_broadcast_settings" msgid="8415582011920085222">"Tinklo transliacijos"</string> <string name="cell_broadcast_settings_summary" msgid="3301339398950905913">"Pasirinkite rodomų nepaprastųjų įspėjimų tipus."</string> + + <!-- **** CYANOGENMOD ADDITIONS START **** --> + + <string name="ok">Gerai</string> + + <!-- Quiet hours --> + <string name="quiet_hours_title">Tylos laikas</string> + <string name="quiet_hours_summary">Nustatykite kuriuo metu įrenginys bus tylus</string> + <string name="quiet_hours_note_title">Pastaba</string> + <string name="quiet_hours_note_summary">Gaunami skambučiai nebus tildomi tylos laiku</string> + <string name="quiet_hours_enabled">Įjungti tylos laiką</string> + <string name="quiet_hours_enabled_on">Tylos laikas įjungtas</string> + <string name="quiet_hours_enabled_off">Įspėjimai veiks įprastai</string> + <string name="quiet_hours_start">Tylos laiko pradžia</string> + <string name="quiet_hours_start_summary">Kada pradėti tylų laiką</string> + <string name="quiet_hours_end">Tylos laiko pabaiga</string> + <string name="quiet_hours_end_summary">Kada baigti tylų laiką</string> + <string name="quiet_hours_mute">Tildyti įspėjimus</string> + <string name="quiet_hours_mute_on">Įspėjimai bus begarsiai</string> + <string name="quiet_hours_mute_off">Įspėjimai veiks įprastai</string> + <string name="quiet_hours_still">Išjungti vibraciją</string> + <string name="quiet_hours_still_on">Įrenginys nevibruos</string> + <string name="quiet_hours_still_off">Įrenginys vibruos įprastai</string> + <string name="quiet_hours_dim">Išjungti LED įspėjimą</string> + <string name="quiet_hours_dim_on">LED įspėjimas bus išjungtas</string> + <string name="quiet_hours_dim_off">LED įspėjimas veiks įprastai</string> + <string name="quiet_hours_haptic">Vibruoti palietus</string> + <string name="quiet_hours_haptic_on">Vibruoti palietus bus išjungta</string> + <string name="quiet_hours_haptic_off">Vibruoti palietus veiks įprastai</string> + <string name="quiet_hours_active_from">Aktyvus nuo</string> + <string name="quiet_hours_active_to">iki</string> + + <!-- time range preference --> + <string name="start_time_title">Pradėti</string> + <string name="end_time_title">Baigti</string> + + <!-- Hostname setting --> + <string name="device_hostname">Įrenginio vardas tinkle</string> + + <!-- About phone screen, setting option name--> + <string name="mod_version">CyanogenMod versija</string> + <string name="mod_version_default">Nežinoma</string> + <!-- About phone screen, build date of ROM --> + <string name="build_date">Surinkimo data</string> + <string name="build_date_default">2012-01-01-0000</string> + <!-- About device screen, Cpu info. --> + <string name="cpu_info">Procesorius</string> + <!-- About phone screen, Free memory info --> + <string name="mem_info">Atmintis</string> + <!-- About phone screen, status item label --> + + <!-- Anonymous Statistics #CM --> + <!-- About device screen, list item title. Takes the user to the screen about opting in or out of anonymous statistics. --> + <string name="anonymous_statistics_title">CyanogenMod statistika</string> + <string name="anonymous_statistics_summary">Padėkite tobulinti CyanogenMod įjungdami statistikos siuntimą</string> + <string name="anonymous_statistics_warning_title">Apie</string> + <string name="anonymous_statistics_warning">Dalinantis CyanogenMod Statistika nebus renkama Jūsų asmeninė informacija, o tik sistemos darbas bei klaidos. Ši informacija padės kūrėjams tobulinti CyanogenMod bei šalinti klaidas.</string> + <string name="enable_reporting_title">Įjungti raportavimą</string> + <string name="preview_data_title">Žiūrėti duomenis</string> + <string name="preview_data_summary">%s</string> + <string name="view_stats_title">Žiūrėti statistiką</string> + <string name="anonymous_learn_more">Sužinok daugiau</string> + + <!-- Anonymous Statistics - Notification --> + <string name="anonymous_notification_desc">Įjunkite ar išjunkite CyanogenMod Statistiką</string> + + <!-- Anonymous Statistics - Preview --> + <string name="preview_id_title">Unikalus ID</string> + <string name="preview_device_title">Įrenginys</string> + <string name="preview_version_title">Versija</string> + <string name="preview_country_title">Šalis</string> + <string name="preview_carrier_title">Operatorius</string> + + <!-- INTERFACE Settings --> + <!-- Settings main menu category heading. Interface (Launcher, Themes, System). [CHAR LIMIT=40] --> + <string name="header_category_interface">Išvaizda</string> + + <!-- Launcher settings --> + <string name="launcher_settings_title">Darbalaukis</string> + + <!-- Themes settings --> + <string name="themes_settings_title">Temos</string> + + <!-- System Interface settings --> + <string name="system_settings_title">Sistema</string> + <string name="system_interface_title">Sistemos išvaizda</string> + + <!-- Notification Drawer --> + <string name="notification_drawer_title">Užuolaida</string> + + <string name="lock_screen_title">Ekrano užraktas</string> + + <!-- Lock Screen Shortcuts --> + <string name="lockscreen_target_info">Priskirkite nuorodą į ją tempdami</string> + <string name="lockscreen_target_title">Nuorodos</string> + <string name="lockscreen_target_summary">Žiūrėti ar keisti savo ekrano užrakto nuorodas</string> + <string name="lockscreen_target_reset">Atstatyti numatytąsias reikšmes</string> + <string name="lockscreen_target_save">Išsaugota</string> + <string name="lockscreen_target_reset_title">Atstatyti</string> + <string name="lockscreen_target_reset_message">Panaikinti visas priskirtas nuorodas?</string> + <string name="lockscreen_target_empty">Tuščia</string> + <string name="lockscreen_target_edit_title">Keisti nuorodas ir piktogramas</string> + <string name="lockscreen_target_edit_msg">Pasirinkti ar keisti nuorodą ar piktogramą</string> + + <!-- Lock screen vibrate settings --> + <string name="lockscreen_vibrate_enabled_title">Vibruoti</string> + <string name="lockscreen_vibrate_enabled_head">Vibruoti atrakinant</string> + + <!-- Lock screen misc. settings --> + <string name="lockscreen_battery_status_title">Baterijos būsena</string> + <string name="lockscreen_battery_status_charging">Tik įsikraunant</string> + <string name="lockscreen_battery_status_alwayson">Visada rodoma</string> + + <!-- Profiles settings --> + <string name="profiles_settings_title">Profiliai</string> + <string name="profiles_general_title">Pagrindinis</string> + <string name="profiles_add">Pridėti</string> + <string name="profile_menu_delete">Trinti</string> + <string name="profile_settings_title">Profilis</string> + <string name="profile_empty_list_profiles_off">Norint keisti ar naudotis profiliais, turėtumėte juos įjungti.</string> + + <!-- Add Profile --> + <string name="add_profile_dialog_title">Kurti naują profilį</string> + <string name="profile_name_title">Pavadinimas</string> + <string name="profile_profile_name_prompt">Įveskite naujo profilio pavadinimą</string> + <string name="menu_new_profile">Naujas profilis</string> + <string name="menu_new_profile_summary">Pridėti ir keisti naują profilį</string> + <string name="new_profile_name"><naujas profilis></string> + + <!-- Rename Dialog --> + <string name="rename_dialog_title">Pervadinti</string> + <string name="rename_dialog_message">Įvesti naują pavadinimą</string> + <string name="duplicate_profile_name">Toks pavadinimas jau yra!</string> + <string name="duplicate_appgroup_name">Tokia grupė jau yra!</string> + + <!-- Reset Profiles --> + <string name="profile_reset_title">Atstatyti</string> + <string name="profile_reset_message">Atstatyti numatytus profilius bei grupes (esami bus pašalinti)?</string> + + <!-- Delete confimation messages --> + <string name="profile_delete_confirm">Trinti šį profilį?</string> + <string name="profile_app_delete_confirm">Trinti šią programėlę?</string> + <string name="profile_cannot_delete">Naudojamo profilio ištrinti negalima</string> + + <!-- Profile Config screen PreferenceGroup titles --> + <string name="profile_connectionoverrides_title">Profilio jungiamumas</string> + <string name="profile_volumeoverrides_title">Profilio garsas</string> + <string name="profile_vibratoroverrides_title">Profilio vibravimas</string> + <string name="connection_state_disabled">Išjungti</string> + <string name="connection_state_enabled">Įjungti</string> + <string name="volume_override_summary">Nustatyti</string> + <string name="vibrator_state_disabled">Išjungti</string> + <string name="vibrator_state_enabled">Įjungti</string> + <string name="vibrator_state_silent">Tik begarsiu režimu</string> + + <!-- Menu item for managing profiles --> + <string name="profile_profiles_manage">Profiliai</string> + <string name="profile_profile_manage">Valdyti profilius</string> + <string name="profile_applist_manage">Programėlių sąrašas</string> + <string name="profile_appgroups_manage">Programėlių grupės</string> + <string name="profile_appgroup_manage">Valdyti programėlių grupes</string> + + <!-- Profile settings screen, section header for settings related to notification profiles --> + <string name="profile_settings">Profilio nustatymai</string> + <string name="profile_name">Pavadinimas</string> + + <!-- Profile Settings sound modes labels --> + <string name="sound_mode">Įspėjimai</string> + <string name="ringer_mode">Skambutis</string> + <string name="lights_mode">LED įspėjimai</string> + <string name="vibrate_mode">Vibracija</string> + <string name="choose_soundtone">Rinktis įspėjimo toną</string> + <string name="choose_ringtone">Ringtis toną</string> + + <!-- Sound settings screen, setting option name to pick ringtone (a list dialog comes up)--> + <string name="soundtone_title">Įspėjimo tonas</string> + <string name="soundtone_summary">""</string> + + <!-- Title for application group setting screen --> + <string name="profile_appgroups_title">Programėlių grupės</string> + <string name="profile_applist_title">Programėlės</string> + <string name="profile_new_appgroup">Nauja programėlių grupė</string> + <string name="profile_delete_appgroup">Trinti šią programėlių grupę?</string> + <string name="profile_appgroup_name_prompt">Įveskite programėlių grupės pavadinimą</string> + <string name="profile_appgroup_name_title">Pavadinimas</string> + <string name="profile_add_app">Pridėti programėlę</string> + <string name="profile_delete_app">Šalinti programėlę</string> + + <!-- Add application dialog box title --> + <string name="profile_choose_app">Rinktis programėlę</string> + <string name="profile_settings_header">Profilio nustatymai</string> + + <!-- Profiles - system settings --> + <string name="profile_system_settings_title">Sistemos nustatymai</string> + <string name="profile_lockmode_title">Ekrano užrakto režimas</string> + <string name="profile_lockmode_default">Numatytasis</string> + <string name="profile_lockmode_insecure">Neapsaugotas</string> + <string name="profile_lockmode_disabled">Išjungtas</string> + <string name="profile_lockmode_default_summary">Naudoti numatytąjį</string> + <string name="profile_lockmode_insecure_summary">Naudoti neapsaugotą užraktą</string> + <string name="profile_lockmode_disabled_summary">Ekrano užrakto nėra</string> + <string name="profile_airplanemode_title">Lėktuvo režimas</string> + <string name="profile_disable_screen_lock_summary">Naikinti ekrano užraktą kai šis profilis įjungtas</string> + + <string name="vibrator_type_ringer">Skambučiai</string> + <string name="vibrator_type_notification">Įspėjimai</string> + + <!-- Connection override toggles (not all are used at this time ) --> + <string name="possibleButtons">Mygtukai</string> + <string name="toggleWifi">Wi-Fi</string> + <string name="toggleWifiAp">Wi-Fi prieigos taškas</string> + <string name="toggleBluetooth">Bluetooth</string> + <string name="toggleGPS">GPS</string> + <string name="toggleData">Mobilieji duomenys</string> + <string name="toggleSync">Duomenų sinchronizavimas</string> + <string name="toggle2g3g">2G/3G</string> + <string name="toggleSound">Skambučio režimas</string> + <string name="toggleBrightness">Ryškumas</string> + <string name="toggleAutoRotate">Orientacija</string> + <string name="toggleScreenTimeout">Ekrano išsijungimas</string> + <string name="toggleAirplane">Lėktuvo režimas</string> + <string name="toggleFlashlight">Žibintuvėlis</string> + <string name="toggleLockScreen">Ekrano užraktas</string> + <string name="toggleWimax">WiMAX</string> + + <!-- Screen security - Screen security --> + <string name="screen_security_category">Ekano apsauga</string> + <string name="screen_security_title">Ekrano užraktas</string> + <string name="screen_security_summary">Keisti ekrano užrakto nustatymus</string> + <string name="additional_options_title">Papildomi nustatymai</string> + <string name="unlock_menu_unlock_title">Atrakinti su Meniu</string> + <string name="unlock_menu_unlock_summary">Spaudžiant Meniu mygtuką atrakinamas įrenginys</string> + <string name="unlock_home_unlock_title">Atrakinti su Namų</string> + <string name="unlock_home_unlock_summary">Spaudžiant Namų mygtuką atrakinamas įrenginys</string> + <string name="unlock_quick_unlock_control_title">Greitas atrakinimas</string> + <string name="unlock_quick_unlock_control_summary">Automatiškai atrakinti kai suvedamas teisingas PIN/slaptažodis</string> + + <!-- Slide lock delay --> + <string name="delay_and_timeout_title">Užrakinimo delsimas</string> + <string name="slide_lock_delay_title">Ekrano užrakto delsimas</string> + <string name="slide_lock_timeout_delay_title">Delsti</string> + <string name="slide_lock_screenoff_delay_title">Delsti užgesus ekranui</string> + <string name="slide_lock_delay_none">Nedelsti</string> + <string name="slide_lock_delay_1s">1 sekundę</string> + <string name="slide_lock_delay_5s">5 secondes</string> + <string name="slide_lock_delay_10s">10 secondžių</string> + <string name="slide_lock_delay_15s">15 secondžių</string> + <string name="slide_lock_delay_30s">30 secondžių</string> + <string name="slide_lock_delay_1m">1 minutę</string> + <string name="slide_lock_delay_5m">5 minutes</string> + <string name="slide_lock_delay_10m">10 minučių</string> + <string name="slide_lock_delay_30m">30 minučių</string> + + <!-- Performance settings --> + <string name="performance_settings_title">Našumas</string> + + <!-- Performance Settings : Warning dialog --> + <string name="performance_settings_warning_title">Tęskite atsargiai</string> + <string name="performance_settings_warning">Šie nustatymai eksperimentiniai. Juos pakeitus sistema gali dirbti nestabiliai ar sugadinti įrenginį.\n\nPrašome Jūsų neinformuoti apie atsiradusias problemas pakeitus nustatymus šioje skiltyje.</string> + + <!-- Performance Settings : Processor Settings --> + <!-- Performance Settings : Processor settings title --> + <string name="processor_title">Procesorius</string> + <!-- Performance Settings : Processor settings summary. --> + <string name="processor_summary">Keisti proc. valdymą bei dažnį</string> + + <!-- Performance Settings : Processor settings sub items --> + <string name="cpu_cur_freq_title">Esamas proc. dažnis</string> + <string name="cpu_governors_title">Proc. valdymas</string> + <string name="cpu_governors_summary">%S</string> + <string name="cpu_min_freq_title">Minimalus proc. dažnis</string> + <string name="cpu_min_freq_summary">%s</string> + <string name="cpu_max_freq_title">Maksimalus proc. dažnis</string> + <string name="cpu_max_freq_summary">%s</string> + <string name="cpu_set_on_boot">Įjungti startuojant</string> + <string name="cpu_set_on_boot_summary">Nepasirinkus atstato proc. nustatymus startuojant</string> + + <!-- Performance Settings : I/O scheduler settings title --> + <string name="io_scheds_title">I/O valdymas</string> + <!-- Performance Settings : I/O scheduler settings summary. --> + <string name="io_scheds_summary">Keisti I/O valdymą</string> + + <!-- Performance Settings : I/O scheduler settings sub items --> + <string name="io_sched_title">I/O valdymas</string> + <string name="io_sched_summary">%S</string> + <string name="io_sched_set_on_boot">Įjungti startuojant</string> + <string name="io_sched_set_on_boot_summary">Atstatyti I/O valdymo nustatymus startuojant</string> + + <!-- Memory Management --> + <string name="memory_management_title">Atminties valdymas</string> + <string name="memory_management_summary">Keisti atminties naudojimą</string> + <!-- zRam --> + <string name="pref_zram_title">zRam</string> + <string name="pref_zram_summary">Spausti atmintį virtualios talpos didinimui</string> + <!-- KSM --> + <string name="pref_ksm_title">Atminties blokų apjungimas</string> + <string name="pref_ksm_summary">Vienodų atminties blokų apjungimas sumažina atminties poreikį ir didina našumą</string> + <!-- Purgeable Assets --> + <string name="pref_purgeable_assets_title">Atminties valymas</string> + <string name="pref_purgeable_assets_summary">Esant reikalui trinti paveikslėlius iš laikinosios atminties</string> + + <!-- Performance Settings : Dithering --> + <string name="pref_use_dithering_title">Valdymo sklandumas</string> + <string name="dithering_no_dither">Išjungti dithering</string> + <string name="dithering_color_banding">Taisyti spalvų juostavimą</string> + <string name="dithering_blur_effect">Taiso spalvų juostavimą ir blukinimo efektą</string> + + <!-- Performance Settings : 16bpp Alpha --> + <string name="pref_use_16bpp_alpha_title">16bit skaidrumas</string> + <string name="pref_use_16bpp_alpha_summary">Greitesnis grafikos atvaizdavimas, bet prastesnė kokybė ir gali būti artefaktų</string> + + <!-- Display : Rotation --> + <string name="display_rotation_title">Sukimas</string> + <string name="display_rotation_disabled">Išjungtas.</string> + <string name="display_rotation_unit">Laipsniai</string> + <string name="display_rotation_category_title">Sukimo režimai</string> + <string name="display_rotation_0_title">0 laipsnių</string> + <string name="display_rotation_90_title">90 laipsnių</string> + <string name="display_rotation_180_title">180 laipsnių</string> + <string name="display_rotation_270_title">270 laipsnių</string> + + <!-- Lock screen shortcuts --> + <string name="picker_activities">Veiksmas</string> + <string name="select_custom_app_title">Rinktis savo programėlę</string> + <string name="select_custom_activity_title">Rinktis savo veiksmą</string> + <string name="icon_picker_choose_icon_title">Rinktis piktogramą</string> + <string name="icon_picker_alarm">Žadintuvas</string> + <string name="icon_picker_browser">Naršyklė</string> + <string name="icon_picker_calendar">Kalendorius</string> + <string name="icon_picker_camera">Kamera</string> + <string name="icon_picker_chrome">Chrome</string> + <string name="icon_picker_email">El.paštas</string> + <string name="icon_picker_email2">El.paštas Holo</string> + <string name="icon_picker_facebook">Facebook</string> + <string name="icon_picker_gallery">Galerija</string> + <string name="icon_picker_google_small">Google (mažas)</string> + <string name="icon_picker_googleplus">Google Plius</string> + <string name="icon_picker_googletalk">Google Pokalbiai</string> + <string name="icon_picker_maps">Žemėlapiai</string> + <string name="icon_picker_movie">Filmai</string> + <string name="icon_picker_music">Muzika</string> + <string name="icon_picker_nav_normal">Navigacija</string> + <string name="icon_picker_phone">Telefonas</string> + <string name="icon_picker_podcast">Transliavimas</string> + <string name="icon_picker_rss">Rss</string> + <string name="icon_picker_search">Paieška</string> + <string name="icon_picker_sms">Žinutės</string> + <string name="icon_picker_twitter">Twitter</string> + + <!-- String for IconPicker --> + <string name="icon_picker_title">Rinktis piktogramos vietą</string> + <string name="icon_picker_system_icons_title">Sistemos piktogramos</string> + <string name="icon_picker_gallery_title">Galerija</string> + <string name="icon_picker_pack_title">Piktogramų rinkinys</string> + + <string name="increasing_ring_title">Garsėjanti melodija</string> + <!-- Sound settings screen, the caption of the checkbox for making incoming calls increase in volume --> + <string name="checkbox_increasing_ring">Įjungti</string> + <!-- Sound settings screen, the title of the volume bar to adjust the minimum increasing ring volume --> + <string name="increasing_ring_min_volume_title">Melodijos pradžios garsumas</string> + <string name="increasing_ring_volume_notice">Įspėjimas:\nJei melodijos pradžios garsumas didesnis nei melodijos garsumas, melodija skambės melodijos nustatyme nustatytu garsu.</string> + <string name="increasing_ring_interval_title">Didinti intervalą</string> + <string name="increasing_ring_interval_eachring">Su kiekvienu skambėjimu</string> + <string name="increasing_ring_interval_half_second">0.5 sekundės</string> + <string name="increasing_ring_interval_1second">1 sekundę</string> + <string name="increasing_ring_interval_2seconds">2 sekundes</string> + <string name="increasing_ring_interval_3seconds">3 sekundes</string> + <string name="increasing_ring_interval_5seconds">5 sekundes</string> + <string name="increasing_ring_interval_10seconds">10 sekundžių</string> + + <string name="profile_write_nfc_tag">Įrašyti į NFC žymę</string> + <string name="profile_write_touch_tag">Prilieskite žymę įrašymui</string> + <string name="profile_write_success">Žymė sėkmingai įrašyta</string> + <string name="profile_write_failed">Įrašyti nepavyko!</string> + <string name="profile_selected">Pasirinktas profilis: %1$s</string> + <string name="profile_nfc_text">Įrašydami profilį į NFC žymę pasirinksite ją prilietus. Prilietus antrą kartą grįš į prieš tai buvusią reikšmę.</string> + <string name="profile_unknown_nfc_tag">Nežinomas profilis</string> + <string name="profile_add_nfc_text">Ši NFC žymė priklauso nežinomam profiliui. Sujungiant šią žymę su esamu profiliu ateityje ji veiks tinkamai.</string> + <string name="profile_select">Rinktis profilį</string> + + <string name="link_volume_ringtones">Sujungti skambėjimo ir įspėjimų garsumus</string> + <string name="link_volume_mutes">Tylus režimas įtakoja įspėjimus</string> + + <!-- Display settings screen, notification light settings --> + <string name="notification_light_general_title">Pagrindinės</string> + <string name="notification_light_applist_title">Programėlės</string> + <string name="notification_light_phonelist_title">Telefono</string> + <string name="notification_light_use_custom">Naudoti savo</string> + <string name="notification_light_enabled">Įjungta</string> + <string name="notification_light_disabled">Išjungta</string> + <string name="notification_light_default_value">Numatytas</string> + <string name="notification_light_missed_call_title">Praleistas skambutis</string> + <string name="notification_light_voicemail_title">Balso paštas</string> + + <!-- Notification light dialogs --> + <string name="edit_light_settings">Keisti šviesas</string> + <string name="pulse_speed_title">Pulsavimo trukmė ir greitis</string> + <string name="picker_arrow">→</string> + <string name="default_time">Normalus</string> + <string name="custom_time">Savo</string> + <string name="dialog_test">Bandyti</string> + <string name="dialog_delete_title">Trinti</string> + <string name="dialog_delete_message">Trinti pasirinktą?</string> + <string name="dialog_test_message">Išjunkite ekraną norėdami pamatyti pasirinktą įspėjimą arba atmeskite šį įspėjimą testo stabdymui</string> + <string name="dialog_test_button">Atmesti</string> + + <!-- Values for the notification light pulse spinners --> + <string name="pulse_length_always_on">Visada įjungta</string> + <string name="pulse_length_very_short">Labai trumpas</string> + <string name="pulse_length_short">Trumpas</string> + <string name="pulse_length_normal">Normalus</string> + <string name="pulse_length_long">Ilgas</string> + <string name="pulse_length_very_long">Labai ilgas</string> + <string name="pulse_speed_very_fast">Labai greitas</string> + <string name="pulse_speed_fast">Greitas</string> + <string name="pulse_speed_normal">Normalus</string> + <string name="pulse_speed_slow">Lėtas</string> + <string name="pulse_speed_very_slow">Labai lėtas</string> + + <!-- Battery light settings --> + <string name="battery_light_title">Baterijos indikatorius</string> + <string name="battery_low_pulse_title">Pulsuoti kai mažai</string> + <string name="battery_light_list_title">Spalvos</string> + <string name="battery_light_low_color_title">Baterijos nedaug</string> + <string name="battery_light_medium_color_title">Įkraunama</string> + <string name="battery_light_full_color_title">Plnai įkrauta</string> + + <!-- Sound settings screen --> + <string name="volume_overlay_title">Garso panelės stilius</string> + <string name="volbtn_music_controls_title">Garso svirtimi valdyti muziką</string> + <string name="volbtn_music_controls_summary">Išjungus ekraną, ilgai spaudžiant svirtį bus keičiami kūriniai</string> + <string name="headset_connect_player_title">Įjungti muzikos programėlę prijungus</string> + <string name="volume_ring_only_description">Melodija</string> + <string name="ring_mode_title">Skambėjimo režimas</string> + <string name="ring_mode_normal">Normalus</string> + <string name="ring_mode_vibrate">Vibruoti</string> + <string name="ring_mode_mute">Begarsis</string> + + <!-- Hardware keys --> + <string name="hardware_keys_title">Mygtukai</string> + <string name="hardware_keys_bindings_title">Mygtukų reikšmės</string> + <string name="hardware_keys_enable_custom_title">Įjungti savo reikšmes</string> + <string name="hardware_keys_home_long_press_title">Namų mygtukas (ilgai spaudžiant)</string> + <string name="hardware_keys_menu_press_title">Meniu mygtukas</string> + <string name="hardware_keys_menu_long_press_title">Meniu mygtukas (ilgai spaudžiant)</string> + <string name="hardware_keys_assist_press_title">Paieškos mygtukas</string> + <string name="hardware_keys_assist_long_press_title">Paieškos mygtukas (ilgai spaudžiant)</string> + <string name="hardware_keys_app_switch_press_title">Prog. keitimo mygtukas</string> + <string name="hardware_keys_app_switch_long_press_title">Prog. keitimo mygtukas (ilgai spaudžiant)</string> + <string name="hardware_keys_show_overflow_title">Rodyti Meniu</string> + <string name="hardware_keys_show_overflow_summary">Rodyti tritaškį Meniu mygtuką programėlėse</string> + <string name="hardware_keys_show_overflow_toast_enable">Ši funkcija veiks po programėlės pakartotino įjungimo</string> + <string name="hardware_keys_show_overflow_toast_disable">Ši funkcija nebeveiks po programėlės pakartotino įjungimo</string> + <string name="hardware_keys_action_nothing">Nieko</string> + <string name="hardware_keys_action_menu">Atidaro/uždaro meniu</string> + <string name="hardware_keys_action_app_switch">Paskutinių prog. jungiklis</string> + <string name="hardware_keys_action_search">Paieškos asistentas</string> + <string name="hardware_keys_action_voice_search">Balso paieška</string> + <string name="hardware_keys_action_in_app_search">Paieška programėlėje</string> + + <!-- Navigation Bar #CM --> + <string name="navigation_bar_title">Navigacinė juosta</string> + <string name="navigation_bar_help_text">1 - norėdami keisti bakstelkite ant užrakto piktogramos\n\n2 - bakstelkite bet kurį mygtuką norėdami jį keisti\n\n3 - Ilgai spaudžiant galėsite keisti jo vietą\n\n4 - Išsaugojimui, bakstelkite užrakto piktogramą\n\n5 - pakeitimų naikinimui bakstelkite atstatymo mygtuką\n\n</string> + <string name="navigation_bar_tips">• Veiksmas gali būti priskirtas vienam mygtukui\n\n• Namų mygtukas negali būti pakeistas\n\n• Šoninių mygtukų vieta nekeičiama</string> + <string name="navigation_bar_tips_title">Greita pagalba</string> + <string name="navigation_bar_reset_message">Atstatyti pradinius?</string> + <string name="navigation_bar_save_message">Pakeitimai išsaugoti</string> + <string name="navigation_bar_reset_toast">Navigacinė juosta atstatyta</string> + <string name="navigation_bar_menu_editable">Keičiamas</string> + <string name="navigation_bar_menu_locked">Užrakintas</string> + + <!-- Power Widget --> + <string name="power_widget_title">Valdiklis užuolaidoje</string> + <string name="title_expanded_widget">Valdiklis užuolaidoje</string> + <string name="power_widget_behavior">Valdiklio elgsena</string> + <string name="title_expanded_hide_onchange">Užverti užuolaidą pasirinkus</string> + <string name="title_expanded_hide_indicator">Slepti indikatorius</string> + <string name="title_expanded_hide_scrollbar">Slepti šliaužiklį</string> + <string name="title_widget_picker">Valdiklio mygtukai</string> + <string name="summary_widget_picker">Žiūrėti ar keisti matomus mygtukus</string> + <string name="title_widget_order">Valdiklio mygtukų tvarka</string> + <string name="summary_widget_order">Žiūrėti ar keisti valdiklio mygtukų tvarką</string> + <string name="title_buttons">Mygtukai</string> + <string name="title_toggle_wifi">Valdyti Wi-Fi</string> + <string name="title_toggle_bluetooth">Valdyti Bluetooth</string> + <string name="title_toggle_gps">Valdyti GPS</string> + <string name="title_toggle_sound">Valdyti Garsą</string> + <string name="title_toggle_brightness">Valdyti Ryškumą</string> + <string name="title_toggle_sync">Valdyti Sinchronizavimą</string> + <string name="title_toggle_wifiap">Valdyti Wi-Fi AP</string> + <string name="title_toggle_screentimeout">Valdyti Ekrano užgesimą</string> + <string name="title_toggle_mobiledata">Valdyti Mobilius duomenis</string> + <string name="title_toggle_lockscreen">Valdyti Ekrano užraktą</string> + <string name="title_toggle_networkmode">Valdyti Tinklo režimą</string> + <string name="title_toggle_autorotate">Valdyti Orientaciją</string> + <string name="title_toggle_airplane">Valdyti Lėktuvo režimą</string> + <string name="title_toggle_flashlight">Valdyti LED žibintuvėlį</string> + <string name="title_toggle_sleep">Miegoti</string> + <string name="title_toggle_media_play_pause">Muzika: Groti/Pauzė</string> + <string name="title_toggle_media_previous">Muzika: Groti ankstesnį</string> + <string name="title_toggle_media_next">Muzika: Groti kitą</string> + <string name="title_toggle_lte">Valdyti LTE</string> + <string name="title_toggle_wimax">Valdyti WiMAX</string> + <string name="title_button_modes">Mygtukų režimai</string> + <string name="pref_brightness_mode_title">Ryškumo režimai</string> + <string name="pref_brightness_mode_summary">Žiūrėti ar keisti ryškumo režimo pasirinkimą</string> + <string name="cm_brightness_mode_auto">Automatiškai</string> + <string name="cm_brightness_mode_dim">Blankus</string> + <string name="pref_network_mode_title">Tinklo režimas</string> + <string name="pref_screentimeout_mode_title">Ekrano užgesimo režimai</string> + <string name="pref_ring_mode_title">Garso režimai</string> + <string name="pref_ring_mode_summary">Žiūrėti ar keisti garso mygtuko režimus</string> + <string name="cm_sound_mode_silent">Begarsis</string> + <string name="cm_sound_mode_vibrate">Vibruoti</string> + <string name="cm_sound_mode_sound">Skambės</string> + <string name="cm_sound_mode_soundVibrate">Skambės ir Vibruos</string> + <string name="pref_flash_mode_title">Žibintuvėlio režimas</string> + <string name="expanded_haptic_feedback_title">Vibruoti palietus</string> + + <!-- Kill app long-press back --> + <string name="kill_app_longpress_back">Uždaryti prog. Atgal mygtuku</string> + <string name="kill_app_longpress_back_summary">Uždaryti programą ilgai spaudžiant Agal mygtuką</string> + + <!-- Change Log strings --> + <string name="changelog_title">Žiūrėti pakeitimus</string> + <string name="changelog_loading">Ruošiamas sąrašas\u2026</string> + <string name="changelog_error">Nepavyko parodyti sąrašo</string> + <string name="changelog_unknown">Nežinomas</string> + <string name="changelog_version">Versija</string> + + <!-- Power menu enable disable --> + <string name="power_menu_title">Išjungimo meniu</string> + <string name="power_menu_reboot_title">Perkrovimo meniu</string> + <string name="power_menu_screenshot_title">Ekranvaizdis</string> + <string name="power_menu_expanded_desktop">Išplėstinis ekranas</string> + <string name="power_menu_profiles_title">Perjungti profilį</string> + <string name="power_menu_airplane_title">Lėktuvo rež.</string> + <string name="power_menu_user_title">Naudotojo keitimas</string> + <string name="power_menu_sound_title">Garso panelė</string> + + <!-- CM Updater --> + <string name="cmupdate_settings_title">CyanogenMod atnaujinimai</string> + <string name="cmupdate_settings_summary">Tikrinti, žiūrėti ar įdiegti atnaujinimus</string> + + <!-- Advanced, Device specific (DeviceParts) settings --> + <string name="advanced_settings_title">Išplėstinis</string> + + <!-- Whether to display IME switcher notifcation --> + <string name="ime_switcher_notify">Pasirinkimo įspėjimas</string> + <string name="ime_switcher_notify_summary">Rodyti įvesties metodo pasirinkimo įspėjimą</string> + + <!-- Status bar --> + <string name="status_bar_title">Būsenos juosta</string> + <string name="status_bar_clock_title">Laikas</string> + <string name="status_bar_general_title">Pagrindiniai</string> + <string name="status_bar_show_clock_title">Rodyti laiką</string> + <string name="status_bar_am_pm_title">AM/PM stilius</string> + <string name="status_bar_am_pm_info">24-val. laikrodis</string> + <string name="status_bar_battery_title">Baterijos stilius</string> + <string name="status_bar_toggle_brightness">Ryškumo valdymas</string> + <string name="status_bar_toggle_brightness_summary">Keisti ryškumą braukiant per būsenos juostą</string> + <string name="status_bar_toggle_info">Automatinis ryškumas įjungtas</string> + <string name="status_bar_signal_text_title">Signalo tipas</string> + <string name="status_bar_style_icon">Piktograma</string> + <string name="status_bar_style_hidden">Nėra</string> + <string name="status_bar_signal_text_show_text">Tekstas</string> + <string name="status_bar_battery_status_percentage">Procentais</string> + <string name="status_bar_battery_status_circle">Apvalus</string> + <string name="status_bar_battery_status_circle_percentage">Apvalus su procentais</string> + + <!-- Status bar notification count --> + <string name="status_bar_notif_count_title">Rodyti įspėjimų skaičių</string> + <string name="status_bar_notif_count_summary">Rodyti neperžiūrėtų įspėjimų skaičių</string> + + <!-- Wakeup options --> + <string name="display_category_wakeup_options_title">Žadinimas</string> + <string name="pref_volume_wake_title">Žadinti garso mygtukais</string> + <string name="pref_volume_wake_summary">Garso mygtukais pažadinamas įrenginys</string> + + <!-- Setting checkbox summary for displaying USB debugging notification --> + <string name="adb_notify">USB derinimo įspėjimas</string> + <string name="adb_notify_summary">Rodyti įspėjimą veikiant USB derinimui</string> + + <!-- Launches Dev Tools --> + <string name="development_tools_title">Kūrėjo parinktis</string> + + <!-- Android debugging over WiFi --> + <string name="adb_over_network">ADB per tinklą</string> + <string name="adb_over_network_summary">Įjunkite TCP/IP derinimą per tinklą (Wi-Fi, USB tinklai). Šis nustatymas veikia iki perkrovimo.</string> + <!-- Warning for Adb over Network --> + <string name="adb_over_network_warning">DĖMESIO: Kai ADB veikia per tinklą, prie Jūsų įrenginio gali prisijungti bet kas, taip pat ir per GSM duomenų tinklą!\n\nNaudokite tai tik patikimuose tinkluose.\n\nAr tikrai įjungti?</string> + + <string name="lockscreen_buttons_title">Mygtukų veiksmai</string> + <string name="lockscreen_buttons_summary">Žiūrėti ar keisti ekrano užrakto mygtukų veiksmus</string> + <string name="lockscreen_long_press_back_title">Ilgai spaudžiant Atgal</string> + <string name="lockscreen_long_press_home_title">Ilgai spaudžiant Namai</string> + <string name="lockscreen_long_press_menu_title">Ilgai spaudžiant Meniu</string> + <string name="lockscreen_buttons_no_action">Nieko</string> + <string name="lockscreen_buttons_flashlight">Žibintuvėlis</string> + <string name="lockscreen_buttons_next">Kitas kūrinys</string> + <string name="lockscreen_buttons_previous">Ankstesnis kūrinys</string> + <string name="lockscreen_buttons_playpause">Groti/Pauzė</string> + <string name="lockscreen_buttons_toggle_sound">Valdyti garsą</string> + + <!-- Quick settings panel --> + <string name="quick_settings_panel_title">Greitieji nustatymai</string> + <string name="quick_settings_title">Greitieji nustatymai</string> + <string name="title_static_tiles">Statiniai mygtukai</string> + <string name="tile_picker_title">Mygtukai ir išdėstymas</string> + <string name="tile_picker_summary">Žiūrėti ar keisti mygtukus bei išdėstymą</string> + <string name="tile_choose_title">Rinktis mygtuką</string> + + <string name="title_tile_airplane">Lėktuvo režimas</string> + <string name="title_tile_battery">Baterijos būsena</string> + <string name="title_tile_bluetooth">Bluetooth</string> + <string name="title_tile_brightness">Ryškumas</string> + <string name="title_tile_sleep">Užmigti</string> + <string name="title_tile_gps">GPS</string> + <string name="title_tile_torch">Žibintuvėlis</string> + <string name="title_tile_lockscreen">Ekrano užraktas</string> + <string name="title_tile_lte">LTE</string> + <string name="title_tile_mobiledata">Mobilūs duomenys</string> + <string name="title_tile_profile">Profiliai</string> + <string name="title_tile_autorotate">Orientacija</string> + <string name="title_tile_settings">Nustatymai</string> + <string name="title_tile_sound">Garsas</string> + <string name="title_tile_sync">Synchronizavimas</string> + <string name="title_tile_wifiap">Wi-Fi AP</string> + <string name="title_tile_wifi">Wi-Fi</string> + <string name="title_tile_wimax">WiMAX</string> + <string name="title_tile_user">Naudotojo keitimas</string> + <string name="title_tile_networkmode">Tinklo režimas</string> + <string name="title_tile_nfc">NFC</string> + <string name="title_tile_screen_timeout">Ekrano išsijungimas</string> + <string name="title_tile_usb_tether">Dalinimasis per USB</string> + + <string name="title_dynamic_tiles">Dinaminiai mygtukai</string> + <string name="dynamic_tiles_note_title">Pastaba</string> + <string name="dynamic_tiles_note_summary">Dinaminiai mygtukai nevisuomet rodomi, jie atsiranda tik pareikalavus sistemai</string> + <string name="title_dynamic_alarm">Žadintuvas</string> + <string name="title_dynamic_bugreport">Pranešimas apie klaidą</string> + <string name="title_dynamic_ime">Įvedimo kalbos keitimas</string> + <string name="title_dynamic_usbtether">Dalinimasis per USB</string> + <string name="title_dynamic_wifi">Wi-Fi rodymas</string> + + <string name="title_general">Pagrindinis</string> + <string name="title_quick_pulldown">Greitas ištraukimas</string> + <string name="summary_quick_pulldown">Būsenos juostos %1$s kampas ištraukia greitų nustatymų panelę</string> + <string name="quick_pulldown_summary_left">kairys</string> + <string name="quick_pulldown_summary_right">dešinys</string> + <string name="quick_pulldown_off">Išjungti</string> + <string name="quick_pulldown_left">Kairys</string> + <string name="quick_pulldown_right">Dešinys</string> + <string name="title_collapse_panel">Automatiškai uždaryti</string> + <string name="summary_collapse_panel">Po pasirinkimo uždaryti</string> + + <!-- Reset tiles --> + <string name="tiles_reset_title">Atkurti</string> + <string name="tiles_reset_message">Atstatyti mygtukus ir išdėstymą?</string> + + <!--- Volume key cursor control --> + <string name="volume_key_cursor_control_title">Garso mygtukais valdyti kursorių</string> + <string name="volume_key_cursor_control_off">Išjungta</string> + <string name="volume_key_cursor_control_on">Garsas viršun/apačion perstumia kursorių kairėn/dešinėn</string> + <string name="volume_key_cursor_control_on_reverse">Garsas viršun/apačion perstumia kursorių dešinėn/kairėn</string> + + <!-- Wireless display --> + <string name="pref_wifi_disable_hdcp_title">Praleisti HDCP užklausą</string> + <string name="pref_wifi_disable_hdcp_summary">Pabandykite jei Jūs prisijungiate bet nesiunčiami duomenys</string> + + <!--- Sms security limit --> + <string name="app_security_title">Programėlės apsauga</string> + <string name="sms_security_check_limit_title">SMS žinučių limitas</string> + <string name="sms_security_check_limit_summary">Rodyti įspėjimą kai programėlė nori siųsti daug SMS. Dabartinis limitas: %d žinučių, kas 15 minučių</string> + <string name="sms_security_check_limit_default">30 (Numatytas)</string> + + <!--- Lock clock --> + <string name="lock_clock_title">Laikrodžio valdiklis</string> + <string name="lock_clock_summary">Žiūrėti ar keisti kaip \'cLock\' laikrodis rodomas Darbalaukyje bei Ekrano užrakte</string> + + <!-- Stylus Icon --> + <string name="stylus_icon_enabled_title">Rodyti rašiklio piktogramą</string> + <string name="stylus_icon_enabled_summary">Rodyti piktogramą kai naudojamas rašiklis</string> + + <string name="lockscreen_maximize_widgets_title">Didinti valdiklius</string> + <string name="lockscreen_maximize_widgets_summary">Roditi padidintus valdiklius ir sumažintą atrakinimą kai įrenginys pažadinamas</string> + + <!-- **** CYANOGENMOD ADDITIONS END **** --> </resources> diff --git a/res/values-nl/arrays.xml b/res/values-nl/arrays.xml index 04fc1a8..8788742 100644 --- a/res/values-nl/arrays.xml +++ b/res/values-nl/arrays.xml @@ -295,4 +295,63 @@ <item msgid="5077768429488260031">"Nooit toestaan"</item> <item msgid="1417929597727989746">"Altijd toestaan"</item> </string-array> + + <!-- CYANOGENMOD EDITS --> + <string-array name="volume_overlay_entries"> + <item>Enkelvoudig</item> + <item>Uitbreidbaar</item> + <item>Uitgebreid</item> + <item>Geen</item> + </string-array> + <string-array name="pref_zram_size_entries"> + <item>Uitgeschakeld</item> + <item>10%</item> + <item>18% (standaard)</item> + <item>26%</item> + </string-array> + <string-array name="profile_entries"> + <item>Aan</item> + <item>Uit</item> + <item>Niet wijzigen</item> + </string-array> + <string-array name="profile_connection_entries"> + <item>Inschakelen</item> + <item>Uitschakelen</item> + </string-array> + <string-array name="entries_network_widget"> + <item>2G/3G+2G</item> + <item>2G/alleen 3G</item> + <item>2G/alleen 3G/3G+2G</item> + </string-array> + <string-array name="entries_screentimeout_widget"> + <item>15 sec./1 min./5 min.</item> + <item>30 sec./2 min./5 min.</item> + </string-array> + <string-array name="entries_flash_widget"> + <item>Normaal</item> + <item>Hoog</item> + </string-array> + <string-array name="haptic_feedback_entries"> + <item>Globale instelling</item> + <item>Aan</item> + <item>Uit</item> + </string-array> + <string-array name="entries_status_bar_am_pm"> + <item>Normaal</item> + <item>Klein</item> + <item>Geen</item> + </string-array> + <string-array name="wifi_countrycode_entries"> + <item>Verenigde Staten</item> + <item>Canada, Taiwan</item> + <item>Duitsland</item> + <item>Europa</item> + <item>Japan, Rusland</item> + <item>Australië</item> + <item>China</item> + <item>Korea</item> + <item>Turkije</item> + <item>Singapore</item> + <item>Brazilië</item> + </string-array> </resources> diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml index d6f0275..3e10e45 100644 --- a/res/values-nl/strings.xml +++ b/res/values-nl/strings.xml @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2007 The Android Open Source Project +<!-- Copyright (C) 2007 The Android Open Source Project + Copyright (C) 2012-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. @@ -13,7 +14,6 @@ See the License for the specific language governing permissions and limitations under the License. --> - <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="yes" msgid="4676390750360727396">"Ja"</string> @@ -40,9 +40,9 @@ <string name="ims_reg_required_off" msgid="1720570343422743943">"Uitschakelen van IMS-registratie vereist"</string> <string name="lte_ram_dump_on" msgid="8568568019520172177">"LTE RAM-dump inschakelen"</string> <string name="lte_ram_dump_off" msgid="2514507918652378283">"LTE RAM-dump uitschakelen"</string> - <string name="radioInfo_menu_viewADN" msgid="8743377494429930831">"SIM-adresboek weergeven"</string> - <string name="radioInfo_menu_viewFDN" msgid="7934301566925610318">"Vaste nummers weergeven"</string> - <string name="radioInfo_menu_viewSDN" msgid="7130280686244955669">"Servicenummers weergeven"</string> + <string name="radioInfo_menu_viewADN" msgid="8743377494429930831">"SIM-adresboek tonen"</string> + <string name="radioInfo_menu_viewFDN" msgid="7934301566925610318">"Vaste nummers tonen"</string> + <string name="radioInfo_menu_viewSDN" msgid="7130280686244955669">"Servicenummers tonen"</string> <string name="radioInfo_menu_getPDP" msgid="560610293888406317">"PDP-lijst ophalen"</string> <string name="radioInfo_service_in" msgid="1915416319177520020">"In gebruik"</string> <string name="radioInfo_service_out" msgid="5238736759641916278">"Niet in gebruik"</string> @@ -116,8 +116,8 @@ <string name="bluetooth_only_visible_to_paired_devices" msgid="2049983392373296028">"Alleen zichtbaar voor gekoppelde apparaten"</string> <string name="bluetooth_visibility_timeout" msgid="8002247464357005429">"Time-out voor zichtbaarheid"</string> <string name="bluetooth_lock_voice_dialing" msgid="3139322992062086225">"Spraakkeuze vergrendelen"</string> - <string name="bluetooth_lock_voice_dialing_summary" msgid="4741338867496787042">"Gebruik van de Bluetooth-dialer voorkomen wanneer het scherm is vergrendeld"</string> - <string name="bluetooth_devices" msgid="1886018064039454227">"Bluetooth-apparaten"</string> + <string name="bluetooth_lock_voice_dialing_summary" msgid="4741338867496787042">"Gebruik van de bluetoothkiezer voorkomen wanneer het scherm is vergrendeld"</string> + <string name="bluetooth_devices" msgid="1886018064039454227">"Bluetoothapparaten"</string> <string name="bluetooth_device_name" msgid="8415828355207423800">"Apparaatnaam"</string> <string name="bluetooth_device_details" msgid="4594773497930028085">"Apparaatinstellingen"</string> <string name="bluetooth_profile_details" msgid="6823621790324933337">"Profielinstellingen"</string> @@ -135,14 +135,14 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Gekoppeld (geen media)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Gekoppeld (geen telefoon of media)"</string> <string name="bluetooth_disconnected" msgid="6557104142667339895">"Verbinding verbroken"</string> - <string name="bluetooth_disconnecting" msgid="8913264760027764974">"Verbinding verbreken..."</string> - <string name="bluetooth_connecting" msgid="8555009514614320497">"Verbinding maken..."</string> + <string name="bluetooth_disconnecting" msgid="8913264760027764974">"Verbinding verbreken\u2026"</string> + <string name="bluetooth_connecting" msgid="8555009514614320497">"Verbinding maken\u2026"</string> <string name="bluetooth_unknown" msgid="644716244548801421"></string> - <string name="bluetooth_pairing" msgid="1426882272690346242">"Koppelen..."</string> - <string name="bluetooth_device" msgid="5291950341750186887">"Naamloos Bluetooth-apparaat"</string> + <string name="bluetooth_pairing" msgid="1426882272690346242">"Koppelen\u2026"</string> + <string name="bluetooth_device" msgid="5291950341750186887">"Naamloos bluetoothapparaat"</string> <string name="progress_scanning" msgid="192587958424295789">"Zoeken"</string> - <string name="bluetooth_no_devices_found" msgid="1085232930277181436">"Geen Bluetooth-apparaten in de buurt."</string> - <string name="bluetooth_notif_ticker" msgid="4726721390078512173">"Bluetooth-koppelingsverzoek"</string> + <string name="bluetooth_no_devices_found" msgid="1085232930277181436">"Geen bluetoothapparaten in de buurt."</string> + <string name="bluetooth_notif_ticker" msgid="4726721390078512173">"Bluetoothkoppelingsverzoek"</string> <string name="bluetooth_notif_title" msgid="2485175521845371514">"Koppelingsverzoek"</string> <string name="bluetooth_notif_message" msgid="5300852675110479862">"Raak dit aan om te koppelen met <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string> <string name="bluetooth_show_received_files" msgid="5164787486105868895">"Ontvangen bestanden weergeven"</string> @@ -160,7 +160,7 @@ <string name="bluetooth_turning_on" msgid="4850574877288036646">"Bluetooth inschakelen.."</string> <string name="bluetooth_turning_off" msgid="2337747302892025192">"Bluetooth uitschakelen…"</string> <string name="bluetooth_auto_connect" msgid="40711424456733571">"Automatisch verbinding maken"</string> - <string name="bluetooth_connection_permission_request" msgid="4747918249032890077">"Bluetooth-verbindingsverzoek"</string> + <string name="bluetooth_connection_permission_request" msgid="4747918249032890077">"Bluetoothverbindingsverzoek"</string> <string name="bluetooth_connection_notif_message" msgid="3687933246423942977">"Raak aan om verbinding te maken met \'<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\'."</string> <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Wilt u verbinding maken met \'<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\'?"</string> <string name="bluetooth_phonebook_request" msgid="457033227379858269">"Telefoonboekverzoek"</string> @@ -171,13 +171,6 @@ <string name="normal_date_format" msgid="7636406984925498359">"Regionaal (<xliff:g id="DATE">%s</xliff:g>)"</string> <string name="display_preview_label" msgid="1127597250917274792">"Voorbeeld:"</string> <string name="display_font_size_label" msgid="8941851418397475389">"Lettergrootte:"</string> - <!-- no translation found for intent_sender_data_label (6332324780477289261) --> - <skip /> - <string name="intent_sender_sendbroadcast_text" msgid="1415735148895872715">"<xliff:g id="BROADCAST">broadcast</xliff:g> verzenden"</string> - <string name="intent_sender_action_label" msgid="616458370005452389">"<xliff:g id="ACTION">Action</xliff:g>:"</string> - <string name="intent_sender_startactivity_text" msgid="5080516029580421895">"<xliff:g id="ACTIVITY">activity</xliff:g> starten"</string> - <string name="intent_sender_resource_label" msgid="6963659726895482829">"<xliff:g id="RESOURCE">Resource</xliff:g>:"</string> - <string name="intent_sender_account_label" msgid="465210404475603404">"Account:"</string> <string name="proxy_settings_title" msgid="5912878565897294401">"Proxyinstellingen"</string> <string name="proxy_clear_text" msgid="5555400754952012657">"Wissen"</string> <string name="proxy_port_label" msgid="5655276502233453400">"Proxy-poort"</string> @@ -228,7 +221,7 @@ <string name="radio_info_toggle_dns_check_label" msgid="8292252930563286858">"DNS-controle in-/uitschakelen"</string> <string name="oem_radio_info_label" msgid="6163141792477958941">"OEM-specifieke gegevens/instellingen"</string> <string name="band_mode_title" msgid="954174198903776205">"GSM/UMTS-band instellen"</string> - <string name="band_mode_loading" msgid="548764766363847336">"Bandlijst laden..."</string> + <string name="band_mode_loading" msgid="548764766363847336">"Bandlijst laden\u2026"</string> <string name="band_mode_set" msgid="5730560180249458484">"Instellen"</string> <string name="band_mode_failed" msgid="1495968863884716379">"Mislukt"</string> <string name="band_mode_succeeded" msgid="2701016190055887575">"Geslaagd"</string> @@ -245,8 +238,8 @@ <string name="sdcard_settings_bad_removal_status" product="nosdcard" msgid="7761390725880773697">"USB-opslag verwijderd tijdens gebruik!"</string> <string name="sdcard_settings_bad_removal_status" product="default" msgid="5145797653495907970">"De SD-kaart is verwijderd terwijl deze nog werd gebruikt!"</string> <string name="sdcard_settings_used_bytes_label" msgid="8820289486001170836">"Gebruikte bytes:"</string> - <string name="sdcard_settings_scanning_status" product="nosdcard" msgid="7503429447676219564">"USB-opslag scannen op media..."</string> - <string name="sdcard_settings_scanning_status" product="default" msgid="2763464949274455656">"SD-kaart scannen op media..."</string> + <string name="sdcard_settings_scanning_status" product="nosdcard" msgid="7503429447676219564">"USB-opslag scannen op media\u2026"</string> + <string name="sdcard_settings_scanning_status" product="default" msgid="2763464949274455656">"SD-kaart scannen op media\u2026"</string> <string name="sdcard_settings_read_only_status" product="nosdcard" msgid="3624143937437417788">"Gekop. USB-opsl. alleen-lezen."</string> <string name="sdcard_settings_read_only_status" product="default" msgid="4518291824764698112">"De gekoppelde SD-kaart is alleen-lezen."</string> <string name="skip_label" msgid="47510779345218297">"Ovrsl"</string> @@ -265,10 +258,10 @@ <string name="settings_label" msgid="1626402585530130914">"Instellingen"</string> <string name="settings_label_launcher" msgid="8344735489639482340">"Instellingen"</string> <string name="settings_shortcut" msgid="3936651951364030415">"Snelkoppeling voor instellingen"</string> - <string name="airplane_mode" msgid="8837269988154128601">"Vliegmodus"</string> - <string name="radio_controls_title" msgid="6889937359495515769">"Meer…"</string> + <string name="airplane_mode" msgid="8837269988154128601">"Vliegtuigmodus"</string> + <string name="radio_controls_title" msgid="6889937359495515769">"Meer\u2026"</string> <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Draadloos en netwerken"</string> - <string name="radio_controls_summary" msgid="2998818677094465517">"Wi-Fi, Bluetooth, vliegmodus, mobiele netwerken en VPN\'s beheren"</string> + <string name="radio_controls_summary" msgid="2998818677094465517">"Wi-Fi, bluetooth, vliegtuigmodus, mobiele netwerken en VPN\'s beheren"</string> <string name="roaming" msgid="3596055926335478572">"Gegevensroaming"</string> <string name="roaming_enable" msgid="3737380951525303961">"Verbinding maken met gegevensservices tijdens roaming"</string> <string name="roaming_disable" msgid="1295279574370898378">"Verbinding maken met gegevensservices tijdens roaming"</string> @@ -303,11 +296,11 @@ <string name="biometric_weak_liveliness_summary" msgid="4199587000948042325">"Ogen knipperen vereist bij ontgrendelen"</string> <string name="lock_after_timeout" msgid="4590337686681194648">"Automatisch vergrendelen"</string> <string name="lock_after_timeout_summary" msgid="6128431871360905631">"<xliff:g id="TIMEOUT_STRING">%1$s</xliff:g> na slaapstand"</string> - <string name="show_owner_info_on_lockscreen_label" msgid="5074906168357568434">"Eigenaarsgegevens weergeven op vergrendeld scherm"</string> + <string name="show_owner_info_on_lockscreen_label" msgid="5074906168357568434">"Eigenaarsgegevens tonen op vergrendeld scherm"</string> <string name="owner_info_settings_title" msgid="2723190010708381889">"Eigenaarsgegevens"</string> <string name="owner_info_settings_summary" msgid="3800834657847339570"></string> <string name="owner_info_settings_edit_text_hint" msgid="4608681417960923911">"Typ tekst voor weergave op vergrendeld scherm"</string> - <string name="show_user_info_on_lockscreen_label" msgid="8408914624925608365">"Gebruikersgegevens weergeven op vergrendeld scherm"</string> + <string name="show_user_info_on_lockscreen_label" msgid="8408914624925608365">"Gebruikersgegevens tonen op vergrendeld scherm"</string> <string name="user_info_settings_title" msgid="1195015434996724736">"Gebruikersgegevens"</string> <string name="location_settings_title" msgid="4483843407328665068">"Locatietoegang"</string> <string name="security_settings_title" msgid="7945465324818485460">"Beveiliging"</string> @@ -317,8 +310,8 @@ <string name="crypt_keeper_settings_title" msgid="4219233835490520414">"Encryptie"</string> <string name="crypt_keeper_encrypt_title" product="tablet" msgid="1060273569887301457">"Tablet encrypten"</string> <string name="crypt_keeper_encrypt_title" product="default" msgid="1878996487755806122">"Telefoon coderen"</string> - <string name="crypt_keeper_encrypt_summary" product="tablet" msgid="6291564408810586">"Een numerieke PIN-code of wachtwoord vereisen om uw tablet te decoderen wanneer u deze inschakelt"</string> - <string name="crypt_keeper_encrypt_summary" product="default" msgid="514138079795442371">"Een numerieke PIN-code of wachtwoord vereisen om uw telefoon te decoderen wanneer u deze inschakelt"</string> + <string name="crypt_keeper_encrypt_summary" product="tablet" msgid="6291564408810586">"Een numerieke pincode of wachtwoord vereisen om uw tablet te decoderen wanneer u deze inschakelt"</string> + <string name="crypt_keeper_encrypt_summary" product="default" msgid="514138079795442371">"Een numerieke pincode of wachtwoord vereisen om uw telefoon te decoderen wanneer u deze inschakelt"</string> <string name="crypt_keeper_encrypted_summary" msgid="1868233637888132906">"Gecodeerd"</string> <string name="crypt_keeper_desc" product="tablet" msgid="3839235202103924154">"U kunt uw account, instellingen, gedownloade apps en de bijbehorende gegevens, media en andere bestanden coderen. Zodra u uw tablet heeft gecodeerd, moet u telkens een pincode of wachtwoord opgeven om de tablet te decoderen wanneer u deze opstart. U kunt het coderen van uw tablet uitsluitend ongedaan maken door de fabrieksinstellingen te herstellen. Daarbij worden al uw gegevens gewist."\n\n"Het coderen kan een uur of langer duren. U moet beginnen met een volledig opgeladen accu en de tablet moet gedurende het coderen op de oplader zijn aangesloten. Als u het coderen onderbreekt, kunt u sommige of al uw gegevens kwijtraken."</string> <string name="crypt_keeper_desc" product="default" msgid="7663118199519229502">"U kunt uw account, instellingen, gedownloade apps en de bijbehorende gegevens, media en andere bestanden coderen. Zodra u uw telefoon heeft gecodeerd, moet u telkens een pincode of wachtwoord opgeven om de telefoon te decoderen wanneer u deze opstart. U kunt het coderen van uw telefoon uitsluitend ongedaan maken door de fabrieksinstellingen te herstellen. Daarbij worden al uw gegevens gewist."\n\n"Het coderen kan een uur of langer duren. U moet beginnen met een volledig opgeladen accu en u moet de telefoon aansluiten op de oplader totdat het coderen is voltooid. Als u het coderen onderbreekt, kunt u sommige of al uw gegevens kwijtraken."</string> @@ -326,7 +319,7 @@ <string name="crypt_keeper_button_text" product="default" msgid="2008346408473255519">"Telefoon coderen"</string> <string name="crypt_keeper_low_charge_text" msgid="2029407131227814893">"Laad de accu op en probeer het opnieuw."</string> <string name="crypt_keeper_unplugged_text" msgid="4785376766063053901">"Sluit uw lader aan en probeer het opnieuw."</string> - <string name="crypt_keeper_dialog_need_password_title" msgid="4058971800557767">"Geen PIN-code of wachtwoord voor schermvergrendeling"</string> + <string name="crypt_keeper_dialog_need_password_title" msgid="4058971800557767">"Geen pincode of wachtwoord voor schermvergrendeling"</string> <string name="crypt_keeper_dialog_need_password_message" msgid="4071395977297369642">"U moet een pincode of wachtwoord voor schermvergrendeling instellen voordat u de encryptie kunt starten."</string> <string name="crypt_keeper_confirm_title" msgid="5100339496381875522">"Coderen?"</string> <string name="crypt_keeper_final_desc" product="tablet" msgid="4453629424172409792">"De coderingsbewerking kan niet ongedaan worden gemaakt en als u de bewerking onderbreekt, gaan er gegevens verloren. Het coderen duurt een uur of langer en de tablet wordt meerdere keren opnieuw opgestart."</string> @@ -368,10 +361,10 @@ <string name="unlock_set_unlock_mode_password" msgid="1203938057264146610">"Wachtwoord"</string> <string name="unlock_disable_lock_title" msgid="1427036227416979120">"Schermvergrendeling uitschakelen"</string> <string name="unlock_disable_lock_pattern_summary" msgid="6801602880568869201">"Ontgrendelingspatroon verwijderen"</string> - <string name="unlock_disable_lock_pin_summary" msgid="8856842745366993387">"PIN-code voor ontgrendelen verwijderen"</string> + <string name="unlock_disable_lock_pin_summary" msgid="8856842745366993387">"Pincode voor ontgrendelen verwijderen"</string> <string name="unlock_disable_lock_password_summary" msgid="192161194564577025">"Ontgrendelingswachtwoord verwijderen"</string> <string name="unlock_change_lock_pattern_title" msgid="2044092014872741130">"Ontgrendelingspatroon wijzigen"</string> - <string name="unlock_change_lock_pin_title" msgid="806629901095938484">"PIN-code voor ontgrendelen wijzigen"</string> + <string name="unlock_change_lock_pin_title" msgid="806629901095938484">"Pincode voor ontgrendelen wijzigen"</string> <string name="unlock_change_lock_password_title" msgid="5606298470358768865">"Ontgrendelingswachtwoord wijzigen"</string> <string name="lockpassword_password_too_short" msgid="7328975683669256660">"Wachtwoord moet ten minste %d tekens lang zijn"</string> <string name="lockpassword_pin_too_short" msgid="1677649103470518953">"Pincode moet ten minste %d cijfers zijn"</string> @@ -417,13 +410,13 @@ <string name="lock_setup" msgid="3355847066343753943">"Het instellen is voltooid."</string> <string name="device_admin_title" msgid="3562216873644263804">"Apparaatbeheer"</string> <string name="manage_device_admin" msgid="5059296715271077278">"Apparaatbeheerders"</string> - <string name="manage_device_admin_summary" msgid="7672709110988761075">"Apparaatbeheerders weergeven of uitschakelen"</string> + <string name="manage_device_admin_summary" msgid="7672709110988761075">"Apparaatbeheerders tonen of uitschakelen"</string> <string name="bluetooth_quick_toggle_title" msgid="1037056952714061893">"Bluetooth"</string> <string name="bluetooth_quick_toggle_summary" msgid="5293641680139873341">"Bluetooth inschakelen"</string> <string name="bluetooth_settings" msgid="1810521656168174329">"Bluetooth"</string> <string name="bluetooth_settings_title" msgid="1908745291161353016">"Bluetooth"</string> <string name="bluetooth_settings_summary" msgid="2091062709530570462">"Verbindingen beheren, apparaatnaam en vindbaarheid instellen"</string> - <string name="bluetooth_pairing_request" msgid="6385750334766370310">"Bluetooth-koppelingsverzoek"</string> + <string name="bluetooth_pairing_request" msgid="6385750334766370310">"Bluetoothkoppelingsverzoek"</string> <string name="bluetooth_enter_pin_msg" msgid="5698297871117529185">"Typ om te koppelen met <xliff:g id="BOLD_0"><br><b></xliff:g><xliff:g id="DEVICE_NAME">%1$s</xliff:g><xliff:g id="END_BOLD"></b><br><br></xliff:g> de vereiste pincode van het apparaat:"</string> <string name="bluetooth_enter_passkey_msg" msgid="2220143735340367939">"Koppelen met:<xliff:g id="BOLD_0"><br><b></xliff:g><xliff:g id="DEVICE_NAME">%1$s</xliff:g><xliff:g id="END_BOLD"></b><br><br></xliff:g>Typ de vereiste toegangscode van het apparaat:"</string> <string name="bluetooth_enable_alphanumeric_pin" msgid="7222713483058171357">"Pincode bevat letters of symbolen"</string> @@ -443,7 +436,7 @@ <string name="bluetooth_connecting_error_message" msgid="229861986106185022">"Kan geen verbinding maken met <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string> <string name="bluetooth_preference_scan_title" msgid="2277464653118896016">"Scannen naar apparaten"</string> <string name="bluetooth_search_for_devices" msgid="5957007154213560390">"Apparaten zoeken"</string> - <string name="bluetooth_searching_for_devices" msgid="9203739709307871727">"Zoeken..."</string> + <string name="bluetooth_searching_for_devices" msgid="9203739709307871727">"Zoeken\u2026"</string> <string name="bluetooth_preference_device_settings" msgid="907776049862799122">"Apparaatinstellingen"</string> <string name="bluetooth_preference_paired_devices" msgid="1970524193086791964">"Gekoppelde apparaten"</string> <string name="bluetooth_preference_found_devices" msgid="1647983835063249680">"Beschikbare apparaten"</string> @@ -452,11 +445,11 @@ <string name="bluetooth_device_context_pair_connect" msgid="7611522504813927727">"Koppelen en verbinden"</string> <string name="bluetooth_device_context_unpair" msgid="662992425948536144">"Koppeling ongedaan maken"</string> <string name="bluetooth_device_context_disconnect_unpair" msgid="7644014238070043798">"Verbinding verbreken en koppeling opheffen"</string> - <string name="bluetooth_device_context_connect_advanced" msgid="2643129703569788771">"Opties..."</string> + <string name="bluetooth_device_context_connect_advanced" msgid="2643129703569788771">"Opties\u2026"</string> <string name="bluetooth_menu_advanced" msgid="8572178316357220524">"Geavanceerd"</string> - <string name="bluetooth_advanced_titlebar" msgid="2142159726881547669">"Geavanceerde Bluetooth"</string> - <string name="bluetooth_empty_list_bluetooth_off" msgid="4793562956642282639">"Schakel Bluetooth in om apparaten te bekijken."</string> - <string name="bluetooth_connect_specific_profiles_title" msgid="6952214406025825164">"Verbinding maken met…"</string> + <string name="bluetooth_advanced_titlebar" msgid="2142159726881547669">"Geavanceerde bluetooth"</string> + <string name="bluetooth_empty_list_bluetooth_off" msgid="4793562956642282639">"Schakel bluetooth in om apparaten te bekijken."</string> + <string name="bluetooth_connect_specific_profiles_title" msgid="6952214406025825164">"Verbinding maken met\u2026"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Media-audio"</string> <string name="bluetooth_profile_headset" msgid="8658779596261212609">"Telefoonaudio"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"Bestandsoverdracht"</string> @@ -469,9 +462,9 @@ <string name="bluetooth_disconnect_pan_user_profile" msgid="8037627994382458698">"Internettoegang via <xliff:g id="DEVICE_NAME">%1$s</xliff:g> wordt uitgeschakeld."</string> <string name="bluetooth_disconnect_pan_nap_profile" product="tablet" msgid="5455448395850929200">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> deelt de internetverbinding van deze tablet niet meer."</string> <string name="bluetooth_disconnect_pan_nap_profile" product="default" msgid="5266851881175033601">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> deelt de internetverbinding van deze telefoon niet meer."</string> - <string name="bluetooth_device_advanced_title" msgid="6066342531927499308">"Gekoppeld Bluetooth-apparaat"</string> + <string name="bluetooth_device_advanced_title" msgid="6066342531927499308">"Gekoppeld bluetoothapparaat"</string> <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"Verbinden"</string> - <string name="bluetooth_device_advanced_online_mode_summary" msgid="1204424107263248336">"Verbinden met Bluetooth-apparaat"</string> + <string name="bluetooth_device_advanced_online_mode_summary" msgid="1204424107263248336">"Verbinden met bluetoothapparaat"</string> <string name="bluetooth_device_advanced_profile_header_title" msgid="3764437426089639639">"Profielen"</string> <string name="bluetooth_device_advanced_rename_device" msgid="5148578059584955791">"Naam wijzigen"</string> <string name="bluetooth_device_advanced_enable_opp_title" msgid="8222550640371627365">"Ink. bestandsoverdr. toestaan"</string> @@ -496,7 +489,7 @@ <string name="wifi_display_settings_empty_list_wifi_display_off" msgid="1225626898926363100">"Als u apparaten wilt zien, schakelt u draadloze display in."</string> <string name="wifi_display_settings_empty_list_wifi_display_disabled" msgid="7363832031876872257">"Draadloze display wordt uitgeschakeld omdat wifi is uitgeschakeld."</string> <string name="wifi_display_search_for_devices" msgid="5065526281193354502">"Zoeken naar displays"</string> - <string name="wifi_display_searching_for_devices" msgid="5172373825348672137">"Zoeken…"</string> + <string name="wifi_display_searching_for_devices" msgid="5172373825348672137">"Zoeken\u2026"</string> <string name="wifi_display_no_devices_found" msgid="8180582698282377626">"Geen draadloze displays in de buurt."</string> <string name="wifi_display_paired_devices" msgid="7395326840730024303">"Gekoppelde displays"</string> <string name="wifi_display_available_devices" msgid="4558314642853513487">"Beschikbare apparaten"</string> @@ -530,44 +523,44 @@ <string name="wifi_settings_category" msgid="2810363951104753710">"Wi-Fi-instellingen"</string> <string name="wifi_settings_title" msgid="4351120897298124250">"Wi-Fi"</string> <string name="wifi_settings_summary" msgid="668767638556052820">"Draadloze toegangspunten instellen en beheren"</string> - <string name="wifi_setup_wizard_title" msgid="70277346338812325">"Wifi selecteren"</string> - <string name="wifi_starting" msgid="6716593470710880000">"Wifi inschakelen.."</string> - <string name="wifi_stopping" msgid="244864762599017659">"Wi-Fi uitschakelen…"</string> + <string name="wifi_setup_wizard_title" msgid="70277346338812325">"Wi-Fi selecteren"</string> + <string name="wifi_starting" msgid="6716593470710880000">"Wi-Fi inschakelen\u2026"</string> + <string name="wifi_stopping" msgid="244864762599017659">"Wi-Fi uitschakelen\u2026"</string> <string name="wifi_error" msgid="3207971103917128179">"Fout"</string> - <string name="wifi_in_airplane_mode" msgid="8652520421778203796">"In vliegmodus"</string> + <string name="wifi_in_airplane_mode" msgid="8652520421778203796">"In vliegtuigmodus"</string> <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Kan niet scannen naar netwerken"</string> <string name="wifi_notify_open_networks" msgid="3755768188029653293">"Netwerkmelding"</string> <string name="wifi_notify_open_networks_summary" msgid="3038290727701553612">"Melden wanneer een open netwerk beschikbaar is"</string> <string name="wifi_poor_network_detection" msgid="4925789238170207169">"Slechte verbindingen vermijden"</string> - <string name="wifi_poor_network_detection_summary" msgid="2466956369738047669">"Wifi-netwerk niet gebruiken, tenzij dit een goede internetverbinding heeft"</string> - <string name="wifi_setting_sleep_policy_title" msgid="9107237003911220057">"Wifi behouden in slaapstand"</string> + <string name="wifi_poor_network_detection_summary" msgid="2466956369738047669">"Wi-Fi-netwerk niet gebruiken, tenzij dit een goede internetverbinding heeft"</string> + <string name="wifi_setting_sleep_policy_title" msgid="9107237003911220057">"Wi-Fi behouden in slaapstand"</string> <string name="wifi_setting_sleep_policy_error" msgid="8174902072673071961">"Er is een probleem opgetreden bij het wijzigen van de instelling"</string> - <string name="wifi_suspend_optimizations" msgid="387215679583759376">"Wifi-optimalisatie"</string> - <string name="wifi_suspend_optimizations_summary" msgid="7774946457510541054">"Accugebruik minimaliseren wanneer wifi is ingeschakeld"</string> + <string name="wifi_suspend_optimizations" msgid="387215679583759376">"Wi-Fi-optimalisatie"</string> + <string name="wifi_suspend_optimizations_summary" msgid="7774946457510541054">"Accugebruik minimaliseren wanneer Wi-Fi is ingeschakeld"</string> <string name="wifi_add_network" msgid="6234851776910938957">"Netwerk toevoegen"</string> <string name="wifi_access_points" msgid="2664629396767022441">"Wi-Fi-netwerken"</string> <string name="wifi_menu_wps_pbc" msgid="2668564692207863017">"WPS-knop"</string> <string name="wifi_menu_more_options" msgid="2448097861752719396">"Meer opties"</string> <string name="wifi_menu_wps_pin" msgid="6426448256268695933">"WPS-pin"</string> - <string name="wifi_menu_p2p" msgid="2575893749303670353">"Wifi Direct"</string> + <string name="wifi_menu_p2p" msgid="2575893749303670353">"Wi-Fi Direct"</string> <string name="wifi_menu_scan" msgid="1470911530412095868">"Scannen"</string> <string name="wifi_menu_advanced" msgid="7522252991919573664">"Geavanceerd"</string> <string name="wifi_menu_connect" msgid="4996220309848349408">"Verbinding maken met netwerk"</string> <string name="wifi_menu_forget" msgid="8736964302477327114">"Netwerk vergeten"</string> <string name="wifi_menu_modify" msgid="2068554918652440105">"Netwerk aanpassen"</string> <string name="wifi_empty_list_wifi_off" msgid="4722299515264875943">"Schakel Wi-Fi in om beschikbare netwerken te bekijken."</string> - <string name="wifi_empty_list_wifi_on" msgid="3354911729026237372">"Wifi-netwerken zoeken..."</string> - <string name="wifi_other_network" msgid="1048006316504242214">"Ander netwerk..."</string> + <string name="wifi_empty_list_wifi_on" msgid="3354911729026237372">"Wi-Fi-netwerken zoeken\u2026"</string> + <string name="wifi_other_network" msgid="1048006316504242214">"Ander netwerk\u2026"</string> <string name="wifi_more" msgid="3195296805089107950">"Meer"</string> <string name="wifi_setup_wps" msgid="8128702488486283957">"Autom. config. (WPS)"</string> - <string name="wifi_required_info_text" msgid="9014073093293520112">"Om de configuratie te voltooien, heeft uw tablet toegang tot wifi nodig. Na de configuratie kunt u schakelen tussen mobiele gegevens en wifi."</string> - <string name="wifi_show_advanced" msgid="1793703023711426246">"Geavanceerde opties weergeven"</string> - <string name="wifi_wps_setup_title" msgid="6034518116333042484">"Beveiligde configuratie voor wifi"</string> - <string name="wifi_wps_setup_msg" msgid="315174329121275092">"WPS starten…"</string> - <string name="wifi_wps_onstart_pbc" msgid="7204827509934892103">"Druk op de knop \'Beveiligde configuratie voor wifi\' op uw router. Misschien heet deze knop \'WPS\' of bevat deze het volgende symbool:"</string> - <string name="wifi_wps_onstart_pin" msgid="8067502591043979939">"Geef de pincode <xliff:g id="NUMBER">%1$s</xliff:g> op uw wifi-router op. De configuratie kan twee minuten duren."</string> - <string name="wifi_wps_complete" msgid="2388138550456729134">"WPS geslaagd. Bezig met verbinding maken met netwerk…"</string> - <string name="wifi_wps_connected" msgid="5754399645462924103">"Verbonden met wifi-netwerk <xliff:g id="NETWORK_NAME">%s</xliff:g>"</string> + <string name="wifi_required_info_text" msgid="9014073093293520112">"Om de configuratie te voltooien, heeft uw tablet toegang tot Wi-Fi nodig. Na de configuratie kunt u schakelen tussen mobiele gegevens en Wi-Fi."</string> + <string name="wifi_show_advanced" msgid="1793703023711426246">"Geavanceerde opties tonen"</string> + <string name="wifi_wps_setup_title" msgid="6034518116333042484">"Beveiligde configuratie voor Wi-Fi"</string> + <string name="wifi_wps_setup_msg" msgid="315174329121275092">"WPS starten\u2026"</string> + <string name="wifi_wps_onstart_pbc" msgid="7204827509934892103">"Druk op de knop \'Beveiligde configuratie voor Wi-Fi\' op uw router. Misschien heet deze knop \'WPS\' of bevat deze het volgende symbool:"</string> + <string name="wifi_wps_onstart_pin" msgid="8067502591043979939">"Geef de pincode <xliff:g id="NUMBER">%1$s</xliff:g> op uw Wi-Fi-router op. De configuratie kan twee minuten duren."</string> + <string name="wifi_wps_complete" msgid="2388138550456729134">"WPS geslaagd. Bezig met verbinding maken met netwerk\u2026"</string> + <string name="wifi_wps_connected" msgid="5754399645462924103">"Verbonden met Wi-Fi-netwerk <xliff:g id="NETWORK_NAME">%s</xliff:g>"</string> <string name="wifi_wps_in_progress" msgid="3372311348221357944">"WPS wordt al uitgevoerd en het kan twee minuten duren voordat dit proces is voltooid"</string> <string name="wifi_wps_failed_generic" msgid="5668775022238832527">"WPS is mislukt. Probeer het over enkele minuten opnieuw."</string> <string name="wifi_wps_failed_wep" msgid="2702820087105284461">"De beveiligingsinstelling voor de draadloze router (WEP) wordt niet ondersteund"</string> @@ -587,7 +580,7 @@ <string name="wifi_eap_identity" msgid="4359453783379679103">"Identiteit"</string> <string name="wifi_eap_anonymous" msgid="2989469344116577955">"Anonieme identiteit"</string> <string name="wifi_password" msgid="5948219759936151048">"Wachtwoord"</string> - <string name="wifi_show_password" msgid="6461249871236968884">"Wachtwoord weergeven"</string> + <string name="wifi_show_password" msgid="6461249871236968884">"Wachtwoord tonen"</string> <string name="wifi_ip_settings" msgid="3359331401377059481">"IP-instellingen"</string> <string name="wifi_unchanged" msgid="3410422020930397102">"(ongewijzigd)"</string> <string name="wifi_unspecified" msgid="5431501214192991253">"(niet opgegeven)"</string> @@ -614,8 +607,8 @@ <string name="wifi_skipped_message" product="default" msgid="1192848364146401759">"WAARSCHUWING: er worden mogelijk extra kosten voor dataverkeer in rekening gebracht."\n\n"Het instellen van de telefoon kan aanzienlijke netwerkactiviteit vereisen."</string> <string name="wifi_and_mobile_skipped_message" product="tablet" msgid="7682836089429990118">"WAARSCHUWING: de tablet kan niet controleren of uw software is bijgewerkt."</string> <string name="wifi_and_mobile_skipped_message" product="default" msgid="3324261421359832263">"WAARSCHUWING: de telefoon kan niet verifiëren of uw software is bijgewerkt."</string> - <string name="wifi_connect_failed_message" product="tablet" msgid="6904081070290941807">"De tablet kan geen verbinding maken met dit wifi-netwerk."</string> - <string name="wifi_connect_failed_message" product="default" msgid="3894921379368046855">"De telefoon kan geen verbinding maken met dit wifi-netwerk."</string> + <string name="wifi_connect_failed_message" product="tablet" msgid="6904081070290941807">"De tablet kan geen verbinding maken met dit Wi-Fi-netwerk."</string> + <string name="wifi_connect_failed_message" product="default" msgid="3894921379368046855">"De telefoon kan geen verbinding maken met dit Wi-Fi-netwerk."</string> <string name="wifi_advanced_titlebar" msgid="1627063574532930090">"Geavanceerde Wi-Fi-instellingen"</string> <string name="wifi_setting_frequency_band_title" msgid="7493768705046080060">"Wi-Fi-frequentieband"</string> <string name="wifi_setting_frequency_band_summary" msgid="3250740757118009784">"Het frequentiebereik voor gebruik opgeven"</string> @@ -637,7 +630,7 @@ <string name="wifi_p2p_device_info" msgid="3191876744469364173">"Apparaatgegevens"</string> <string name="wifi_p2p_persist_network" msgid="1646424791818168590">"Deze verbinding onthouden"</string> <string name="wifi_p2p_menu_search" msgid="3436429984738771974">"Apparaten zoeken"</string> - <string name="wifi_p2p_menu_searching" msgid="2396704492143633876">"Zoeken…"</string> + <string name="wifi_p2p_menu_searching" msgid="2396704492143633876">"Zoeken\u2026"</string> <string name="wifi_p2p_menu_rename" msgid="8448896306960060415">"Naam van apparaat wijzigen"</string> <string name="wifi_p2p_peer_devices" msgid="299526878463303432">"Peer-apparaten"</string> <string name="wifi_p2p_remembered_groups" msgid="3847022927914068230">"Onthouden groepen"</string> @@ -650,11 +643,11 @@ <string name="wifi_p2p_cancel_connect_message" msgid="7477756213423749402">"Wilt u de uitnodiging voor verbinding met <xliff:g id="PEER_NAME">%1$s</xliff:g> annuleren?"</string> <string name="wifi_p2p_delete_group_message" msgid="834559380069647086">"Deze groep vergeten?"</string> <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Draagbare Wi-Fi-hotspot"</string> - <string name="wifi_tether_starting" msgid="1322237938998639724">"Hotspot inschakelen…"</string> - <string name="wifi_tether_stopping" msgid="4835852171686388107">"Hotspot uitschakelen…"</string> + <string name="wifi_tether_starting" msgid="1322237938998639724">"Hotspot inschakelen\u2026"</string> + <string name="wifi_tether_stopping" msgid="4835852171686388107">"Hotspot uitschakelen\u2026"</string> <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Draagbare hotspot <xliff:g id="NETWORK_SSID">%1$s</xliff:g> actief"</string> <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Fout met draagbare Wi-Fi-hotspot"</string> - <string name="wifi_tether_configure_ap_text" msgid="61237027772641155">"Wifi-hotspot instellen"</string> + <string name="wifi_tether_configure_ap_text" msgid="61237027772641155">"Wi-Fi-hotspot instellen"</string> <string name="wifi_tether_configure_subtext" msgid="1927454307836232128">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> <xliff:g id="NETWORK_SECURITY">%2$s</xliff:g> draagbare Wi-Fi-hotspot"</string> <string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string> <string name="display_settings_title" msgid="1708697328627382561">"Weergave"</string> @@ -737,22 +730,22 @@ <string name="sim_lock_settings_category" msgid="5136244267576697004">"SIM-vergrendeling instellen"</string> <string name="sim_lock_settings_title" msgid="9018585580955414596">"SIM-kaartvergrendeling"</string> <string name="sim_pin_toggle" msgid="1742123478029451888">"SIM-kaart vergrendelen"</string> - <string name="sim_lock_on" product="tablet" msgid="5058355081270397764">"PIN-code vereist voor gebruik van tablet"</string> - <string name="sim_lock_on" product="default" msgid="2503536505568814324">"PIN-code vereist voor gebruik van telefoon"</string> - <string name="sim_lock_off" product="tablet" msgid="2813800553917012356">"PIN-code vereist voor gebruik van tablet"</string> - <string name="sim_lock_off" product="default" msgid="258981978215428916">"PIN-code vereist voor gebruik van telefoon"</string> - <string name="sim_pin_change" msgid="6311414184279932368">"SIM PIN-code wijzigen"</string> - <string name="sim_enter_pin" msgid="6608715137008508432">"SIM PIN-code"</string> + <string name="sim_lock_on" product="tablet" msgid="5058355081270397764">"Pincode vereist voor gebruik van tablet"</string> + <string name="sim_lock_on" product="default" msgid="2503536505568814324">"Pincode vereist voor gebruik van telefoon"</string> + <string name="sim_lock_off" product="tablet" msgid="2813800553917012356">"Pincode vereist voor gebruik van tablet"</string> + <string name="sim_lock_off" product="default" msgid="258981978215428916">"Pincode vereist voor gebruik van telefoon"</string> + <string name="sim_pin_change" msgid="6311414184279932368">"SIM-pincode wijzigen"</string> + <string name="sim_enter_pin" msgid="6608715137008508432">"SIM-pincode"</string> <string name="sim_enable_sim_lock" msgid="4517742794997166918">"SIM-kaart vergrendelen"</string> <string name="sim_disable_sim_lock" msgid="7664729528754784824">"SIM-kaart ontgrendelen"</string> - <string name="sim_enter_old" msgid="6074196344494634348">"Oude SIM PIN-code"</string> - <string name="sim_enter_new" msgid="8742727032729243562">"Nieuwe SIM PIN-code"</string> - <string name="sim_reenter_new" msgid="3178510434642201544">"Nieuwe PIN-code nogmaals invoeren"</string> - <string name="sim_change_pin" msgid="7328607264898359112">"SIM PIN-code"</string> + <string name="sim_enter_old" msgid="6074196344494634348">"Oude SIM-pincode"</string> + <string name="sim_enter_new" msgid="8742727032729243562">"Nieuwe SIM-pincode"</string> + <string name="sim_reenter_new" msgid="3178510434642201544">"Nieuwe pincode nogmaals invoeren"</string> + <string name="sim_change_pin" msgid="7328607264898359112">"SIM-pincode"</string> <string name="sim_bad_pin" msgid="2345230873496357977">"Onjuiste pincode"</string> <string name="sim_pins_dont_match" msgid="8449681619822460312">"Pincodes komen niet overeen"</string> <string name="sim_change_failed" msgid="304964924772218382">"Kan pincode niet wijzigen."\n"Pincode mogelijk onjuist."</string> - <string name="sim_change_succeeded" msgid="8556135413096489627">"SIM PIN-code gewijzigd"</string> + <string name="sim_change_succeeded" msgid="8556135413096489627">"SIM-pincode gewijzigd"</string> <string name="sim_lock_failed" msgid="5651596916127873626">"Kan status van simkaartblokkering niet wijzigen."\n"Pincode mogelijk onjuist."</string> <string name="sim_enter_ok" msgid="6475946836899218919">"OK"</string> <string name="sim_enter_cancel" msgid="6240422158517208036">"Annuleren"</string> @@ -774,8 +767,8 @@ <string name="device_status_summary" product="default" msgid="2599162787451519618">"Telefoonnummer, signaal, enzovoort"</string> <string name="storage_settings" msgid="4211799979832404953">"Opslagruimte"</string> <string name="storage_settings_title" msgid="8746016738388094064">"Instellingen voor opslag"</string> - <string name="storage_settings_summary" product="nosdcard" msgid="3543813623294870759">"USB-opslag ontkoppelen, beschikbare opslag weergeven"</string> - <string name="storage_settings_summary" product="default" msgid="9176693537325988610">"SD-kaart ontkoppelen, beschikbare opslagruimte weergeven"</string> + <string name="storage_settings_summary" product="nosdcard" msgid="3543813623294870759">"USB-opslag ontkoppelen, beschikbare opslag tonen"</string> + <string name="storage_settings_summary" product="default" msgid="9176693537325988610">"SD-kaart ontkoppelen, beschikbare opslagruimte tonen"</string> <string name="status_number" product="tablet" msgid="1138837891091222272">"MDN"</string> <string name="status_number" product="default" msgid="5123197324870153205">"Mijn telefoonnummer"</string> <string name="status_min_number" msgid="3519504522179420597">"MIN"</string> @@ -791,7 +784,7 @@ <string name="status_roaming" msgid="2638800467430913403">"Roaming"</string> <string name="status_operator" msgid="2274875196954742087">"Netwerk"</string> <string name="status_wifi_mac_address" msgid="33109409206264790">"Wi-Fi MAC-adres"</string> - <string name="status_bt_address" msgid="4195174192087439720">"Bluetooth-adres"</string> + <string name="status_bt_address" msgid="4195174192087439720">"Bluetoothadres"</string> <string name="status_serial_number" msgid="2257111183374628137">"Serienummer"</string> <string name="status_unavailable" msgid="7862009036663793314">"Niet beschikbaar"</string> <string name="status_up_time" msgid="7294859476816760399">"Bedrijfstijd"</string> @@ -802,7 +795,7 @@ <string name="memory_available" msgid="5052397223077021181">"Beschikbaar"</string> <string name="memory_available_read_only" msgid="6497534390167920206">"Beschikbaar (alleen-lezen)"</string> <string name="memory_size" msgid="6629067715017232195">"Totale ruimte"</string> - <string name="memory_calculating_size" msgid="2188358544203768588">"Berekenen…"</string> + <string name="memory_calculating_size" msgid="2188358544203768588">"Berekenen\u2026"</string> <string name="memory_apps_usage" msgid="2348501997988663688">"Apps (app-gegevens en media-inhoud)"</string> <string name="memory_media_usage" msgid="3738830697707880405">"Media"</string> <string name="memory_downloads_usage" msgid="3755173051677533027">"Downloads"</string> @@ -930,7 +923,7 @@ <string name="call_settings_summary" msgid="7291195704801002886">"Voicemail, oproepen doorschakelen, wisselgesprek, beller-id instellen"</string> <string name="tether_settings_title_usb" msgid="6688416425801386511">"USB-tethering"</string> <string name="tether_settings_title_wifi" msgid="3277144155960302049">"Draagbare hotspot"</string> - <string name="tether_settings_title_bluetooth" msgid="355855408317564420">"Bluetooth-tethering"</string> + <string name="tether_settings_title_bluetooth" msgid="355855408317564420">"Bluetoothtethering"</string> <string name="tether_settings_title_usb_bluetooth" msgid="5355828977109785001">"Tethering"</string> <string name="tether_settings_title_all" msgid="8356136101061143841">"Tethering en draagbare hotspot"</string> <string name="usb_title" msgid="7483344855356312510">"USB"</string> @@ -940,7 +933,7 @@ <string name="usb_tethering_storage_active_subtext" msgid="5210094834194907094">"Kan niet tetheren wanneer USB-opslag wordt gebruikt"</string> <string name="usb_tethering_unavailable_subtext" msgid="1044622421184007254">"USB niet verbonden"</string> <string name="usb_tethering_errored_subtext" msgid="1377574819427841992">"Fout met USB-tethering"</string> - <string name="bluetooth_tether_checkbox_text" msgid="2379175828878753652">"Bluetooth-tethering"</string> + <string name="bluetooth_tether_checkbox_text" msgid="2379175828878753652">"Bluetoothtethering"</string> <string name="bluetooth_tethering_available_subtext" product="tablet" msgid="8811610320942954709">"Internetverbinding van deze tablet delen"</string> <string name="bluetooth_tethering_available_subtext" product="default" msgid="4229220575771946723">"Internetverbinding van deze telefoon delen"</string> <string name="bluetooth_tethering_device_connected_subtext" product="tablet" msgid="2730938191906597896">"Internetverbinding van deze tablet delen met 1 apparaat"</string> @@ -955,7 +948,7 @@ <string name="tethering_help_button_text" msgid="656117495547173630">"Help"</string> <string name="network_settings_title" msgid="7967552516440151852">"Mobiele netwerken"</string> <string name="location_title" msgid="1029961368397484576">"Mijn locatie"</string> - <string name="location_network_based" msgid="7472814266821714527">"Wifi en mobiele netwerklocatie"</string> + <string name="location_network_based" msgid="7472814266821714527">"Wi-Fi en mobiele netwerklocatie"</string> <string name="location_neighborhood_level" msgid="5626515380188353712">"Apps toestaan de locatieservice van Google te gebruiken om uw locatie sneller te schatten. Anonieme locatiegegevens worden verzameld en verzonden naar Google."</string> <string name="location_neighborhood_level_wifi" msgid="7457348712272184793">"Locatie bepaald via Wi-Fi"</string> <string name="location_gps" msgid="8392461023569708478">"GPS-satellieten"</string> @@ -971,7 +964,7 @@ <string name="location_sources_heading" msgid="1278732419851088319">"Locatiebronnen"</string> <string name="about_settings" product="tablet" msgid="593457295516533765">"Over tablet"</string> <string name="about_settings" product="default" msgid="1743378368185371685">"Over de telefoon"</string> - <string name="about_settings_summary" msgid="3371517697156165959">"Juridische info, status, softwareversie weergeven"</string> + <string name="about_settings_summary" msgid="3371517697156165959">"Juridische info, status, softwareversie tonen"</string> <string name="legal_information" msgid="5769301644270604095">"Juridische informatie"</string> <string name="contributors_title" msgid="5917703088825286504">"Bijdragers"</string> <string name="regulatory_information" msgid="5695464367088752150">"Wettelijke informatie"</string> @@ -980,26 +973,26 @@ <string name="terms_title" msgid="7697580845616764642">"Algemene voorwaarden"</string> <string name="settings_license_activity_title" msgid="7553683406244228650">"Open-sourcelicenties"</string> <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Er is een probleem bij het laden van de licenties."</string> - <string name="settings_license_activity_loading" msgid="3337535809093591740">"Laden..."</string> + <string name="settings_license_activity_loading" msgid="3337535809093591740">"Laden\u2026"</string> <string name="settings_safetylegal_title" msgid="1289483965535937431">"Veiligheidsinformatie"</string> <string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"Veiligheidsinformatie"</string> - <string name="settings_safetylegal_activity_unreachable" msgid="232523852222964470">"U heeft geen gegevensverbinding. Als u deze informatie nu wilt weergeven, gaat u op een computer met internetverbinding naar %s."</string> - <string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"Laden..."</string> + <string name="settings_safetylegal_activity_unreachable" msgid="232523852222964470">"U heeft geen gegevensverbinding. Als u deze informatie nu wilt tonen, gaat u op een computer met internetverbinding naar %s."</string> + <string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"Laden\u2026"</string> <string name="lockpassword_choose_your_password_header" msgid="8624900666929394990">"Uw wachtwoord kiezen"</string> <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Uw patroon kiezen"</string> - <string name="lockpassword_choose_your_pin_header" msgid="7598849519816138302">"Uw PIN-code kiezen"</string> + <string name="lockpassword_choose_your_pin_header" msgid="7598849519816138302">"Uw pincode kiezen"</string> <string name="lockpassword_confirm_your_password_header" msgid="6308478184889846633">"Uw wachtwoord bevestigen"</string> <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Uw patroon bevestigen"</string> - <string name="lockpassword_confirm_your_pin_header" msgid="49038294648213197">"Uw PIN-code bevestigen"</string> + <string name="lockpassword_confirm_your_pin_header" msgid="49038294648213197">"Uw pincode bevestigen"</string> <string name="lockpassword_confirm_passwords_dont_match" msgid="6850677112663979120">"Wachtwoorden komen niet overeen"</string> - <string name="lockpassword_confirm_pins_dont_match" msgid="4757532830594400147">"PIN-codes komen niet overeen"</string> + <string name="lockpassword_confirm_pins_dont_match" msgid="4757532830594400147">"Pincodes komen niet overeen"</string> <string name="lockpassword_choose_lock_generic_header" msgid="3811438094903786145">"Ontgrendelingsmethode selecteren"</string> <string name="lockpassword_password_set_toast" msgid="4875050283108629383">"Wachtwoord is ingesteld"</string> - <string name="lockpassword_pin_set_toast" msgid="6011826444725291475">"PIN-code is ingesteld"</string> + <string name="lockpassword_pin_set_toast" msgid="6011826444725291475">"Pincode is ingesteld"</string> <string name="lockpassword_pattern_set_toast" msgid="6867259621331406236">"Patroon is ingesteld"</string> <string name="lock_settings_title" msgid="335025124489630932">"Schermbeveiliging"</string> <string name="lockpattern_change_lock_pattern_label" msgid="5679630792003440352">"Ontgrendelingspatroon wijzigen"</string> - <string name="lockpattern_change_lock_pin_label" msgid="266707138486731661">"PIN-code voor ontgrendelen wijzigen"</string> + <string name="lockpattern_change_lock_pin_label" msgid="266707138486731661">"Pincode voor ontgrendelen wijzigen"</string> <string name="lockpattern_need_to_unlock" msgid="757935356911054465">"Opgeslagen patroon bevestigen"</string> <string name="lockpattern_need_to_unlock_wrong" msgid="4694973540770105678">"Probeer het opnieuw:"</string> <string name="lockpattern_recording_intro_header" msgid="2063630508212535241">"Teken een ontgrendelingspatroon:"</string> @@ -1072,8 +1065,8 @@ <string name="unknown" msgid="1592123443519355854">"Onbekend"</string> <string name="sort_order_alpha" msgid="1410278099123670628">"Sorteren op naam"</string> <string name="sort_order_size" msgid="7024513286636502362">"Sorteren op grootte"</string> - <string name="show_running_services" msgid="5736278767975544570">"Actieve services weergeven"</string> - <string name="show_background_processes" msgid="2009840211972293429">"Gecachte processen weerg."</string> + <string name="show_running_services" msgid="5736278767975544570">"Actieve services tonen"</string> + <string name="show_background_processes" msgid="2009840211972293429">"Gecachte processen tonen"</string> <string name="reset_app_preferences" msgid="1321050641018356925">"Appvoorkeuren herstellen"</string> <string name="reset_app_preferences_title" msgid="6093179367325336662">"Appvoorkeuren herstellen?"</string> <string name="reset_app_preferences_desc" msgid="1118129530999596317">"Hierdoor worden alle voorkeuren voor de volgende items opnieuw ingesteld:"\n\n" "<li>"Uitgeschakelde apps"</li>\n" "<li>"Meldingen van uitgeschakelde apps"</li>\n" "<li>"Standaardapps voor acties"</li>\n" "<li>"Beperkingen voor achtergrondgegevens van apps"</li>\n\n" Er gaan geen appgegevens verloren."</string> @@ -1083,7 +1076,7 @@ <string name="filter_dlg_title" msgid="8693024463731076091">"Filteropties kiezen"</string> <string name="filter_apps_all" msgid="5142129378749391876">"Alles"</string> <string name="filter_apps_third_party" msgid="7786348047690140979">"Gedownload"</string> - <string name="filter_apps_running" msgid="7767071454371350486">"Wordt uitgevoerd"</string> + <string name="filter_apps_running" msgid="7767071454371350486">"Actief"</string> <string name="filter_apps_onsdcard" product="nosdcard" msgid="4843063154701023349">"USB-opslag"</string> <string name="filter_apps_onsdcard" product="default" msgid="1477351142334784771">"Op SD-kaart"</string> <string name="disabled" msgid="9206776641295849915">"Uitgeschakeld"</string> @@ -1092,7 +1085,7 @@ <string name="internal_storage" msgid="1584700623164275282">"Interne opslag"</string> <string name="sd_card_storage" product="nosdcard" msgid="2673203150465132465">"USB-opslag"</string> <string name="sd_card_storage" product="default" msgid="7623513618171928235">"SD-kaartopslag"</string> - <string name="recompute_size" msgid="7722567982831691718">"Grootte opnieuw berekenen..."</string> + <string name="recompute_size" msgid="7722567982831691718">"Grootte opnieuw berekenen\u2026"</string> <string name="clear_data_dlg_title" msgid="5605258400134511197">"Gegevens van app verwijderen?"</string> <string name="clear_data_dlg_text" msgid="8847257251846779938">"Alle gegevens van deze app worden permanent verwijderd. Dit omvat alle bestanden, instellingen, accounts, databases, enzovoort."</string> <string name="dlg_ok" msgid="2402639055725653590">"OK"</string> @@ -1114,7 +1107,7 @@ <string name="join_many_items_middle" msgid="7556692394478220814">"<xliff:g id="ADDED_ITEM">%1$s</xliff:g>, <xliff:g id="REST_OF_ITEMS">%2$s</xliff:g>"</string> <string name="security_settings_billing_desc" msgid="8061019011821282358">"Deze app kan u kosten in rekening brengen:"</string> <string name="security_settings_premium_sms_desc" msgid="8734171334263713717">"Premium-sms verzenden"</string> - <string name="computing_size" msgid="1599186977475211186">"Berekenen…"</string> + <string name="computing_size" msgid="1599186977475211186">"Berekenen\u2026"</string> <string name="invalid_size_value" msgid="7563537715280712285">"Kan pakketgrootte niet berekenen."</string> <string name="empty_list_msg" msgid="5993162337235907160">"U heeft geen apps van derden geïnstalleerd."</string> <string name="version_text" msgid="9189073826278676425">"versie <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string> @@ -1142,20 +1135,16 @@ <string name="app_disable_notifications_dlg_title" msgid="7669264654851761857">"Meldingen uitschakelen?"</string> <string name="app_disable_notifications_dlg_text" msgid="5088484670924769845">"Als u meldingen voor deze app uitschakelt, mist u misschien belangrijke waarschuwingen en updates."</string> <string name="storageuse_settings_title" msgid="5657014373502630403">"Opslaggebruik"</string> - <string name="storageuse_settings_summary" msgid="3748286507165697834">"Gebruikte opslagruimte voor apps weergeven"</string> + <string name="storageuse_settings_summary" msgid="3748286507165697834">"Gebruikte opslagruimte voor apps tonen"</string> <string name="runningservices_settings_title" msgid="8097287939865165213">"Actieve services"</string> - <string name="runningservices_settings_summary" msgid="854608995821032748">"Services die momenteel actief zijn, weergeven en beheren"</string> + <string name="runningservices_settings_summary" msgid="854608995821032748">"Services die momenteel actief zijn, tonen en beheren"</string> <string name="service_restarting" msgid="2242747937372354306">"Opnieuw starten"</string> <string name="cached" msgid="1059590879740175019">"Gecacht achtergrondproces"</string> <string name="no_running_services" msgid="2059536495597645347">"Niets wordt uitgevoerd."</string> <string name="service_started_by_app" msgid="818675099014723551">"Gestart door app."</string> - <!-- no translation found for service_client_name (4037193625611815517) --> - <skip /> <string name="service_background_processes" msgid="6844156253576174488">"<xliff:g id="MEMORY">%1$s</xliff:g> vrij"</string> <string name="service_foreground_processes" msgid="7583975676795574276">"<xliff:g id="MEMORY">%1$s</xliff:g> gebr."</string> <string name="memory" msgid="6609961111091483458">"RAM"</string> - <!-- no translation found for service_process_name (4098932168654826656) --> - <skip /> <string name="running_process_item_user_label" msgid="3129887865552025943">"Gebruiker: <xliff:g id="USER_NAME">%1$s</xliff:g>"</string> <string name="running_process_item_removed_user_label" msgid="8250168004291472959">"Verwijderde gebruiker"</string> <string name="running_processes_item_description_s_s" msgid="5790575965282023145">"<xliff:g id="NUMPROCESS">%1$d</xliff:g> proces en <xliff:g id="NUMSERVICES">%2$d</xliff:g> service"</string> @@ -1225,7 +1214,7 @@ <string name="user_dict_settings_context_menu_delete_title" msgid="9140703913776549054">"Verwijderen"</string> <string name="user_dict_settings_empty_text" msgid="8165273379942105271">"Er staan geen woorden in het gebruikerswoordenboek. U kunt een woord toevoegen door de knop \'Toevoegen\' (+) aan te raken."</string> <string name="user_dict_settings_all_languages" msgid="6742000040975959247">"Voor alle talen"</string> - <string name="user_dict_settings_more_languages" msgid="7316375944684977910">"Meer talen..."</string> + <string name="user_dict_settings_more_languages" msgid="7316375944684977910">"Meer talen\u2026"</string> <string name="testing" msgid="6584352735303604146">"Testen"</string> <string name="testing_phone_info" product="tablet" msgid="193561832258534798">"Tabletinformatie"</string> <string name="testing_phone_info" product="default" msgid="8656693364332840056">"Telefooninformatie"</string> @@ -1246,7 +1235,7 @@ <string name="current_input_method" msgid="234072873286056438">"Standaard"</string> <string name="input_method_selector" msgid="4311213129681430709">"Selectie voor invoermethode"</string> <string name="input_method_selector_show_automatically_title" msgid="1001612945471546158">"Automatisch"</string> - <string name="input_method_selector_always_show_title" msgid="3891824124222371634">"Altijd weergeven"</string> + <string name="input_method_selector_always_show_title" msgid="3891824124222371634">"Altijd tonen"</string> <string name="input_method_selector_always_hide_title" msgid="7699647095118680424">"Altijd verbergen"</string> <string name="configure_input_method" msgid="1317429869771850228">"Invoermethoden instellen"</string> <string name="input_method_settings" msgid="5801295625486269553">"Instellingen"</string> @@ -1347,8 +1336,6 @@ <string name="battery_stats_wifi_running_label" msgid="3093545080361658269">"Wi-Fi"</string> <string name="battery_stats_wake_lock_label" msgid="1908942681902324095">"Ingeschakeld"</string> <string name="battery_stats_phone_signal_label" msgid="4137799310329041341">"Signaal mobiel netwerk"</string> - <!-- no translation found for battery_stats_last_duration (1535831453827905957) --> - <skip /> <string name="awake" msgid="387122265874485088">"Stand-bytijd apparaat"</string> <string name="wifi_on_time" msgid="6310209835617490616">"Wi-Fi op tijd"</string> <string name="bluetooth_on_time" msgid="6157799524996162271">"Wi-Fi op tijd"</string> @@ -1383,19 +1370,19 @@ <string name="battery_action_app_settings" msgid="4570481408106287454">"App-instellingen"</string> <string name="battery_action_display" msgid="7338551244519110831">"Scherminstellingen"</string> <string name="battery_action_wifi" msgid="2272741639606146903">"Wi-Fi-instellingen"</string> - <string name="battery_action_bluetooth" msgid="8374789049507723142">"Bluetooth-instellingen"</string> + <string name="battery_action_bluetooth" msgid="8374789049507723142">"Bluetoothinstellingen"</string> <string name="battery_desc_voice" msgid="8980322055722959211">"Accu gebruikt door spraakoproepen"</string> <string name="battery_desc_standby" product="tablet" msgid="6284747418668280364">"Accu gebruikt wanneer tablet inactief is"</string> <string name="battery_desc_standby" product="default" msgid="3009080001948091424">"Accu gebruikt wanneer telefoon inactief is"</string> <string name="battery_desc_radio" msgid="5479196477223185367">"Accu gebruikt door radio"</string> - <string name="battery_sugg_radio" msgid="8211336978326295047">"Schakel over naar de vliegmodus om energie te besparen in gebieden zonder mobiel bereik"</string> + <string name="battery_sugg_radio" msgid="8211336978326295047">"Schakel over naar de vliegtuigmodus om energie te besparen in gebieden zonder mobiel bereik"</string> <string name="battery_desc_display" msgid="5432795282958076557">"Accu gebruikt door scherm en achtergrondverlichting"</string> <string name="battery_sugg_display" msgid="3370202402045141760">"Verlaag de helderheid van het scherm en/of geef een kortere time-out voor het scherm op"</string> <string name="battery_desc_wifi" msgid="1702486494565080431">"Accu gebruikt door Wi-Fi"</string> - <string name="battery_sugg_wifi" msgid="2085605314976704287">"Schakel wifi uit wanneer u dit niet gebruikt of wanneer dit niet beschikbaar is"</string> - <string name="battery_desc_bluetooth" msgid="8069070756186680367">"Accu gebruikt door Bluetooth"</string> - <string name="battery_sugg_bluetooth_basic" msgid="1942935021750897422">"Schakel Bluetooth uit wanneer u deze functie niet gebruikt"</string> - <string name="battery_sugg_bluetooth_headset" msgid="4071352514714259230">"Probeer verbinding te maken met een ander Bluetooth-apparaat"</string> + <string name="battery_sugg_wifi" msgid="2085605314976704287">"Schakel Wi-Fi uit wanneer u dit niet gebruikt of wanneer dit niet beschikbaar is"</string> + <string name="battery_desc_bluetooth" msgid="8069070756186680367">"Accu gebruikt door bluetooth"</string> + <string name="battery_sugg_bluetooth_basic" msgid="1942935021750897422">"Schakel bluetooth uit wanneer u deze functie niet gebruikt"</string> + <string name="battery_sugg_bluetooth_headset" msgid="4071352514714259230">"Probeer verbinding te maken met een ander bluetoothapparaat"</string> <string name="battery_desc_apps" msgid="8530418792605735226">"Accu gebruikt door app"</string> <string name="battery_sugg_apps_info" msgid="6907588126789841231">"De app stoppen of verwijderen"</string> <string name="battery_sugg_apps_gps" msgid="7287643439298561315">"GPS handmatig beheren om te voorkomen dat de app dit gebruikt"</string> @@ -1456,13 +1443,13 @@ <string name="tts_general_section_title" msgid="4402572014604490502">"Algemeen"</string> <string name="gadget_title" msgid="5519037532720577836">"Energiebeheer"</string> <string name="gadget_toggle_wifi" msgid="2382963973155082629">"Wi-Fi-instelling bijwerken"</string> - <string name="gadget_toggle_bluetooth" msgid="7538903239807020826">"Bluetooth-instelling bijwerken"</string> + <string name="gadget_toggle_bluetooth" msgid="7538903239807020826">"Bluetoothinstelling bijwerken"</string> <string name="gadget_state_template" msgid="5156935629902649932">"<xliff:g id="ID_1">%1$s</xliff:g> <xliff:g id="ID_2">%2$s</xliff:g>"</string> <string name="gadget_state_on" msgid="6909119593004937688">"aan"</string> <string name="gadget_state_off" msgid="5220212352953066317">"uit"</string> <string name="gadget_state_turning_on" msgid="3395992057029439039">"inschakelen"</string> <string name="gadget_state_turning_off" msgid="2395546048102176157">"uitschakelen"</string> - <string name="gadget_wifi" msgid="5960290421313061434">"Wifi"</string> + <string name="gadget_wifi" msgid="5960290421313061434">"Wi-Fi"</string> <string name="gadget_bluetooth" msgid="8998572807378694410">"Bluetooth"</string> <string name="gadget_gps" msgid="1558173602059236567">"GPS"</string> <string name="gadget_sync" msgid="858895763714222152">"Synchronisatie"</string> @@ -1480,7 +1467,7 @@ <string name="credentials_reset" msgid="3239382277144980418">"Referenties wissen"</string> <string name="credentials_reset_summary" msgid="3369361230171260282">"Alle certificaten verwijderen"</string> <string name="trusted_credentials" msgid="4266945289534242402">"Vertrouwde id-gegevens"</string> - <string name="trusted_credentials_summary" msgid="6735221351155686632">"Vertrouwde CA-certificaten weergeven"</string> + <string name="trusted_credentials_summary" msgid="6735221351155686632">"Vertrouwde CA-certificaten tonen"</string> <string name="credentials_install_gesture_prompt" msgid="2207390278112395082">"Teken uw ontgrendelingspatroon"</string> <string name="credentials_install_gesture_explanation" msgid="7408921172253634829">"U moet uw ontgrendelingspatroon tekenen om de identificatie-installatie te bevestigen."</string> <string name="credentials_unlock" msgid="385427939577366499"></string> @@ -1502,7 +1489,7 @@ <string name="backup_section_title" msgid="7952232291452882740">"Back-up en herstel"</string> <string name="personal_data_section_title" msgid="7815209034443782061">"Persoonlijke gegevens"</string> <string name="backup_data_title" msgid="1239105919852668016">"Back-up maken van mijn gegevens"</string> - <string name="backup_data_summary" msgid="9157861529438245957">"Een back-up van gegevens voor apps, wifi-wachtwoorden en andere instellingen maken op de Google-servers"</string> + <string name="backup_data_summary" msgid="9157861529438245957">"Een back-up van gegevens voor apps, Wi-Fi-wachtwoorden en andere instellingen maken op de Google-servers"</string> <string name="backup_configure_account_title" msgid="3790872965773196615">"Back-upaccount"</string> <string name="backup_configure_account_default_summary" msgid="2436933224764745553">"Er is momenteel geen account ingesteld voor het opslaan van back-upgegevens"</string> <string name="auto_restore_title" msgid="5397528966329126506">"Automatisch terugzetten"</string> @@ -1514,7 +1501,7 @@ <string name="local_backup_password_toast_confirmation_mismatch" msgid="3495167398824569524">"Nieuw wachtwoord en bevestiging komen niet overeen."</string> <string name="local_backup_password_toast_validation_failure" msgid="5646377234895626531">"Instellen van back-upwachtwoord is mislukt"</string> <string name="backup_erase_dialog_title" msgid="1027640829482174106"></string> - <string name="backup_erase_dialog_message" msgid="7218566008912418809">"Weet u zeker dat u het maken van back-ups van uw wifi-wachtwoorden, bladwijzers, andere instellingen en gegevens voor apps wilt stoppen en alle kopieën op Google-servers wilt wissen?"</string> + <string name="backup_erase_dialog_message" msgid="7218566008912418809">"Weet u zeker dat u het maken van back-ups van uw Wi-Fi-wachtwoorden, bladwijzers, andere instellingen en gegevens voor apps wilt stoppen en alle kopieën op Google-servers wilt wissen?"</string> <string name="device_admin_settings_title" msgid="1335557832906433309">"Instellingen voor apparaatbeheer"</string> <string name="active_device_admin_msg" msgid="6930903262612422111">"Apparaatbeheerder"</string> <string name="remove_device_admin" msgid="3596845261596451437">"Deactiveren"</string> @@ -1532,7 +1519,7 @@ <string name="sound_category_system_title" msgid="1480844520622721141">"Systeem"</string> <string name="wifi_setup_title" msgid="661074868726906436">"Instellen van Wi-Fi"</string> <string name="wifi_setup_title_editing_network" msgid="7304321031985059969">"Verbinding maken met Wi-Fi-netwerk <xliff:g id="NETWORK_NAME">%s</xliff:g>"</string> - <string name="wifi_setup_title_connecting_network" msgid="3747859666621319757">"Verbinding maken met wifi-netwerk <xliff:g id="NETWORK_NAME">%s</xliff:g>..."</string> + <string name="wifi_setup_title_connecting_network" msgid="3747859666621319757">"Verbinding maken met Wi-Fi-netwerk <xliff:g id="NETWORK_NAME">%s</xliff:g>\u2026"</string> <string name="wifi_setup_title_connected_network" msgid="209755856836003839">"Verbonden met een Wi-Fi-netwerk <xliff:g id="NETWORK_NAME">%s</xliff:g>"</string> <string name="wifi_setup_title_add_network" msgid="6932651000151032301">"Een netwerk toevoegen"</string> <string name="wifi_setup_not_connected" msgid="6997432604664057052">"Geen verbinding"</string> @@ -1546,17 +1533,17 @@ <string name="wifi_setup_forget" msgid="2562847595567347526">"Vergeten"</string> <string name="wifi_setup_save" msgid="3659235094218508211">"Opslaan"</string> <string name="wifi_setup_cancel" msgid="3185216020264410239">"Annuleren"</string> - <string name="wifi_setup_status_scanning" msgid="5317003416385428036">"Netwerken scannen..."</string> + <string name="wifi_setup_status_scanning" msgid="5317003416385428036">"Netwerken scannen\u2026"</string> <string name="wifi_setup_status_select_network" msgid="7519563569903137003">"Raak een netwerk aan om hiermee verbinding te maken"</string> <string name="wifi_setup_status_existing_network" msgid="6394925174802598186">"Verbinding maken met bestaand netwerk"</string> <string name="wifi_setup_status_unsecured_network" msgid="8143046977328718252">"Verbinden met onbeveiligd netwerk"</string> <string name="wifi_setup_status_edit_network" msgid="4765340816724760717">"Geef de netwerkconfiguratie op"</string> <string name="wifi_setup_status_new_network" msgid="7468952850452301083">"Verbinding maken met nieuw netwerk"</string> - <string name="wifi_setup_status_connecting" msgid="4971421484401530740">"Verbinding maken..."</string> + <string name="wifi_setup_status_connecting" msgid="4971421484401530740">"Verbinding maken\u2026"</string> <string name="wifi_setup_status_proceed_to_next" msgid="6708250000342940031">"Doorgaan naar de volgende stap"</string> <string name="wifi_setup_status_eap_not_supported" msgid="5335338851032315905">"EAP wordt niet ondersteund."</string> - <string name="wifi_setup_eap_not_supported" msgid="595556546597351489">"U kunt een wifi-verbinding van het type EAP niet configureren tijdens het instellen. U kunt dit na het instellen doen via \'Instellingen\' > \'Draadloos en netwerken\'."</string> - <string name="wifi_setup_description_connecting" msgid="2793554932006756795">"Verbinding maken kan enkele minuten duren..."</string> + <string name="wifi_setup_eap_not_supported" msgid="595556546597351489">"U kunt een Wi-Fi-verbinding van het type EAP niet configureren tijdens het instellen. U kunt dit na het instellen doen via \'Instellingen\' > \'Draadloos en netwerken\'."</string> + <string name="wifi_setup_description_connecting" msgid="2793554932006756795">"Verbinding maken kan enkele minuten duren\u2026"</string> <string name="wifi_setup_description_connected" msgid="5235991893829582459">"Raak "<b>"Volgende"</b>" aan om door te gaan met de configuratie."\n\n"Raak "<b>"Terug"</b>" aan om verbinding te maken met een ander Wi-Fi-netwerk."</string> <string name="accessibility_sync_enabled" msgid="558480439730263116">"Synchronisatie is ingeschakeld"</string> <string name="accessibility_sync_disabled" msgid="1741194106479011384">"Synchroniseren uitgeschakeld"</string> @@ -1575,7 +1562,7 @@ <string name="sync_disabled" msgid="8511659877596511991">"Synchroniseren UIT"</string> <string name="sync_error" msgid="5060969083117872149">"Synchronisatiefout"</string> <string name="last_synced" msgid="4242919465367022234">"Laatst gesynchroniseerd: <xliff:g id="LAST_SYNC_TIME">%1$s</xliff:g>"</string> - <string name="sync_in_progress" msgid="5151314196536070569">"Nu synchroniseren…"</string> + <string name="sync_in_progress" msgid="5151314196536070569">"Nu synchroniseren\u2026"</string> <string name="settings_backup" msgid="2274732978260797031">"Back-up van instellingen maken"</string> <string name="settings_backup_summary" msgid="7916877705938054035">"Back-up maken van mijn instellingen"</string> <string name="sync_menu_sync_now" msgid="6154608350395805683">"Nu synchroniseren"</string> @@ -1599,8 +1586,7 @@ <string name="remove_account_failed" product="tablet" msgid="3086620478225952725">"Dit account is vereist voor sommige apps. U kunt het account alleen verwijderen door de tablet te herstellen naar de fabrieksinstellingen (al uw persoonlijke gegevens worden gewist). U kunt dit doen via \'Instellingen\' > \'Back-up en herstel\'."</string> <string name="remove_account_failed" product="default" msgid="6217238709175617517">"Dit account is vereist voor sommige apps. U kunt het account alleen verwijderen door de telefoon te herstellen naar de fabrieksinstellingen (al uw persoonlijke gegevens worden gewist). U kunt dit doen via \'Instellingen\' > \'Back-up en herstel\'."</string> <string name="provider_label" msgid="7724593781904508866">"Abonnementen doorvoeren"</string> - <!-- no translation found for sync_item_title (4782834606909853006) --> - <skip /> + <string name="sync_item_title"><xliff:g id="authority" example="Agenda">%s</xliff:g></string> <string name="cant_sync_dialog_title" msgid="8923508322291625282">"Kan niet handmatig synchroniseren"</string> <string name="cant_sync_dialog_message" msgid="1938380442159016449">"Synchroniseren is op dit moment uitgeschakeld voor dit item. Als u deze instelling wilt wijzigen, schakelt u achtergrondgegevens en automatisch synchroniseren tijdelijk in."</string> <string name="wimax_settings" msgid="1574837328738396794">"4G-instellingen"</string> @@ -1630,11 +1616,11 @@ <string name="strict_mode_summary" msgid="142834318897332338">"Knipperend scherm bij lange bewerkingen door apps"</string> <string name="pointer_location" msgid="6084434787496938001">"Cursorlocatie"</string> <string name="pointer_location_summary" msgid="840819275172753713">"Schermoverlay met huidige aanraakgegevens"</string> - <string name="show_touches" msgid="1356420386500834339">"Aanraakbewerkingen weergeven"</string> - <string name="show_touches_summary" msgid="6684407913145150041">"Visuele feedback voor aanraakbewerkingen weergeven"</string> - <string name="show_screen_updates" msgid="5470814345876056420">"Oppervlakupdates weergeven"</string> + <string name="show_touches" msgid="1356420386500834339">"Aanraakbewerkingen tonen"</string> + <string name="show_touches_summary" msgid="6684407913145150041">"Visuele feedback voor aanraakbewerkingen tonen"</string> + <string name="show_screen_updates" msgid="5470814345876056420">"Oppervlakupdates tonen"</string> <string name="show_screen_updates_summary" msgid="2569622766672785529">"Volledige vensteroppervlakken flashen bij updates"</string> - <string name="show_hw_screen_updates" msgid="5036904558145941590">"GPU-weergave-updates weergeven"</string> + <string name="show_hw_screen_updates" msgid="5036904558145941590">"GPU-weergave-updates tonen"</string> <string name="show_hw_screen_updates_summary" msgid="1115593565980196197">"Flash-weergaven in vensters indien getekend met de GPU"</string> <string name="show_hw_layers_updates" msgid="5645728765605699821">"Updaten hardwarelgn wrgvn"</string> <string name="show_hw_layers_updates_summary" msgid="5296917233236661465">"Hardwarelagen knipperen groen bij updates"</string> @@ -1649,8 +1635,8 @@ <string name="enable_traces_summary_all" msgid="3950139649125158247">"Alle sporen zijn momenteel ingeschakeld"</string> <string name="enable_opengl_traces_title" msgid="6790444011053219871">"OpenGL-sporen inschakelen"</string> <string name="debug_layout" msgid="5981361776594526155">"Indelingsgrenzen weerg."</string> - <string name="debug_layout_summary" msgid="2001775315258637682">"Clipgrenzen, marges en meer weergeven."</string> - <string name="show_cpu_usage" msgid="2389212910758076024">"CPU-gebruik weergeven"</string> + <string name="debug_layout_summary" msgid="2001775315258637682">"Clipgrenzen, marges en meer tonen."</string> + <string name="show_cpu_usage" msgid="2389212910758076024">"CPU-gebruik tonen"</string> <string name="show_cpu_usage_summary" msgid="2113341923988958266">"Schermoverlay met huidig CPU-gebruik"</string> <string name="force_hw_ui" msgid="6426383462520888732">"GPU-rendering afdwingen"</string> <string name="force_hw_ui_summary" msgid="5535991166074861515">"Gebruik van GPU voor 2D-tekening forceren"</string> @@ -1666,18 +1652,18 @@ <string name="immediately_destroy_activities" msgid="8366775083630234121">"Activiteiten niet opslaan"</string> <string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"Activiteit wissen zodra de gebruiker deze verlaat"</string> <string name="app_process_limit_title" msgid="4280600650253107163">"Achtergrondproceslimiet"</string> - <string name="show_all_anrs" msgid="28462979638729082">"Alle ANR\'s weergeven"</string> + <string name="show_all_anrs" msgid="28462979638729082">"Alle ANR\'s tonen"</string> <string name="show_all_anrs_summary" msgid="641908614413544127">"\'App reageert niet\' weerg. voor apps op achtergr."</string> <string name="data_usage_summary_title" msgid="3804110657238092929">"Datagebruik"</string> <string name="data_usage_cycle" msgid="5652529796195787949">"Gegevensgebruikcyclus"</string> <string name="data_usage_menu_roaming" msgid="8042359966835203296">"Gegevensroaming"</string> <string name="data_usage_menu_restrict_background" msgid="1989394568592253331">"Achtergrondgegevens beperken"</string> - <string name="data_usage_menu_split_4g" msgid="5322857680792601899">"4G-gebruik apart weergeven"</string> - <string name="data_usage_menu_show_wifi" msgid="8266875319417201085">"Wi-Fi-gebruik weergeven"</string> - <string name="data_usage_menu_show_ethernet" msgid="5181361208532314097">"Ethernet-gebruik weergeven"</string> + <string name="data_usage_menu_split_4g" msgid="5322857680792601899">"4G-gebruik apart tonen"</string> + <string name="data_usage_menu_show_wifi" msgid="8266875319417201085">"Wi-Fi-gebruik tonen"</string> + <string name="data_usage_menu_show_ethernet" msgid="5181361208532314097">"Ethernet-gebruik tonen"</string> <string name="data_usage_menu_metered" msgid="5056695223222541863">"Mobiele hotspots"</string> <string name="data_usage_menu_auto_sync" msgid="8203999775948778560">"Gegevens automatisch synchroniseren"</string> - <string name="data_usage_change_cycle" msgid="7776556448920114866">"Cyclus aanpassen..."</string> + <string name="data_usage_change_cycle" msgid="7776556448920114866">"Cyclus aanpassen\u2026"</string> <string name="data_usage_pick_cycle_day" msgid="4470796861757050966">"Dag van maand voor opnieuw instellen van gegevensgebruikcyclus:"</string> <string name="data_usage_empty" msgid="8621855507876539282">"Geen gegevens gebruikt tijdens deze periode."</string> <string name="data_usage_label_foreground" msgid="4938034231928628164">"Voorgrond"</string> @@ -1687,7 +1673,7 @@ <string name="data_usage_disable_mobile_limit" msgid="4644364396844393848">"Mobiele gegevenslimiet instellen"</string> <string name="data_usage_disable_4g_limit" msgid="6233554774946681175">"4G-gegevenslimiet instellen"</string> <string name="data_usage_disable_3g_limit" msgid="2558557840444266906">"2G-3G-gegevenslimiet instellen"</string> - <string name="data_usage_disable_wifi_limit" msgid="8575537650560665657">"Wifi-gegevenslimiet instellen"</string> + <string name="data_usage_disable_wifi_limit" msgid="8575537650560665657">"Wi-Fi-gegevenslimiet instellen"</string> <string name="data_usage_tab_wifi" msgid="1728851922959017766">"Wi-Fi"</string> <string name="data_usage_tab_ethernet" msgid="7298064366282319911">"Ethernet"</string> <string name="data_usage_tab_mobile" msgid="454140350007299045">"Mobiel"</string> @@ -1698,7 +1684,7 @@ <string name="data_usage_enable_mobile" msgid="986782622560157977">"Mobiele gegevens"</string> <string name="data_usage_enable_3g" msgid="6304006671869578254">"2G-/3G-gegevens"</string> <string name="data_usage_enable_4g" msgid="3635854097335036738">"4G-gegevens"</string> - <string name="data_usage_app_settings" msgid="8430240158135453271">"Instellingen voor app weergeven"</string> + <string name="data_usage_app_settings" msgid="8430240158135453271">"Instellingen voor app tonen"</string> <string name="data_usage_app_restrict_background" msgid="9149728936265100841">"Achtergrondgegevens beperken"</string> <string name="data_usage_app_restrict_background_summary" msgid="518658001418490405">"Achtergrondgegevens in mobiele netwerken uitschakelen. Zo mogelijk worden niet-mobiele netwerken gebruikt."</string> <string name="data_usage_app_restrict_background_summary_disabled" msgid="7401927377070755054">"Als u achtergrondgegevens wilt beperken voor deze app, moet u eerst een mobiele gegevenslimiet instellen."</string> @@ -1719,9 +1705,9 @@ <string name="data_usage_limit_dialog_mobile" product="tablet" msgid="3893348029612821262">"Uw mobiele gegevensverbinding wordt uitgeschakeld wanneer de gespecificeerde limiet is bereikt."\n\n"Aangezien dit gegevensverbruik wordt gemeten door uw tablet en uw provider tot een ander totaal kan komen, kunt u het beste een voorzichtige grens instellen."</string> <string name="data_usage_limit_dialog_mobile" product="default" msgid="7962145861903746827">"Uw mobiele gegevensverbinding wordt uitgeschakeld wanneer de gespecificeerde limiet is bereikt."\n\n"Aangezien dit gegevensverbruik wordt gemeten door uw telefoon en uw provider tot een ander totaal kan komen, kunt u het beste een voorzichtige grens instellen."</string> <string name="data_usage_restrict_background_title" msgid="2201315502223035062">"Achtergrondgegevens beperken?"</string> - <string name="data_usage_restrict_background" msgid="6387252645350792955">"Als u het gebruik van mobiele achtergrondgegevens beperkt, werken sommige apps en services niet, tenzij u bent verbonden met een wifi-netwerk."</string> - <string name="data_usage_restrict_background_multiuser" product="tablet" msgid="2609163428726042269">"Als u mobiel gegevensgebruik op de achtergrond beperkt, werken sommige apps en services niet, tenzij u verbonden bent met een wifi-netwerk."\n\n"Deze instelling is van invloed op alle gebruikers van deze tablet."</string> - <string name="data_usage_restrict_background_multiuser" product="default" msgid="8025473178302056174">"Als u mobiel gegevensgebruik op de achtergrond beperkt, werken sommige apps en services niet, tenzij u verbonden bent met een wifi-netwerk."\n\n"Deze instelling is van invloed op alle gebruikers van deze telefoon."</string> + <string name="data_usage_restrict_background" msgid="6387252645350792955">"Als u het gebruik van mobiele achtergrondgegevens beperkt, werken sommige apps en services niet, tenzij u bent verbonden met een Wi-Fi-netwerk."</string> + <string name="data_usage_restrict_background_multiuser" product="tablet" msgid="2609163428726042269">"Als u mobiel gegevensgebruik op de achtergrond beperkt, werken sommige apps en services niet, tenzij u verbonden bent met een Wi-Fi-netwerk."\n\n"Deze instelling is van invloed op alle gebruikers van deze tablet."</string> + <string name="data_usage_restrict_background_multiuser" product="default" msgid="8025473178302056174">"Als u mobiel gegevensgebruik op de achtergrond beperkt, werken sommige apps en services niet, tenzij u verbonden bent met een Wi-Fi-netwerk."\n\n"Deze instelling is van invloed op alle gebruikers van deze telefoon."</string> <string name="data_usage_sweep_warning" msgid="6387081852568846982"><font size="21">"<xliff:g id="NUMBER">^1</xliff:g>"</font>" "<font size="9">"<xliff:g id="UNIT">^2</xliff:g>"</font>\n<font size="12">"waarschuwing"</font></string> <string name="data_usage_sweep_limit" msgid="860566507375933039"><font size="21">"<xliff:g id="NUMBER">^1</xliff:g>"</font>" "<font size="9">"<xliff:g id="UNIT">^2</xliff:g>"</font>\n<font size="12">"limiet"</font></string> <string name="data_usage_uninstalled_apps" msgid="614263770923231598">"Verwijderde apps"</string> @@ -1731,10 +1717,10 @@ <string name="data_usage_total_during_range_mobile" product="tablet" msgid="5961720793603268572">"<xliff:g id="RANGE">%2$s</xliff:g>: ongeveer <xliff:g id="TOTAL">%1$s</xliff:g> gebruikt volgens uw tablet. Uw provider kan dit anders berekenen."</string> <string name="data_usage_total_during_range_mobile" product="default" msgid="1625833170144610767">"<xliff:g id="RANGE">%2$s</xliff:g>: ongeveer <xliff:g id="TOTAL">%1$s</xliff:g> gebruikt volgens uw telefoon. Uw provider kan dit anders berekenen."</string> <string name="data_usage_metered_title" msgid="6204750602856383278">"Mobiele hotspots"</string> - <string name="data_usage_metered_body" msgid="2446827764036316131">"Selecteer de wifi-netwerken die mobiele hotspots zijn. Het gebruik van deze netwerken op de achtergrond kan in apps worden beperkt. Apps kunnen ook waarschuwen voordat deze netwerken worden gebruikt voor grote downloads."</string> + <string name="data_usage_metered_body" msgid="2446827764036316131">"Selecteer de Wi-Fi-netwerken die mobiele hotspots zijn. Het gebruik van deze netwerken op de achtergrond kan in apps worden beperkt. Apps kunnen ook waarschuwen voordat deze netwerken worden gebruikt voor grote downloads."</string> <string name="data_usage_metered_mobile" msgid="5423305619126978393">"Mobiele netwerken"</string> - <string name="data_usage_metered_wifi" msgid="4151511616349458705">"Wifi-netwerken"</string> - <string name="data_usage_metered_wifi_disabled" msgid="7566012564261138417">"Schakel wifi in om mobiele hotspots te selecteren."</string> + <string name="data_usage_metered_wifi" msgid="4151511616349458705">"Wi-Fi-netwerken"</string> + <string name="data_usage_metered_wifi_disabled" msgid="7566012564261138417">"Schakel Wi-Fi in om mobiele hotspots te selecteren."</string> <string name="cryptkeeper_emergency_call" msgid="198578731586097145">"Noodoproep"</string> <string name="cryptkeeper_return_to_call" msgid="5613717339452772491">"Terug naar gesprek"</string> <string name="vpn_name" msgid="4689699885361002297">"Naam"</string> @@ -1747,7 +1733,7 @@ <string name="vpn_ipsec_user_cert" msgid="6880651510020187230">"IPSec-gebruikerscertificaat"</string> <string name="vpn_ipsec_ca_cert" msgid="91338213449148229">"CA-certificaat voor IPSec"</string> <string name="vpn_ipsec_server_cert" msgid="6599276718456935010">"IPSec-servercertificaat"</string> - <string name="vpn_show_options" msgid="7182688955890457003">"Geavanceerde opties weergeven"</string> + <string name="vpn_show_options" msgid="7182688955890457003">"Geavanceerde opties tonen"</string> <string name="vpn_search_domains" msgid="5391995501541199624">"DNS-zoekdomeinen"</string> <string name="vpn_dns_servers" msgid="5570715561245741829">"DNS-servers (bijv. 8.8.8.8)"</string> <string name="vpn_routes" msgid="3818655448226312232">"Doorstuurroutes (bijv. 10.0.0.0 / 8)"</string> @@ -1801,7 +1787,7 @@ <string name="user_owner" msgid="3879126011135546571">"Eigenaar"</string> <string name="user_nickname" msgid="5148818000228994488">"Bijnaam"</string> <string name="user_add_user_title" msgid="3961861593718285403">"Nieuwe gebruiker toevoegen"</string> - <string name="user_add_user_message_long" msgid="2278524063301283723">"U kunt dit apparaat met andere mensen delen door extra gebruikers te maken. Elke gebruiker heeft een eigen ruimte die kan worden aangepast met eigen apps, een achtergrond, enzovoort. Gebruikers kunnen ook tabletinstellingen aanpassen, zoals wifi, die effect hebben op alle gebruikers."\n\n"Nadat u een nieuwe gebruiker heeft gemaakt, moet die persoon een configuratieproces volgen."\n\n"Elke gebruiker kan namens alle andere gebruikers bijgewerkte app-machtigingen accepteren."</string> + <string name="user_add_user_message_long" msgid="2278524063301283723">"U kunt dit apparaat met andere mensen delen door extra gebruikers te maken. Elke gebruiker heeft een eigen ruimte die kan worden aangepast met eigen apps, een achtergrond, enzovoort. Gebruikers kunnen ook tabletinstellingen aanpassen, zoals Wi-Fi, die effect hebben op alle gebruikers."\n\n"Nadat u een nieuwe gebruiker heeft gemaakt, moet die persoon een configuratieproces volgen."\n\n"Elke gebruiker kan namens alle andere gebruikers bijgewerkte app-machtigingen accepteren."</string> <string name="user_add_user_message_short" msgid="3310933423737035428">"Nadat u een nieuwe gebruiker heeft gemaakt, moet die persoon een configuratieproces volgen."\n\n"Elke gebruiker kan namens alle andere gebruikers bijgewerkte app-machtigingen accepteren."</string> <string name="user_setup_dialog_title" msgid="1765794166801864563">"Gebruiker nu instellen?"</string> <string name="user_setup_dialog_message" msgid="614037943337008555">"Zorg ervoor dat de persoon de tablet kan overnemen om zijn of haar eigen gedeelte te configureren"</string> @@ -1817,17 +1803,555 @@ <string name="user_confirm_remove_self_message" product="default" msgid="5391888073786090274">"U raakt uw opslagruimte en gegevens op deze telefoon kwijt. U kunt deze actie niet ongedaan maken."</string> <string name="user_confirm_remove_message" product="tablet" msgid="4610106937214870034">"De opslagruimte en gegevens van deze gebruiker verdwijnen van deze tablet. U kunt deze actie niet ongedaan maken."</string> <string name="user_confirm_remove_message" product="default" msgid="8130264611683731142">"De opslagruimte en gegevens van deze gebruiker verdwijnen van deze telefoon. U kunt deze actie niet ongedaan maken."</string> - <string name="user_adding_new_user" msgid="1521674650874241407">"Nieuwe gebruiker toevoegen…"</string> + <string name="user_adding_new_user" msgid="1521674650874241407">"Nieuwe gebruiker toevoegen\u2026"</string> <string name="user_delete_user_description" msgid="3158592592118767056">"Gebruiker verwijderen"</string> <string name="user_delete_button" msgid="5131259553799403201">"Verwijderen"</string> <string name="global_change_warning" product="tablet" msgid="8045013389464294039">"Deze instelling is van invloed op alle gebruikers van deze tablet."</string> <string name="global_change_warning" product="default" msgid="2461264421590324675">"Deze instelling is van invloed op alle gebruikers van deze telefoon."</string> <string name="global_locale_change_title" msgid="5956281361384221451">"Taal wijzigen"</string> <string name="global_font_change_title" msgid="1887126466191012035">"Lettergrootte wijzigen"</string> - <string name="app_notifications_switch_label" msgid="9124072219553687583">"Meldingen weergeven"</string> + <string name="app_notifications_switch_label" msgid="9124072219553687583">"Meldingen tonen"</string> <string name="help_label" msgid="1107174367904110532">"Help"</string> <string name="user_account_title" msgid="1127193807312271167">"Account voor inhoud"</string> <string name="user_picture_title" msgid="7297782792000291692">"Foto-ID"</string> <string name="cell_broadcast_settings" msgid="8415582011920085222">"Cell broadcasts"</string> - <string name="cell_broadcast_settings_summary" msgid="3301339398950905913">"Selecteer de typen noodoproepen die moeten worden weergegeven."</string> + <string name="cell_broadcast_settings_summary" msgid="3301339398950905913">"Selecteer de typen noodoproepen die moeten worden getoond."</string> + + <!-- CYANOGENMOD EDITS --> + <string name="font_size_preview_text">Pa\'s wijze lynx bezag vroom het fikse aquaduct.</string> + <string name="default_date_format"><xliff:g id="default_date_format">dd/MM/yyyy</xliff:g></string> + <string name="intent_sender_data_label"><xliff:g id="data">Gegevens:</xliff:g></string> + <string name="debug_intent_sender_label">Foutopsporing toepassen op intent-verzender</string> + <string name="wifi_setting_countrycode_title">Wi-Fi-regiocode</string> + <string name="wifi_setting_countrycode_summary">Regiocode opgeven voor Wi-Fi</string> + <string name="wifi_setting_countrycode_error">Kan regiocode niet instellen</string> + <string name="status_imei">IMEI</string> + <string name="status_imei_sv">IMEISV</string> + <string name="testing_sim_toolkit">SIM-toolkit</string> + <string name="root_access">Root-toegang</string> + <string name="root_access_warning_title">Root-toegang toestaan?</string> + <string name="root_access_warning_message">Root-toegang toestaan kan zeer gevaarlijk zijn en kan uw systeem onveilig maken</string> + <string name="root_access_none">Uitgeschakeld</string> + <string name="root_access_apps">Alleen apps</string> + <string name="root_access_adb">Alleen ADB</string> + <string name="root_access_all">Apps en ADB</string> + <string name="ok">OK</string> + <string name="quiet_hours_title">Stille uren</string> + <string name="quiet_hours_summary">Uren instellen waarin apparaat stil moet zijn</string> + <string name="quiet_hours_note_title">Let op</string> + <string name="quiet_hours_note_summary">Inkomende oproepen zijn niet onderhevig aan deze instellingen</string> + <string name="quiet_hours_enabled">Inschakelen</string> + <string name="quiet_hours_enabled_on">Stille uren is ingeschakeld</string> + <string name="quiet_hours_enabled_off">Stille uren is uitgeschakeld</string> + <string name="quiet_hours_start">Begin</string> + <string name="quiet_hours_start_summary">Begintijd stille uren</string> + <string name="quiet_hours_end">Einde</string> + <string name="quiet_hours_end_summary">Eindtijd stille uren</string> + <string name="quiet_hours_mute">Meldingsgeluid dempen</string> + <string name="quiet_hours_mute_on">Meldingen zijn zonder geluid</string> + <string name="quiet_hours_mute_off">Systeeminstelling wordt gebruikt</string> + <string name="quiet_hours_still">Trillen uitschakelen</string> + <string name="quiet_hours_still_on">Apparaat trilt niet</string> + <string name="quiet_hours_still_off">Systeeminstelling wordt gebruikt</string> + <string name="quiet_hours_dim">Meldingsled uitschakelen</string> + <string name="quiet_hours_dim_on">Meldingsled is uitgeschakeld</string> + <string name="quiet_hours_dim_off">Systeeminstelling wordt gebruikt</string> + <string name="quiet_hours_haptic">Haptische feedback uitschakelen</string> + <string name="quiet_hours_haptic_on">Haptische feedback is uitgeschakeld</string> + <string name="quiet_hours_haptic_off">Systeeminstelling wordt gebruikt</string> + <string name="quiet_hours_active_from">Actief van</string> + <string name="quiet_hours_active_to">tot</string> + <string name="start_time_title">Begin</string> + <string name="end_time_title">Einde</string> + <string name="device_hostname">Hostnaam apparaat</string> + <string name="mod_version">CyanogenMod-versie</string> + <string name="mod_version_default">Onbekend</string> + <string name="build_date">Build-datum</string> + <string name="build_date_default">2012-01-01-0000</string> + <string name="cpu_info">CPU</string> + <string name="mem_info">Geheugen</string> + <string name="anonymous_statistics_title">Statistieken</string> + <string name="anonymous_statistics_summary">Help mee met het verbeteren van CyanogenMod door anonieme statistieke te versturen</string> + <string name="anonymous_statistics_warning_title">Over</string> + <string name="anonymous_statistics_warning">Door de statistieken te verzenden, worden anonieme gegevens naar de ontwikkelaars van CyanogenMod verzonden tijdens het opstarten om unieke installaties te volgen. In de gegevens zit een uniek id-nummer, dat uw privacy niet schendt.\nOm een voorbeeld te zien, raakt u \'Voorbeeld van gegevens\' aan.\nVoor meer informatie raakt u \'Lees meer\' aan.\nHebben wij u niet kunnen overtuigen, dan raakt u \'Annuleren\' aan.</string> + <string name="enable_reporting_title">Statistieken verzenden</string> + <string name="preview_data_title">Voorbeeld van gegevens</string> + <string name="view_stats_title">Statistieken tonen</string> + <string name="anonymous_learn_more">Lees meer</string> + <string name="anonymous_notification_desc">Statistieken in-/uitschakelen</string> + <string name="preview_id_title">Uniek id</string> + <string name="preview_device_title">Apparaat</string> + <string name="preview_version_title">Versie</string> + <string name="preview_country_title">Land</string> + <string name="preview_carrier_title">Provider</string> + <string name="header_category_interface">UITERLIJK</string> + <string name="launcher_settings_title">Launcher</string> + <string name="themes_settings_title">Thema\'s</string> + <string name="system_settings_title">Systeem</string> + <string name="system_interface_title">Systeemuiterlijk</string> + <string name="notification_drawer_title">Meldingspaneel</string> + <string name="lock_screen_title">Vergrendelscherm</string> + <string name="lockscreen_target_info">Sleep de schijf naar een plaats om een snelkoppeling toe te wijzen</string> + <string name="lockscreen_target_title">Snelkoppelingen</string> + <string name="lockscreen_target_summary">Snelkoppelingen op het vergrendelscherm beheren</string> + <string name="lockscreen_target_reset">Vergrendelschermsnelkoppelingen hersteld naar standaardwaarden</string> + <string name="lockscreen_target_save">Vergrendelschermsnelkoppelingen opgeslagen</string> + <string name="lockscreen_target_reset_title">Herstellen</string> + <string name="lockscreen_target_reset_message">Alle gemaakte snelkoppelingen verwijderen en standaardwaarden herstellen?</string> + <string name="lockscreen_target_empty">Niet toegewezen</string> + <string name="lockscreen_target_edit_title">Snelkoppeling wijzigen</string> + <string name="lockscreen_target_edit_msg">Gewenste app/activiteit en bijbehorend pictogram wijzigen</string> + <string name="lockscreen_vibrate_enabled_title">Trillen</string> + <string name="lockscreen_vibrate_enabled_head">Trillen bij ontgrendelen</string> + <string name="lockscreen_battery_status_title">Batterijstatus</string> + <string name="lockscreen_battery_status_charging">Alleen bij opladen</string> + <string name="lockscreen_battery_status_alwayson">Altijd zichtbaar</string> + <string name="profiles_settings_title">Profielen</string> + <string name="profiles_general_title">Algemeen</string> + <string name="profiles_add">Toevoegen</string> + <string name="profile_menu_delete">Verwijderen</string> + <string name="profile_settings_title">Profiel</string> + <string name="profile_empty_list_profiles_off">Om systeemprofielen te gebruiken, schakelt u \'Profielen\' in</string> + <string name="add_profile_dialog_title">Nieuw profiel aanmaken</string> + <string name="profile_name_title">Naam</string> + <string name="profile_profile_name_prompt">Naam invoeren voor nieuw profiel</string> + <string name="menu_new_profile">Nieuw profiel</string> + <string name="menu_new_profile_summary">Nieuw profiel toevoegen en instellen</string> + <string name="new_profile_name"><nieuw profiel></string> + <string name="rename_dialog_title">Naam wijzigen</string> + <string name="rename_dialog_message">Nieuwe naam invoeren</string> + <string name="duplicate_profile_name">Naam bestaat al</string> + <string name="duplicate_appgroup_name">Naam bestaat al</string> + <string name="profile_reset_title">Herstellen</string> + <string name="profile_reset_message">Alle gemaakte profielen en app-groepen verwijderen en standaardwaarden herstellen?</string> + <string name="profile_delete_confirm">Dit profiel verwijderen?</string> + <string name="profile_app_delete_confirm">Deze app verwijderen?</string> + <string name="profile_cannot_delete">Een actief profiel kan niet worden verwijderd</string> + <string name="profile_connectionoverrides_title">Verbindingen instellen</string> + <string name="profile_volumeoverrides_title">Volume instellen</string> + <string name="profile_vibratoroverrides_title">Trillen instellen</string> + <string name="connection_state_disabled">Uitgeschakeld</string> + <string name="connection_state_enabled">Ingeschakeld</string> + <string name="volume_override_summary">Ingesteld op</string> + <string name="vibrator_state_disabled">Uitgeschakeld</string> + <string name="vibrator_state_enabled">Ingeschakeld</string> + <string name="vibrator_state_silent">Alleen in stille modus</string> + <string name="profile_profiles_manage">Profielen</string> + <string name="profile_profile_manage">Profiel beheren</string> + <string name="profile_applist_manage">App-lijst</string> + <string name="profile_appgroups_manage">App-groepen</string> + <string name="profile_appgroup_manage">App-groep beheren</string> + <string name="profile_settings">Profielinstellingen</string> + <string name="profile_name">Naam</string> + <string name="sound_mode">Meldingsstand</string> + <string name="ringer_mode">Beltoonstand</string> + <string name="lights_mode">Meldingsled</string> + <string name="vibrate_mode">Trilstand</string> + <string name="choose_soundtone">Meldingstoon kiezen</string> + <string name="choose_ringtone">Beltoon kiezen</string> + <string name="soundtone_title">Meldingstoon</string> + <string name="profile_appgroups_title">App-groepen</string> + <string name="profile_applist_title">Apps</string> + <string name="profile_new_appgroup">Nieuwe app-groep</string> + <string name="profile_delete_appgroup">Deze app-groep verwijderen?</string> + <string name="profile_appgroup_name_prompt">Naam invoeren voor nieuwe app-groep</string> + <string name="profile_appgroup_name_title">Naam</string> + <string name="profile_add_app">App toevoegen</string> + <string name="profile_delete_app">App verwijderen</string> + <string name="profile_choose_app">App kiezen</string> + <string name="profile_settings_header">Profielinstellingen</string> + <string name="profile_system_settings_title">Systeeminstellingen</string> + <string name="profile_lockmode_title">Vergrendelschermtype</string> + <string name="profile_lockmode_default">Standaard</string> + <string name="profile_lockmode_insecure">Onveilig</string> + <string name="profile_lockmode_disabled">Uitgeschakeld</string> + <string name="profile_lockmode_default_summary">Systeemstandaard gebruiken</string> + <string name="profile_lockmode_insecure_summary">Onveilig vergrendelscherm gebruiken</string> + <string name="profile_lockmode_disabled_summary">Vergrendelscherm uitgeschakeld</string> + <string name="profile_airplanemode_title">Vliegtuigmodus</string> + <string name="profile_disable_screen_lock_summary">Vergrendelschermbeveiliging uitschakelen bij dit profiel</string> + <string name="vibrator_type_ringer">Oproepen</string> + <string name="vibrator_type_notification">Meldingen</string> + <string name="possibleButtons">Mogelijke knoppen</string> + <string name="toggleWifi">Wi-Fi</string> + <string name="toggleWifiAp">Draagbare Wi-Fi hotspot</string> + <string name="toggleBluetooth">Bluetooth</string> + <string name="toggleGPS">GPS</string> + <string name="toggleData">Mobiele gegevens</string> + <string name="toggleSync">Gegevenssynchronisatie</string> + <string name="toggle2g3g">2G/3G</string> + <string name="toggleSound">Belstand</string> + <string name="toggleBrightness">Helderheid</string> + <string name="toggleAutoRotate">Scherm automatisch draaien</string> + <string name="toggleScreenTimeout">Schermtime-out</string> + <string name="toggleAirplane">Vliegtuigmodus</string> + <string name="toggleFlashlight">Zaklamp</string> + <string name="toggleLockScreen">Vergrendelscherm</string> + <string name="toggleWimax">WiMAX</string> + <string name="screen_security_category">Schermbeveiliging</string> + <string name="screen_security_title">Vergrendelscherm</string> + <string name="screen_security_summary">Vergrendelschermbeveiliging en -vertragingen beheren</string> + <string name="additional_options_title">Extra opties</string> + <string name="unlock_menu_unlock_title">Menu-ontgrendeling</string> + <string name="unlock_menu_unlock_summary">Ontgrendelen door op de menuknop te drukken</string> + <string name="unlock_home_unlock_title">Thuis-ontgrendeling</string> + <string name="unlock_home_unlock_summary">Ontgrendelen door op de thuisknop te drukken</string> + <string name="unlock_quick_unlock_control_title">Snel ontgrendelen</string> + <string name="unlock_quick_unlock_control_summary">Automatisch ontgrendelen als uw pincode/wachtwoord correct is ingevoerd</string> + <string name="delay_and_timeout_title">Vergrendelingsvertraging</string> + <string name="slide_lock_delay_title">Vertraging schermvergrendeling</string> + <string name="slide_lock_timeout_delay_title">Vertraging na time-out</string> + <string name="slide_lock_screenoff_delay_title">Vertraging na uitschakelen</string> + <string name="slide_lock_delay_none">Geen</string> + <string name="slide_lock_delay_1s">1 seconde</string> + <string name="slide_lock_delay_5s">5 seconden</string> + <string name="slide_lock_delay_10s">10 seconden</string> + <string name="slide_lock_delay_15s">15 seconden</string> + <string name="slide_lock_delay_30s">30 seconden</string> + <string name="slide_lock_delay_1m">1 minuut</string> + <string name="slide_lock_delay_5m">5 minuten</string> + <string name="slide_lock_delay_10m">10 minuten</string> + <string name="slide_lock_delay_30m">30 minuten</string> + <string name="performance_settings_title">Prestaties</string> + <string name="performance_settings_warning_title">Ga voorzichtig te werk</string> + <string name="performance_settings_warning">Deze instellingen zijn experimenteel en kunnen leiden tot instabiliteit, crashes, gegevensverlies of hardwareschade.\n\nMeld geen fouten aan de ontwikkelaars als deze instellingen veranderd zijn.</string> + <string name="processor_title">Processor</string> + <string name="processor_summary">Governor en kloksnelheid wijzigen</string> + <string name="cpu_cur_freq_title">Huidige kloksnelheid</string> + <string name="cpu_governors_title">Governor</string> + <string name="cpu_governors_summary">%S</string> + <string name="cpu_min_freq_title">Minimale kloksnelheid</string> + <string name="cpu_min_freq_summary">%s</string> + <string name="cpu_max_freq_title">Maximale kloksnelheid</string> + <string name="cpu_max_freq_summary">%s</string> + <string name="cpu_set_on_boot">Instellen tijdens opstarten</string> + <string name="cpu_set_on_boot_summary">Instellingen herstellen tijdens opstarten</string> + <string name="io_scheds_title">In-/uitvoerscheduler</string> + <string name="io_scheds_summary">In-/uitvoerscheduler wijzigen</string> + <string name="io_sched_title">In-/uitvoerscheduler</string> + <string name="io_sched_summary">%S</string> + <string name="io_sched_set_on_boot">Instellen tijdens opstarten</string> + <string name="io_sched_set_on_boot_summary">Instelling herstellen tijdens opstarten</string> + <string name="memory_management_title">Geheugenbeheer</string> + <string name="memory_management_summary">Geheugengebruik aanpassen om de systeemprestaties te veranderen</string> + <string name="pref_zram_title">zRam</string> + <string name="pref_zram_summary">Geheugen comprimeren voor meer virtuele capaciteit (herstart vereist)</string> + <string name="pref_ksm_title">Kernel SamePage Merging (KSM)</string> + <string name="pref_ksm_summary">Gelijke geheugengedeelten delen voor kleiner geheugengebruik en prestatieverbeteringen</string> + <string name="pref_purgeable_assets_title">Assets wissen toestaan</string> + <string name="pref_purgeable_assets_summary">Wissen van assets in bitmapgeheugen voor meer vrij geheugen indien nodig (herstart vereist)</string> + <string name="pref_use_dithering_title">Verbeteringen aan grafisch oppervlak</string> + <string name="dithering_no_dither">Rastering uitschakelen</string> + <string name="dithering_color_banding">Colorbanding tegengaan (standaard)</string> + <string name="dithering_blur_effect">Colorbanding en blur-effect tegengaan</string> + <string name="pref_use_16bpp_alpha_title">16 bits-transparantie</string> + <string name="pref_use_16bpp_alpha_summary">Betere grafische prestaties ten koste van de kwaliteit en kan zorgen voor visuele fouten (herstart vereist)</string> + <string name="display_rotation_title">Scherm draaien</string> + <string name="display_rotation_disabled">Uitgeschakeld</string> + <string name="display_rotation_unit">graden</string> + <string name="display_rotation_category_title">Draaistanden</string> + <string name="display_rotation_0_title">0 graden</string> + <string name="display_rotation_90_title">90 graden</string> + <string name="display_rotation_180_title">180 graden</string> + <string name="display_rotation_270_title">270 graden</string> + <string name="picker_activities">Activiteiten</string> + <string name="select_custom_app_title">Aangepaste app kiezen</string> + <string name="select_custom_activity_title">Aangepaste activiteit kiezen</string> + <string name="icon_picker_choose_icon_title">Pictogram kiezen</string> + <string name="icon_picker_alarm">Alarm</string> + <string name="icon_picker_browser">Browser</string> + <string name="icon_picker_calendar">Agenda</string> + <string name="icon_picker_camera">Camera</string> + <string name="icon_picker_chrome">Chrome</string> + <string name="icon_picker_email">E-mail</string> + <string name="icon_picker_email2">E-mail (Holo)</string> + <string name="icon_picker_facebook">Facebook</string> + <string name="icon_picker_gallery">Galerij</string> + <string name="icon_picker_google_small">Google (klein)</string> + <string name="icon_picker_googleplus">Google+</string> + <string name="icon_picker_googletalk">Talk</string> + <string name="icon_picker_maps">Maps</string> + <string name="icon_picker_movie">Play Movies & TV</string> + <string name="icon_picker_music">Play Music</string> + <string name="icon_picker_nav_normal">Navigatie</string> + <string name="icon_picker_phone">Telefoon</string> + <string name="icon_picker_podcast">Podcast</string> + <string name="icon_picker_rss">RSS</string> + <string name="icon_picker_search">Zoeken</string> + <string name="icon_picker_sms">Berichten</string> + <string name="icon_picker_twitter">Twitter</string> + <string name="icon_picker_title">Pictogrambron kiezen</string> + <string name="icon_picker_system_icons_title">Systeempictogrammen</string> + <string name="icon_picker_gallery_title">Galerij</string> + <string name="icon_picker_pack_title">Pictogrammenpakket</string> + <string name="increasing_ring_title">In volume toenemende beltoon</string> + <string name="checkbox_increasing_ring">Inschakelen</string> + <string name="increasing_ring_min_volume_title">Beginvolume beltoon</string> + <string name="increasing_ring_volume_notice"> +Let op:\nAangezien het beginvolume hoger is ingesteld dan het beltoonvolume, wordt de beltoon afgespeeld met het beltoonvolume.</string> + <string name="increasing_ring_interval_title">Toename-interval</string> + <string name="increasing_ring_interval_eachring">Bij elke rinkel</string> + <string name="increasing_ring_interval_half_second">0,5 seconde</string> + <string name="increasing_ring_interval_1second">1 seconde</string> + <string name="increasing_ring_interval_2seconds">2 seconden</string> + <string name="increasing_ring_interval_3seconds">3 seconden</string> + <string name="increasing_ring_interval_5seconds">5 seconden</string> + <string name="increasing_ring_interval_10seconds">10 seconden</string> + <string name="profile_write_nfc_tag">Schrijven naar NFC-tag</string> + <string name="profile_write_touch_tag">Raak tag aan om te schrijven</string> + <string name="profile_write_success">Tag succesvol geschreven</string> + <string name="profile_write_failed">Tag schrijven mislukt</string> + <string name="profile_selected">Geselecteerd profiel: %1$s</string> + <string name="profile_nfc_text">Een profiel naar een NFC-tag schrijven staat u toe om de tag te raken om dat profiel te kiezen. Een tweede keer raken selecteert het vorig gekozen profiel.</string> + <string name="profile_unknown_nfc_tag">Onbekend profiel</string> + <string name="profile_add_nfc_text">Deze NFC-tag verwijst naar een onbekend profiel. Door deze NFC-tag toe te wijzen aan een bestaand profiel wordt het kiezen van het profiel in de toekomst toegestaan.</string> + <string name="profile_select">Profiel kiezen</string> + <string name="link_volume_ringtones">Volumes linken</string> + <string name="link_volume_mutes">Stille standen linken</string> + <string name="notification_light_general_title">Algemeen</string> + <string name="notification_light_applist_title">Apps</string> + <string name="notification_light_phonelist_title">Telefoon</string> + <string name="notification_light_use_custom">Aangepaste waarden gebruiken</string> + <string name="notification_light_enabled">Ingeschakeld</string> + <string name="notification_light_disabled">Uitgeschakeld</string> + <string name="notification_light_default_value">Standaard</string> + <string name="notification_light_missed_call_title">Gemiste oproep</string> + <string name="notification_light_voicemail_title">Voicemail</string> + <string name="edit_light_settings">Meldingsledinstellingen</string> + <string name="pulse_speed_title">Duur en snelheid van knipperen</string> + <string name="picker_arrow">\u2192</string> + <string name="default_time">Normaal</string> + <string name="custom_time">Aangepast</string> + <string name="dialog_test">Test</string> + <string name="dialog_delete_title">Verwijderen</string> + <string name="dialog_delete_message">Geselecteerd item verwijderen?</string> + <string name="dialog_test_message">Schakel het scherm uit om de geselecteerde melding te testen of annuleer deze melding om de test te stoppen</string> + <string name="dialog_test_button">Annuleren</string> + <string name="pulse_length_always_on">Altijd aan</string> + <string name="pulse_length_very_short">Zeer kort</string> + <string name="pulse_length_short">Kort</string> + <string name="pulse_length_normal">Normaal</string> + <string name="pulse_length_long">Lang</string> + <string name="pulse_length_very_long">Zeer lang</string> + <string name="pulse_speed_very_fast">Zeer snel</string> + <string name="pulse_speed_fast">Snel</string> + <string name="pulse_speed_normal">Normaal</string> + <string name="pulse_speed_slow">Langzaam</string> + <string name="pulse_speed_very_slow">Zeer langzaam</string> + <string name="battery_light_title">Batterijlicht</string> + <string name="battery_low_pulse_title">LED laten knipperen bij lage batterijspanning</string> + <string name="battery_light_list_title">Kleuren</string> + <string name="battery_light_low_color_title">Batterijspanning laag</string> + <string name="battery_light_medium_color_title">Bezig met opladen</string> + <string name="battery_light_full_color_title">Volledig opgeladen</string> + <string name="volume_overlay_title">Volumepaneel</string> + <string name="volbtn_music_controls_title">Muziek beheren met volumeknoppen</string> + <string name="volbtn_music_controls_summary">Als het scherm uit is springen de volumeknoppen, indien lang ingedrukt, naar het vorige/volgende nummer</string> + <string name="headset_connect_player_title">Muziek-app openen bij aansluiten</string> + <string name="volume_ring_only_description">Beltonen</string> + <string name="ring_mode_title">Belmodus</string> + <string name="ring_mode_normal">Normaal</string> + <string name="ring_mode_vibrate">Trillen</string> + <string name="ring_mode_mute">Dempen</string> + <string name="hardware_keys_title">Hardwareknoppen</string> + <string name="hardware_keys_bindings_title">Knopacties</string> + <string name="hardware_keys_enable_custom_title">Aangepaste acties inschakelen</string> + <string name="hardware_keys_home_long_press_title">Thuisknop (lang ingedrukt)</string> + <string name="hardware_keys_menu_press_title">Menuknop</string> + <string name="hardware_keys_menu_long_press_title">Menuknop (lang ingedrukt)</string> + <string name="hardware_keys_assist_press_title">Zoekknop</string> + <string name="hardware_keys_assist_long_press_title">Zoekknop (lang ingedrukt)</string> + <string name="hardware_keys_app_switch_press_title">Recente appsknop</string> + <string name="hardware_keys_app_switch_long_press_title">Recente appsknop (lang ingedrukt)</string> + <string name="hardware_keys_show_overflow_title">Actieknop</string> + <string name="hardware_keys_show_overflow_summary">3-puntsmenuknop tonen in app</string> + <string name="hardware_keys_show_overflow_toast_enable">Herstart van apps mogelijk vereist om wijziging toe te passen</string> + <string name="hardware_keys_show_overflow_toast_disable">Herstart van apps mogelijk vereist om wijziging toe te passen</string> + <string name="hardware_keys_action_nothing">Geen actie</string> + <string name="hardware_keys_action_menu">Menu openen/sluiten</string> + <string name="hardware_keys_action_app_switch">Recente apps</string> + <string name="hardware_keys_action_search">Zoek-app</string> + <string name="hardware_keys_action_voice_search">Spraakgestuurd zoeken</string> + <string name="hardware_keys_action_in_app_search">Zoeken in apps</string> + <string name="power_widget_title">Energiewidget</string> + <string name="title_expanded_widget">Energiewidget</string> + <string name="power_widget_behavior">Widgetgedrag</string> + <string name="title_expanded_hide_onchange">Verbergen bij wijziging</string> + <string name="title_expanded_hide_indicator">Indicatoren verbergen</string> + <string name="title_expanded_hide_scrollbar">Schuifbalk verbergen</string> + <string name="title_widget_picker">Widgetknoppen</string> + <string name="summary_widget_picker">Te tonen knoppen beheren</string> + <string name="title_widget_order">Volgorde van widgetknoppen</string> + <string name="summary_widget_order">Knoppenvolgorde in de widget beheren</string> + <string name="title_buttons">Knoppen</string> + <string name="title_toggle_wifi">Wi-Fi</string> + <string name="title_toggle_bluetooth">Bluetooth</string> + <string name="title_toggle_gps">GPS</string> + <string name="title_toggle_sound">Geluid</string> + <string name="title_toggle_brightness">Helderheid</string> + <string name="title_toggle_sync">Synchronisatie</string> + <string name="title_toggle_wifiap">Draagbare Wi-Fi-hotspot</string> + <string name="title_toggle_mobiledata">Mobiele gegevens</string> + <string name="title_toggle_lockscreen">Vergrendelscherm</string> + <string name="title_toggle_networkmode">Netwerkmodus</string> + <string name="title_toggle_autorotate">Scherm automatisch draaien</string> + <string name="title_toggle_airplane">Vliegtuigmodus</string> + <string name="title_toggle_flashlight">Zaklamp</string> + <string name="title_toggle_sleep">Slaapstand</string> + <string name="title_toggle_media_play_pause">Media: afspelen/pauzeren</string> + <string name="title_toggle_media_previous">Media: vorige</string> + <string name="title_toggle_media_next">Media: volgende</string> + <string name="title_toggle_lte">LTE</string> + <string name="title_toggle_wimax">WiMAX</string> + <string name="title_button_modes">Knoppenstanden</string> + <string name="pref_brightness_mode_title">Helderheidsstanden</string> + <string name="pref_brightness_mode_summary">Helderheidsknopstanden beheren</string> + <string name="cm_brightness_mode_auto">Automatisch</string> + <string name="cm_brightness_mode_dim">Dimmen</string> + <string name="pref_network_mode_title">Netwerkmodus</string> + <string name="pref_screentimeout_mode_title">Schermtime-outstanden</string> + <string name="pref_ring_mode_title">Geluidsstanden</string> + <string name="pref_ring_mode_summary">Geluidsknopstanden beheren</string> + <string name="cm_sound_mode_silent">Stil</string> + <string name="cm_sound_mode_vibrate">Trillen</string> + <string name="cm_sound_mode_sound">Geluid</string> + <string name="cm_sound_mode_soundVibrate">Geluid & trillen</string> + <string name="pref_flash_mode_title">Lichtsterkte zaklamp</string> + <string name="expanded_haptic_feedback_title">Trillen</string> + <string name="kill_app_longpress_back">Terugknop forceert afsluiten</string> + <string name="kill_app_longpress_back_summary">App op de voorgrond geforceerd afsluiten door de terugknop lang ingedrukt te houden</string> + <string name="changelog_title">Changelog</string> + <string name="changelog_loading">Bezig met het laden van changelog\u2026</string> + <string name="changelog_error">Kan changelog niet laden</string> + <string name="changelog_unknown">Onbekend</string> + <string name="changelog_version">Versie</string> + <string name="power_menu_title">Aan/uit-knop</string> + <string name="power_menu_reboot_title">Herstarten</string> + <string name="power_menu_screenshot_title">Schermafdruk</string> + <string name="power_menu_expanded_desktop">Uitgebreid bureaublad</string> + <string name="power_menu_profiles_title">Profielen</string> + <string name="power_menu_airplane_title">Vliegtuigmodus</string> + <string name="power_menu_user_title">Gebruiker wisselen</string> + <string name="power_menu_sound_title">Geluidspaneel</string> + <string name="cmupdate_settings_title">CyanogenMod-updates</string> + <string name="cmupdate_settings_summary">Controleren op updates</string> + <string name="advanced_settings_title">Geavanceerd</string> + <string name="ime_switcher_notify">Invoermethodemelding</string> + <string name="ime_switcher_notify_summary">Melding tonen voor wijzigen invoermethode</string> + <string name="status_bar_title">Statusbalk</string> + <string name="status_bar_clock_title">Klok</string> + <string name="status_bar_general_title">Algemeen</string> + <string name="status_bar_show_clock_title">Klok tonen</string> + <string name="status_bar_am_pm_title">12-uursformaat</string> + <string name="status_bar_am_pm_info">24-uursformaat ingeschakeld</string> + <string name="status_bar_battery_title">Opmaak batterijstatus</string> + <string name="status_bar_toggle_brightness">Helderheid beheren</string> + <string name="status_bar_toggle_brightness_summary">Helderheid wijzigen door over de statusbalk te slepen</string> + <string name="status_bar_toggle_info">Automatische helderheid ingeschakeld</string> + <string name="status_bar_signal_text_title">Opmaak signaalstatus</string> + <string name="status_bar_style_icon">Pictogram</string> + <string name="status_bar_style_hidden">Verborgen</string> + <string name="status_bar_signal_text_show_text">Tekst</string> + <string name="status_bar_battery_status_percentage">Percentage</string> + <string name="status_bar_battery_status_circle">Cirkel</string> + <string name="status_bar_battery_status_circle_percentage">Cirkel met percentage</string> + <string name="status_bar_notif_count_title">Aantal meldingen tonen</string> + <string name="status_bar_notif_count_summary">Aantal nieuwe meldingen tonen</string> + <string name="display_category_wakeup_options_title">Ontwaakinstellingen</string> + <string name="pref_volume_wake_title">Ontwaken met volumeknoppen</string> + <string name="pref_volume_wake_summary">Apparaat laten ontwaken als een volumeknop wordt ingedrukt</string> + <string name="adb_notify">USB-foutopsporingsmodus melden</string> + <string name="adb_notify_summary">Melding tonen indien USB-foutopsporingmodus is ingeschakeld</string> + <string name="development_tools_title">Tools openen</string> + <string name="adb_over_network">ADB over netwek</string> + <string name="adb_over_network_summary">TCP/IP-foutopsporing inschakelen over netwerkinterfaces (Wi-Fi, USB-netwerken etc.). Wordt hersteld bij opstarten</string> + <string name="adb_over_network_warning">Let op: als ADB over netwerk is ingeschakeld, kan op uw apparaat worden ingebroken via alle aangesloten netwerken, inclusief via uw GSM-gegevensnetwerk!\n\nGebruik deze functie alleen indien u verbonden bent met vertrouwde netwerken.\n\nWeet u zeker dat u deze functie wilt inschakelen?</string> + <string name="lockscreen_buttons_title">Knopacties</string> + <string name="lockscreen_buttons_summary">Knopacties op vergrendelscherm beheren</string> + <string name="lockscreen_long_press_back_title">Terugknop lang ingedrukt</string> + <string name="lockscreen_long_press_home_title">Thuisknop lang ingedrukt</string> + <string name="lockscreen_long_press_menu_title">Menuknop lang ingedrukt</string> + <string name="lockscreen_buttons_no_action">Geen actie</string> + <string name="lockscreen_buttons_flashlight">Zaklamp</string> + <string name="lockscreen_buttons_next">Volgend nummer</string> + <string name="lockscreen_buttons_previous">Vorig nummer</string> + <string name="lockscreen_buttons_playpause">Afspelen/pauzeren</string> + <string name="lockscreen_buttons_toggle_sound">Geluid aan/uit</string> + <string name="quick_settings_panel_title">Snelle instellingenpaneel</string> + <string name="quick_settings_title">Snelle instellingenpaneel</string> + <string name="title_static_tiles">Statische tegels</string> + <string name="tile_picker_title">Tegels en indeling</string> + <string name="tile_picker_summary">Indeling van te tonen tegels beheren</string> + <string name="tile_choose_title">Tegel kiezen</string> + <string name="title_tile_airplane">Vliegtuigmodus</string> + <string name="title_tile_battery">Batterijstatus</string> + <string name="title_tile_bluetooth">Bluetooth</string> + <string name="title_tile_brightness">Helderheid</string> + <string name="title_tile_sleep">Slaapstand</string> + <string name="title_tile_gps">GPS</string> + <string name="title_tile_torch">Zaklamp</string> + <string name="title_tile_lockscreen">Vergrendelscherm</string> + <string name="title_tile_lte">LTE</string> + <string name="title_tile_mobiledata">Mobiele gegevens</string> + <string name="title_tile_profile">Profiel</string> + <string name="title_tile_autorotate">Scherm automatisch draaien</string> + <string name="title_tile_settings">Instellingen</string> + <string name="title_tile_sound">Geluid</string> + <string name="title_tile_sync">Synchroniseren</string> + <string name="title_tile_wifiap">Draagbare Wi-Fi-hotspot</string> + <string name="title_tile_wifi">Wi-Fi</string> + <string name="title_tile_wimax">WiMAX</string> + <string name="title_tile_user">Gebruiker wisselen</string> + <string name="title_tile_networkmode">Netwerkmodus</string> + <string name="title_tile_nfc">NFC</string> + <string name="title_tile_screen_timeout">Schermtime-out</string> + <string name="title_tile_usb_tether">USB-tethering</string> + <string name="title_dynamic_tiles">Dynamische tegels</string> + <string name="dynamic_tiles_note_title">Let op</string> + <string name="dynamic_tiles_note_summary">Dynamische tegels zijn alleen zichtbaar indien opgeroepen door een systeemgebeurtenis</string> + <string name="title_dynamic_alarm">Alarmklok</string> + <string name="title_dynamic_bugreport">Foutrapport</string> + <string name="title_dynamic_ime">IME-keuze</string> + <string name="title_dynamic_usbtether">USB-tethering</string> + <string name="title_dynamic_wifi">Draadloze display</string> + <string name="title_general">Algemeen</string> + <string name="title_quick_pulldown">Snel openen</string> + <string name="summary_quick_pulldown">%1$s rand van statusbalk opent Snelle instellingenpaneel</string> + <string name="quick_pulldown_summary_left">Links</string> + <string name="quick_pulldown_summary_right">Rechts</string> + <string name="quick_pulldown_off">Uit</string> + <string name="quick_pulldown_left">Links</string> + <string name="quick_pulldown_right">Rechts</string> + <string name="title_collapse_panel">Paneel automatisch sluiten</string> + <string name="summary_collapse_panel">Verbergen bij wijziging</string> + <string name="tiles_reset_title">Herstellen</string> + <string name="tiles_reset_message">Tegels herstellen naar standaardwaarden?</string> + <string name="volume_key_cursor_control_title">Cursor met volumeknoppen</string> + <string name="volume_key_cursor_control_off">Uitgeschakeld</string> + <string name="volume_key_cursor_control_on">Volume omhoog/omlaag verplaatst cursor naar links/rechts</string> + <string name="volume_key_cursor_control_on_reverse">Volume omhoog/omlaag verplaatst cursor naar rechts/links</string> + <string name="pref_wifi_disable_hdcp_title">HDCP-authenticatie overslaan</string> + <string name="pref_wifi_disable_hdcp_summary">Gebruiken indien verbonden, maar zonder uitvoer</string> + <string name="app_security_title">App-beveiliging</string> + <string name="sms_security_check_limit_title">Limiet sms-berichten</string> + <string name="sms_security_check_limit_summary">Melden wanneer apps te vaak sms-berichten verzenden. Huidig limiet: %d berichten in 15 minuten</string> + <string name="sms_security_check_limit_default">30 (standaard)</string> + <string name="title_toggle_screentimeout">Schermtime-out</string> + <string name="lock_clock_title">Klokwidget</string> + <string name="lock_clock_summary">Weergave beheren van \'cLock\'</string> + <string name="stylus_icon_enabled_title">Pictogram bij stylusgebruik</string> + <string name="stylus_icon_enabled_summary">Cursor tonen als een stylus wordt gebruikt</string> + <string name="navigation_bar_title">Navigatiebalk</string> + <string name="navigation_bar_help_text">1 - Kies het vergrendelicoon om te beginnen\n\n2 - Kies een knop om een functie aan toe te wijzen of te wijzigen\n\n3 - Druk lang op een knop om de positie te wijzigen\n\n4 - Druk nogmaals op het vergrendelicoon om op te slaan\n\n5 - Druk op herstel om de standaardinstellingen te herstellen\n\n</string> + <string name="navigation_bar_tips">• Acties kunnen slechts aan één knop worden toegewezen\n\n• De thuisknop kan niet opnieuw worden toegewezen\n\n• Randknoppen kunnen niet worden herschikt</string> + <string name="navigation_bar_tips_title">Snelle tips</string> + <string name="navigation_bar_reset_message">Huidige instellingen verwijderen en standaardinstellingen herstellen?</string> + <string name="navigation_bar_save_message">Navigatiebalkinstellingen opgeslagen</string> + <string name="navigation_bar_reset_toast">Navigatiebalk hersteld naar standaardinstellingen</string> + <string name="navigation_bar_menu_editable">Bewerkbaar</string> + <string name="navigation_bar_menu_locked">Vergrendeld</string> + <string name="accessibility_home_button_answers_call_prerefence_title">Oproep aannemen met thuisknop</string> + <string name="headset_category_title">Headset</string> + <string name="lockscreen_maximize_widgets_title">Widgets maximaliseren</string> + <string name="lockscreen_maximize_widgets_summary">Widgets gemaximaliseerd en ontgrendeling geminimaliseerd tonen indien het scherm wordt ingeschakeld</string> </resources> diff --git a/res/values-pt/arrays.xml b/res/values-pt/arrays.xml index ea55f7b..8003a06 100644..100755 --- a/res/values-pt/arrays.xml +++ b/res/values-pt/arrays.xml @@ -228,27 +228,27 @@ </string-array> <string-array name="window_animation_scale_entries"> <item msgid="8134156599370824081">"Animação desligada"</item> - <item msgid="6624864048416710414">"Escala da animação 0,5 x"</item> + <item msgid="6624864048416710414">"Escala da animação 0,5x"</item> <item msgid="2219332261255416635">"Escala da animação 1x"</item> - <item msgid="3544428804137048509">"Escala de animação 1,5 x"</item> + <item msgid="3544428804137048509">"Escala de animação 1,5x"</item> <item msgid="3110710404225974514">"Escala da animação 2x"</item> - <item msgid="4402738611528318731">"Escala de animação 5 x"</item> - <item msgid="6189539267968330656">"Escala de animação 10 x"</item> + <item msgid="4402738611528318731">"Escala de animação 5x"</item> + <item msgid="6189539267968330656">"Escala de animação 10x"</item> </string-array> <string-array name="transition_animation_scale_entries"> <item msgid="8464255836173039442">"Animação desligada"</item> - <item msgid="3375781541913316411">"Escala da animação 0,5 x"</item> + <item msgid="3375781541913316411">"Escala da animação 0,5x"</item> <item msgid="1991041427801869945">"Escala da animação 1x"</item> - <item msgid="4012689927622382874">"Escala de animação 1,5 x"</item> + <item msgid="4012689927622382874">"Escala de animação 1,5x"</item> <item msgid="3289156759925947169">"Escala da animação 2x"</item> - <item msgid="7705857441213621835">"Escala de animação 5 x"</item> - <item msgid="6660750935954853365">"Escala de animação 10 x"</item> + <item msgid="7705857441213621835">"Escala de animação 5x"</item> + <item msgid="6660750935954853365">"Escala de animação 10x"</item> </string-array> <string-array name="animator_duration_scale_entries"> <item msgid="6039901060648228241">"Animação desativada"</item> - <item msgid="1138649021950863198">"Escala de animação 5x"</item> + <item msgid="1138649021950863198">"Escala de animação 0,5x"</item> <item msgid="4394388961370833040">"Escala de animação 1x"</item> - <item msgid="8125427921655194973">"Escala de animação 1.5 x"</item> + <item msgid="8125427921655194973">"Escala de animação 1,5x"</item> <item msgid="3334024790739189573">"Escala de animação 2x"</item> <item msgid="3170120558236848008">"Escala de animação 5x"</item> <item msgid="1069584980746680398">"Escala de animação 10x"</item> @@ -295,4 +295,44 @@ <item msgid="5077768429488260031">"Nunca permitir"</item> <item msgid="1417929597727989746">"Sempre permitir"</item> </string-array> -</resources> + <string-array name="volume_overlay_entries"> + <item>Simples</item> + <item>Expansível</item> + <item>Expandido</item> + <item>Nenhum</item> + </string-array> + <string-array name="pref_zram_size_entries"> + <item>Desabilitado</item> + <item>10%</item> + <item>18% (padrão)</item> + <item>26%</item> + </string-array> + <string-array name="profile_entries"> + <item>Ligado</item> + <item>Desligado</item> + <item>Não substituir</item> + </string-array> + <string-array name="profile_connection_entries"> + <item>Desabilitar</item> + <item>Habilitar</item> + </string-array> + <string-array name="entries_network_widget"> + <item>2G/3G+2G</item> + <item>2G/3G Somente</item> + <item>2G/3G Somente/3G+2G</item> + </string-array> + <string-array name="entries_flash_widget"> + <item>Normal</item> + <item>Alto / Raio da morte</item> + </string-array> + <string-array name="haptic_feedback_entries"> + <item>Configurações globais</item> + <item>Ligado</item> + <item>Desligado</item> + </string-array> + <string-array name="entries_status_bar_am_pm"> + <item>Normal</item> + <item>Pequeno</item> + <item>Nenhum (padrão)</item> + </string-array> +</resources>
\ No newline at end of file diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml index b0ee489..6699862 100644 --- a/res/values-pt/strings.xml +++ b/res/values-pt/strings.xml @@ -1,5 +1,6 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2007 The Android Open Source Project +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2007 The Android Open Source Project + 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. @@ -1830,4 +1831,557 @@ <string name="user_picture_title" msgid="7297782792000291692">"ID de foto"</string> <string name="cell_broadcast_settings" msgid="8415582011920085222">"Transmissões por celular"</string> <string name="cell_broadcast_settings_summary" msgid="3301339398950905913">"Selecione os tipos de alertas de emergência a exibir."</string> + <string name="font_size_preview_text">Sirva este senhor uma cerveja e kiwis.</string> + <string name="intent_sender_data_label">Dados:</string> + <string name="debug_intent_sender_label">Depuração do transmissor de intent</string> + <string name="testing_sim_toolkit">Ferramentas para o SIM</string> + <string name="root_access">Acesso root</string> + <string name="root_access_warning_title">Permitir acesso root?</string> + <string name="root_access_warning_message">Permitir que aplicações requisitem acesso root é muito perigoso e pode comprometer a segurança do seu sistema!</string> + <string name="root_access_none">Desabilitado</string> + <string name="root_access_apps">Somente aplicativos</string> + <string name="root_access_adb">Somente ADB</string> + <string name="root_access_all">Aplicativos e ADB</string> + <string name="sync_item_title" msgid="1931551540462877488">"Sincronizar <xliff:g id="AUTHORITY" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">%s</xliff:g>"</string> + <string name="quiet_hours_title">Horas de silêncio</string> + <string name="quiet_hours_summary">Ver ou alterar o horário que o dispositivo deve ficar em silêncio</string> + <string name="quiet_hours_note_title">Nota</string> + <string name="quiet_hours_note_summary">Ligações recebidas se comportarão normalmente durante as horas de silêncio</string> + <string name="quiet_hours_enabled">Habilitar horas de silêncio</string> + <string name="quiet_hours_enabled_on">Horas de silêncio serão impostas</string> + <string name="quiet_hours_enabled_off">Notificações funcionarão normalmente</string> + <string name="quiet_hours_start">Inicio das horas de silêncio</string> + <string name="quiet_hours_start_summary">Quando iniciar as horas de silêncio</string> + <string name="quiet_hours_end">Fim das horas de silêncio</string> + <string name="quiet_hours_end_summary">Quando terminar as horas de silêncio</string> + <string name="quiet_hours_mute">Silenciar notificações</string> + <string name="quiet_hours_mute_on">Sons não serão reproduzidos</string> + <string name="quiet_hours_mute_off">Sons serão reproduzidos normalmente</string> + <string name="quiet_hours_still">Desabilitar vibrações</string> + <string name="quiet_hours_still_on">Dispositivo não vibrará</string> + <string name="quiet_hours_still_off">Dispositivo vibrará normalmente</string> + <string name="quiet_hours_dim">Desabilitar luz de notificação</string> + <string name="quiet_hours_dim_on">Luz de notificação desabilitada</string> + <string name="quiet_hours_dim_off">Luz de notificação funcionará normalmente</string> + <string name="quiet_hours_haptic">Desabilitar resposta ao toque</string> + <string name="quiet_hours_haptic_on">Resposta ao toque desabilitada</string> + <string name="quiet_hours_haptic_off">Resposta ao toque funcionará normalmente</string> + <string name="quiet_hours_active_from">Ativo de</string> + <string name="quiet_hours_active_to">até</string> + <string name="start_time_title">Início</string> + <string name="end_time_title">Fim</string> + <string name="device_hostname">Nome do dispositivo</string> + <string name="mod_version">Versão CyanogenMod</string> + <string name="mod_version_default">Desconhecida</string> + <string name="build_date">Data de compilação</string> + <string name="build_date_default">2012-01-01-0000</string> + <string name="cpu_info">CPU</string> + <string name="mem_info">Memória</string> + <string name="anonymous_statistics_title">Estatísticas CyanogenMod</string> + <string name="anonymous_statistics_summary">Ajude a melhorar o CyanogenMod optando por enviar estatísticas anonimas</string> + <string name="anonymous_statistics_warning_title">Sobre</string> + <string name="anonymous_statistics_warning">Optar por enviar estatísticas anonimas do CyanogenMod permitirá que dados não-pessoais sejam enviados para os + desenvolvedores do CyanogenMod para rastrear instalações únicas em dispositivos. As informações enviadas incluem um identificador unico, + que não compromete sua privacidade ou dados pessoais. Os dados são enviados durante cada inicialização.\n\nPara um exemplo de dados que são enviados, toque em Pré-visualizar Dados.</string> + <string name="enable_reporting_title">Habilitar relatório</string> + <string name="preview_data_title">Pré-visualizar dados</string> + <string name="preview_data_summary">%s</string> + <string name="view_stats_title">Ver estatísticas</string> + <string name="anonymous_learn_more">Saiba mais</string> + <string name="anonymous_notification_desc">Habilitar ou desabilitar estatísticas CyanogenMod</string> + <string name="preview_id_title">ID unico</string> + <string name="preview_device_title">Dispositivo</string> + <string name="preview_version_title">Versão</string> + <string name="preview_country_title">País</string> + <string name="preview_carrier_title">Operadora</string> + <string name="header_category_interface">INTERFACE</string> + <string name="launcher_settings_title">Launcher</string> + <string name="themes_settings_title">Temas</string> + <string name="system_settings_title">Sistema</string> + <string name="system_interface_title">Interface de sistema</string> + <string name="notification_drawer_title">Gaveta de notificação</string> + <string name="lock_screen_title">Tela de bloqueio</string> + <string name="lockscreen_target_info">Arraste o botão para os alvos para criar atalhos</string> + <string name="lockscreen_target_title">Atalhos da tela de bloqueio</string> + <string name="lockscreen_target_summary">Visualizar ou configurar atalhos personalizados da tela de bloqueio</string> + <string name="lockscreen_target_reset">Restaurar atalhos da tela de bloqueio</string> + <string name="lockscreen_target_save">Atalhos da tela de bloqueio gravados</string> + <string name="lockscreen_target_reset_title">Restaurar</string> + <string name="lockscreen_target_reset_message">Apagar todos os atalhos criados e restaurar o padrão ?</string> + <string name="lockscreen_target_empty">Vazio</string> + <string name="lockscreen_target_edit_title">Editar atalho</string> + <string name="lockscreen_target_edit_msg">Selecione ou mude a aplicação ou atividade desejada</string> + <string name="lockscreen_vibrate_enabled_title">Vibrar</string> + <string name="lockscreen_vibrate_enabled_head">Vibra quando desbloqueia</string> + <string name="lockscreen_battery_status_title">Estado da bateria</string> + <string name="lockscreen_battery_status_charging">Somente quando carregando</string> + <string name="lockscreen_battery_status_alwayson">Sempre ligado</string> + <string name="profiles_settings_title">Perfis</string> + <string name="profiles_general_title">Geral</string> + <string name="profiles_add">Adicionar</string> + <string name="profile_menu_delete">Remover</string> + <string name="profile_settings_title">Perfil</string> + <string name="profile_empty_list_profiles_off">Para configurar e usar perfis de sistema, ative Perfis.</string> + <string name="add_profile_dialog_title">Criar novo perfil</string> + <string name="profile_name_title">Nome do perfil</string> + <string name="profile_profile_name_prompt">Entre um nome para o novo perfil</string> + <string name="menu_new_profile">Novo perfil</string> + <string name="menu_new_profile_summary">Adicionar e configurar um novo perfil</string> + <string name="new_profile_name"><novo perfil></string> + <string name="rename_dialog_title">Renomear</string> + <string name="rename_dialog_message">Entre um novo nome</string> + <string name="duplicate_profile_name">Nome de perfil duplicado!</string> + <string name="duplicate_appgroup_name">Nome de grupo de aplicações duplicado!</string> + <string name="profile_reset_title">Restaurar</string> + <string name="profile_reset_message">Você quer remover todos os perfis e grupos de aplicação criados e restaurá-los para o padrão?</string> + <string name="profile_delete_confirm">Tem certeza que deseja remover este perfil ?</string> + <string name="profile_app_delete_confirm">Tem certeza que deseja remover esta aplicação ?</string> + <string name="profile_cannot_delete">Você não pode remover o perfil ativo</string> + <string name="profile_connectionoverrides_title">Substituição de conexão</string> + <string name="profile_volumeoverrides_title">Substituição de volume</string> + <string name="profile_vibratoroverrides_title">Substituição de vibração</string> + <string name="connection_state_disabled">Desabilitar</string> + <string name="connection_state_enabled">Habilitar</string> + <string name="volume_override_summary">Definir para</string> + <string name="vibrator_state_disabled">Desativado</string> + <string name="vibrator_state_enabled">Ativado</string> + <string name="vibrator_state_silent">Somente em silencioso</string> + <string name="profile_profiles_manage">Perfis</string> + <string name="profile_profile_manage">Gerenciar perfil</string> + <string name="profile_applist_manage">Lista de aplicações</string> + <string name="profile_appgroups_manage">Grupos de aplicações</string> + <string name="profile_appgroup_manage">Perfil</string> + <string name="profile_settings">Configuração do perfil</string> + <string name="profile_name">Nome</string> + <string name="sound_mode">Modo de notificação</string> + <string name="ringer_mode">Modo de toque</string> + <string name="lights_mode">Modo de luzes</string> + <string name="vibrate_mode">Modo de vibração</string> + <string name="choose_soundtone">Selecione o som de notificação</string> + <string name="choose_ringtone">Selecione o toque do telefone</string> + <string name="soundtone_title">Toque de notificação</string> + <string name="soundtone_summary">""</string> + <string name="profile_appgroups_title">Grupos de aplicações</string> + <string name="profile_applist_title">Aplicações</string> + <string name="profile_new_appgroup">Novo grupo de aplicações</string> + <string name="profile_delete_appgroup">Remover este grupo de aplicações</string> + <string name="profile_appgroup_name_prompt">Entre um nome para o novo grupo de aplicações</string> + <string name="profile_appgroup_name_title">Nome</string> + <string name="profile_add_app">Adicionar aplicação</string> + <string name="profile_delete_app">Remover aplicação</string> + <string name="profile_choose_app">Selecionar aplicação</string> + <string name="profile_settings_header">Configurações do perfil</string> + <string name="profile_system_settings_title">Configurações de sistema</string> + <string name="profile_lockmode_title">Modo de bloqueio de tela</string> + <string name="profile_lockmode_default">Padrão</string> + <string name="profile_lockmode_insecure">Inseguro</string> + <string name="profile_lockmode_disabled">Desabilitado</string> + <string name="profile_lockmode_default_summary">Usar padrão do sistema</string> + <string name="profile_lockmode_insecure_summary">Usar bloqueio inseguro</string> + <string name="profile_lockmode_disabled_summary">Bloqueio de tela está desabilitado</string> + <string name="profile_airplanemode_title">Modo avião</string> + <string name="profile_disable_screen_lock_summary">Desabilitar bloqueio de tela enquanto este perfil estiver ativo</string> + <string name="vibrator_type_ringer">Ligações</string> + <string name="vibrator_type_notification">Notificações</string> + <string name="possibleButtons">Botões possíveis</string> + <string name="toggleWifi">Wi-Fi</string> + <string name="toggleWifiAp">Ponto de acesso portátil</string> + <string name="toggleBluetooth">Bluetooth</string> + <string name="toggleGPS">GPS</string> + <string name="toggleData">Dados móveis</string> + <string name="toggleSync">Sincronia de dados</string> + <string name="toggle2g3g">2G/3G</string> + <string name="toggleSound">Toque</string> + <string name="toggleBrightness">Brilho</string> + <string name="toggleAutoRotate">Orientação</string> + <string name="toggleScreenTimeout">Tempo limite da tela</string> + <string name="toggleAirplane">Modo avião</string> + <string name="toggleFlashlight">Lanterna LED</string> + <string name="toggleLockScreen">Bloqueio de tela</string> + <string name="toggleWimax">WiMAX</string> + <string name="screen_security_category">Segurança de tela</string> + <string name="screen_security_title">Tela de bloqueio</string> + <string name="screen_security_summary">Ver ou alterar a segurança da tela de bloqueio, atraso e tempo limite</string> + <string name="additional_options_title">Opções adicionais</string> + <string name="unlock_menu_unlock_title">Desbloquear com Menu</string> + <string name="unlock_menu_unlock_summary">Pressionar o botão Menu desbloqueia o dispositivo</string> + <string name="unlock_home_unlock_title">Destravar com home</string> + <string name="unlock_home_unlock_summary">Destrava o dispositivo ao pressionar botão home</string> + <string name="unlock_quick_unlock_control_title">Desbloqueio rápido</string> + <string name="unlock_quick_unlock_control_summary">Não é necessário pressionar OK ao digitar PIN ou senha. Apagar conta como erro.</string> + <string name="delay_and_timeout_title">Atraso de bloqueio</string> + <string name="slide_lock_delay_title">Atrasar bloqueio de tela</string> + <string name="slide_lock_timeout_delay_title">Atraso do tempo limite de dela</string> + <string name="slide_lock_screenoff_delay_title">Atraso da tela desligada</string> + <string name="slide_lock_delay_none">Nenhum</string> + <string name="slide_lock_delay_1s">1 segundo</string> + <string name="slide_lock_delay_5s">5 segundos</string> + <string name="slide_lock_delay_10s">10 segundos</string> + <string name="slide_lock_delay_15s">15 segundos</string> + <string name="slide_lock_delay_30s">30 segundos</string> + <string name="slide_lock_delay_1m">1 minuto</string> + <string name="slide_lock_delay_5m">5 minutos</string> + <string name="slide_lock_delay_10m">10 minutos</string> + <string name="slide_lock_delay_30m">30 minutos</string> + <string name="performance_settings_title">Desempenho</string> + <string name="performance_settings_warning_title">Proceda com cautela</string> + <string name="performance_settings_warning">Estas configurações são incluídas para testes e qualquer mudança feita nelas pode causar instabilidade, paradas, perda de dados ou falhas de hardware.\n\nPedimos que você não relate bugs se qualquer destas configurações estiverem diferentes do padrão.</string> + <string name="processor_title">Processador</string> + <string name="processor_summary">Alterar gerenciador de CPU e velocidade do clock</string> + <string name="cpu_cur_freq_title">Frequência de CPU atual</string> + <string name="cpu_governors_title">Gerenciador de CPU</string> + <string name="cpu_governors_summary">%S</string> + <string name="cpu_min_freq_title">Frequência mínima da CPU</string> + <string name="cpu_min_freq_summary">%s</string> + <string name="cpu_max_freq_title">Frequência máxima da CPU</string> + <string name="cpu_max_freq_summary">%s</string> + <string name="cpu_set_on_boot">Definir na inicialização</string> + <string name="cpu_set_on_boot_summary">Restaurar as configurações do processador na inicialização</string> + <string name="io_scheds_title">Escalonador de I/O</string> + <string name="io_scheds_summary">Modificar o escalonador I/O</string> + <string name="io_sched_title">Escalonador I/O</string> + <string name="io_sched_set_on_boot">Definir na inicialização</string> + <string name="io_sched_set_on_boot_summary">Restaura as configurações do escalonador I/O na inicialização</string> + <string name="memory_management_title">Gerenciamento de memória</string> + <string name="memory_management_summary">Personalizar o uso de memória para mudar o desempenho do sistema</string> + <string name="pref_zram_title">zRam</string> + <string name="pref_zram_summary">Comprime a memória para maior capacidade virtual (requer reinicio)</string> + <string name="pref_ksm_title">Kernel samepage merging</string> + <string name="pref_ksm_summary">KSM reduz requisitos de memória fisica e melhora o desempenho</string> + <string name="pref_purgeable_assets_title">Permitir liberação de recursos</string> + <string name="pref_purgeable_assets_summary">Remoção de recursos de memória permite a liberação de mais RAM quando necessária (requer reinicio)</string> + <string name="pref_use_dithering_title">Aplicar dithering</string> + <string name="dithering_no_dither">Desativar pontilhamento</string> + <string name="dithering_color_banding">Consertar bandas de cores (padrão)</string> + <string name="dithering_blur_effect">Consertar bandas de cores e efeito de borrar</string> + <string name="pref_use_16bpp_alpha_title">Transparência 16bit</string> + <string name="pref_use_16bpp_alpha_summary">Melhor desempenho gráfico, qualidade mais baixa e posiveis artefatos visuais (requer reinicio)</string> + <string name="display_rotation_title">Rotação</string> + <string name="display_rotation_disabled">Desabilitada</string> + <string name="display_rotation_unit">graus</string> + <string name="display_rotation_category_title">Modos de rotação</string> + <string name="display_rotation_0_title">0 graus</string> + <string name="display_rotation_90_title">90 graus</string> + <string name="display_rotation_180_title">180 graus</string> + <string name="display_rotation_270_title">270 graus</string> + <string name="picker_activities">Atividades</string> + <string name="select_custom_app_title">Selecione a aplicação personalizada</string> + <string name="select_custom_activity_title">Selecione atividade personalizada</string> + <string name="icon_picker_choose_icon_title">Escolha o ícone</string> + <string name="icon_picker_alarm">Alarme</string> + <string name="icon_picker_browser">Navegador</string> + <string name="icon_picker_calendar">Agenda</string> + <string name="icon_picker_camera">Camera</string> + <string name="icon_picker_email">Email</string> + <string name="icon_picker_email2">Email Holo</string> + <string name="icon_picker_facebook">Facebook</string> + <string name="icon_picker_gallery">Galeria</string> + <string name="icon_picker_google_small">Google (pequeno)</string> + <string name="icon_picker_googleplus">Google Plus</string> + <string name="icon_picker_googletalk">Google Talk</string> + <string name="icon_picker_maps">Mapas</string> + <string name="icon_picker_movie">Filme</string> + <string name="icon_picker_music">Música</string> + <string name="icon_picker_nav_normal">Navegação</string> + <string name="icon_picker_phone">Telefone</string> + <string name="icon_picker_podcast">Podcast</string> + <string name="icon_picker_rss">Rss</string> + <string name="icon_picker_search">Busca</string> + <string name="icon_picker_sms">Mensagem</string> + <string name="icon_picker_twitter">Twitter</string> + <string name="icon_picker_title">Escolha a fonte do ícone</string> + <string name="icon_picker_system_icons_title">Ícones de sistema</string> + <string name="icon_picker_gallery_title">Galeria</string> + <string name="icon_picker_pack_title">Pacote de ícones</string> + <string name="increasing_ring_title">Toque de celular crescente</string> + <string name="checkbox_increasing_ring">Ativar</string> + <string name="increasing_ring_min_volume_title">Volume inicial do toque</string> + <string name="increasing_ring_volume_notice">Aviso:\nSe o volume inicial for maior que volume padrão definido do toque, o toque irá reproduzir usando o volume padrão definido.</string> + <string name="increasing_ring_interval_title">Intervalo de aumento</string> + <string name="increasing_ring_interval_eachring">Em cada toque</string> + <string name="increasing_ring_interval_half_second">0,5 segundos</string> + <string name="increasing_ring_interval_1second">1 segundo</string> + <string name="increasing_ring_interval_2seconds">2 segundos</string> + <string name="increasing_ring_interval_3seconds">3 segundos</string> + <string name="increasing_ring_interval_5seconds">5 segundos</string> + <string name="increasing_ring_interval_10seconds">10 segundos</string> + <string name="profile_write_nfc_tag">Escrever na etiqueta NFC</string> + <string name="profile_write_touch_tag">Tocar etiqueta para escrever</string> + <string name="profile_write_success">Etiqueta foi escrita com sucesso</string> + <string name="profile_write_failed">Falhou ao escrever etiqueta</string> + <string name="profile_selected">Perfil selecionado: %1$s</string> + <string name="profile_nfc_text">Escrevendo um perfil a uma etiqueta NFC permite você encostar a etiqueta para selecionar aquele perfil. Encostando pela segunda vez irá selecionar o perfil selecionado anterior.</string> + <string name="profile_unknown_nfc_tag">Perfil Desconhecido</string> + <string name="profile_add_nfc_text">Esta etiqueta NFC se refere a um perfil desconhecido. Ao anexar esta etiqueta NFC à um perfil existente, irá permitir selecionar o perfil no futuro.</string> + <string name="profile_select">Selecione o perfil</string> + <string name="link_volume_ringtones">Unir volumes de toques e notificações</string> + <string name="link_volume_mutes">Modo silencioso afeta as notificações</string> + <string name="notification_light_general_title">Geral</string> + <string name="notification_light_applist_title">Aplicações</string> + <string name="notification_light_phonelist_title">Telefone</string> + <string name="notification_light_use_custom">Usar valores personalizados</string> + <string name="notification_light_enabled">Habilitado</string> + <string name="notification_light_disabled">Desabilitado</string> + <string name="notification_light_missed_call_title">Chamada perdida</string> + <string name="notification_light_voicemail_title">Correio de Voz</string> + <string name="edit_light_settings">Editar configurações de luz</string> + <string name="pulse_speed_title">Duração e velocidade da pulsação</string> + <string name="picker_arrow">→</string> + <string name="default_time">Normal</string> + <string name="custom_time">Personalizado</string> + <string name="dialog_test">Teste</string> + <string name="dialog_delete_title">Apagar</string> + <string name="dialog_delete_message">Remover ítem selecionado?</string> + <string name="dialog_test_message">Desligue a tela para ver a notificação selecionada em ação, ou feche esta janela para parar o teste</string> + <string name="dialog_test_button">Fechar</string> + <string name="pulse_length_always_on">Sempre ligado</string> + <string name="pulse_length_very_short">Muito curto</string> + <string name="pulse_length_short">Curto</string> + <string name="pulse_length_normal">Normal</string> + <string name="pulse_length_long">Longo</string> + <string name="pulse_length_very_long">Muito longo</string> + <string name="pulse_speed_very_fast">Muito rápido</string> + <string name="pulse_speed_fast">Rápido</string> + <string name="pulse_speed_normal">Normal</string> + <string name="pulse_speed_slow">Devagar</string> + <string name="pulse_speed_very_slow">Muito devagar</string> + <string name="battery_light_title">Luz da Bateria</string> + <string name="battery_low_pulse_title">Pulsar quando a bateria estiver baixa</string> + <string name="battery_light_list_title">Cores</string> + <string name="battery_light_low_color_title">Bateria baixa</string> + <string name="battery_light_medium_color_title">Carregando</string> + <string name="battery_light_full_color_title">Totalmente carregada</string> + <string name="volume_overlay_title">Estilo do painel de volume</string> + <string name="volbtn_music_controls_title">Botão volume controla música</string> + <string name="volbtn_music_controls_summary">Quando a tela estiver desligada, manter pressionado botão de volume buscará musicas</string> + <string name="volume_ring_only_description">Toques de celular</string> + <string name="hardware_keys_title">Teclas físicas</string> + <string name="hardware_keys_bindings_title">Ações da tecla</string> + <string name="hardware_keys_enable_custom_title">Ativar ações personalizadas</string> + <string name="hardware_keys_home_long_press_title">Botão Home (toque longo)</string> + <string name="hardware_keys_menu_press_title">Botão Menu</string> + <string name="hardware_keys_menu_long_press_title">Botão Menu (toque longo)</string> + <string name="hardware_keys_assist_press_title">Botão Pesquisar</string> + <string name="hardware_keys_assist_long_press_title">Botão Pesquisar (toque longo)</string> + <string name="hardware_keys_app_switch_press_title">Botão Alternar Apps</string> + <string name="hardware_keys_app_switch_long_press_title">Botão Alternar Apps (toque longo)</string> + <string name="hardware_keys_show_overflow_title">Mostrar sobreposição de ação</string> + <string name="hardware_keys_show_overflow_summary">Mostrar o botão de menu com sobreposição de 3 pontos dentro dos apps</string> + <string name="hardware_keys_show_overflow_toast_enable">A ação de de sobreposição de botão pode não estar visível até que os aplicativos sejam reiniciados</string> + <string name="hardware_keys_show_overflow_toast_disable">A ação de de sobreposição de botão pode não estar escondido até que os aplicativos sejam reiniciados</string> + <string name="hardware_keys_action_nothing">Sem ação</string> + <string name="hardware_keys_action_menu">Abrir/fechar menu</string> + <string name="hardware_keys_action_app_switch">Alternador de apps recentes</string> + <string name="hardware_keys_action_search">Assistente de busca</string> + <string name="hardware_keys_action_voice_search">Busca por voz</string> + <string name="hardware_keys_action_in_app_search">Busca dentro do app</string> + <string name="power_widget_title">Widget de energia</string> + <string name="title_expanded_widget">Mostrar widget de energia</string> + <string name="power_widget_behavior">Comportamendo de Widget</string> + <string name="title_expanded_hide_onchange">Esconder ao mudar</string> + <string name="title_expanded_hide_scrollbar">Esconder barra de rolagem</string> + <string name="title_widget_picker">Botões do widget</string> + <string name="summary_widget_picker">Selecione quais botões exibir no widget de energia</string> + <string name="title_widget_order">Ordem dos botões do widget</string> + <string name="summary_widget_order">Selecione a ordem dos botões no widget de energia</string> + <string name="title_buttons">Botões</string> + <string name="title_toggle_wifi">Alternar Wi-Fi</string> + <string name="title_toggle_bluetooth">Alternar Bluetooth</string> + <string name="title_toggle_gps">Alternar GPS</string> + <string name="title_toggle_sound">Alternar Som</string> + <string name="title_toggle_brightness">Alternar Brilho</string> + <string name="title_toggle_sync">Alternar Sincronia</string> + <string name="title_toggle_wifiap">Alternar Wi-Fi AP</string> + <string name="title_toggle_screentimeout">Alternar Tempo limite da tela</string> + <string name="title_toggle_mobiledata">Alternar Dados móveis</string> + <string name="title_toggle_lockscreen">Alternar Bloqueio de tela</string> + <string name="title_toggle_networkmode">Alternar modo de rede</string> + <string name="title_toggle_autorotate">Alternar Orientação</string> + <string name="title_toggle_airplane">Alternar Modo avião</string> + <string name="title_toggle_flashlight">Alternar Lanterna LED</string> + <string name="title_toggle_sleep">Ir dormir</string> + <string name="title_toggle_media_play_pause">Mídia: Alternar Play/Pause</string> + <string name="title_toggle_media_previous">Mídia: Pula para Anterior</string> + <string name="title_toggle_media_next">Mídia: Pula para Próxima</string> + <string name="title_toggle_lte">Alternar LTE</string> + <string name="title_toggle_wimax">Alternar WiMAX</string> + <string name="title_button_modes">Modos do botão</string> + <string name="pref_brightness_mode_title">Modos de brilho</string> + <string name="pref_brightness_mode_summary">Escolha os modos pelo botão Brilho</string> + <string name="cm_brightness_mode_auto">Auto</string> + <string name="cm_brightness_mode_dim">Escuro</string> + <string name="pref_network_mode_title">Modos de rede</string> + <string name="pref_screentimeout_mode_title">Modo de tempo limite da tela</string> + <string name="pref_ring_mode_title">Modos de som</string> + <string name="pref_ring_mode_summary">Escolha como o botão Som altera o modo</string> + <string name="cm_sound_mode_silent">Silêncio</string> + <string name="cm_sound_mode_vibrate">Vibrar</string> + <string name="cm_sound_mode_sound">Som</string> + <string name="cm_sound_mode_soundVibrate">Som+Vibrar</string> + <string name="pref_flash_mode_title">Modo de flash</string> + <string name="expanded_haptic_feedback_title">Vibrar ao tocar</string> + <string name="kill_app_longpress_back">Matar app com botão voltar</string> + <string name="kill_app_longpress_back_summary">Matar o aplicativo mantendo pressionado o botão voltar</string> + <string name="changelog_title">Visualizar alterações</string> + <string name="changelog_loading">Carregando registro de mudanças\u2026</string> + <string name="changelog_error">Não foi possível carregar as mudanças</string> + <string name="changelog_unknown">Desconhecido</string> + <string name="changelog_version">Versão</string> + <string name="power_menu_title">Menu de energia</string> + <string name="power_menu_reboot_title">Menu de reinicialização</string> + <string name="power_menu_screenshot_title">Captura de tela</string> + <string name="power_menu_expanded_desktop">Área de trabalho expandida</string> + <string name="power_menu_profiles_title">Alternador de perfil</string> + <string name="power_menu_airplane_title">Modo avião</string> + <string name="cmupdate_settings_title">Atualizações CyanogenMod</string> + <string name="cmupdate_settings_summary">Verificar, visualizar ou instalar atualizações disponíveis</string> + <string name="advanced_settings_title">Avançado</string> + <string name="ime_switcher_notify">Notificação do método de entrada</string> + <string name="ime_switcher_notify_summary">Exibir notificação do seletor de método de entrada</string> + <string name="status_bar_title">Barra de status</string> + <string name="status_bar_clock_title">Relógio</string> + <string name="status_bar_general_title">Geral</string> + <string name="status_bar_show_clock_title">Mostrar relógio</string> + <string name="status_bar_am_pm_title">Estilo AM/PM</string> + <string name="status_bar_am_pm_info">Modo 24-horas do relógio está ativado</string> + <string name="status_bar_battery_title">Estilo do status da bateria</string> + <string name="status_bar_toggle_brightness">Controle de brilho</string> + <string name="status_bar_toggle_brightness_summary">Permite ajustar o brilho deslizando através da barra de status</string> + <string name="status_bar_toggle_info">Brilho automático está habilitado</string> + <string name="status_bar_signal_text_title">Alternar exibição de sinal</string> + <string name="status_bar_style_icon">Somente ícone</string> + <string name="status_bar_style_hidden">Oculto</string> + <string name="status_bar_signal_text_show_text">Texto de sinal</string> + <string name="status_bar_battery_status_percentage">Porcentagem</string> + <string name="status_bar_battery_status_circle">Círculo</string> + <string name="status_bar_battery_status_circle_percentage">Círculo com porcentagem</string> + <string name="status_bar_notif_count_title">Mostrar contador de notificação</string> + <string name="status_bar_notif_count_summary">Mostrar o número de notificações pendentes na barra de status</string> + <string name="display_category_wakeup_options_title">Opções de despertar</string> + <string name="pref_volume_wake_title">Despertar com volume</string> + <string name="pref_volume_wake_summary">Os botões de volume despertarão o dispositivo.</string> + <string name="adb_notify">Notificação de depuração USB</string> + <string name="adb_notify_summary">Exibe uma notificação quando a depuração USB é conectada</string> + <string name="development_tools_title">Abrir ferramentas</string> + <string name="adb_over_network">ADB sobre rede</string> + <string name="adb_over_network_summary">Habilita depuração por interfaces de rede TCP/IP (Wi-Fi, redes USB). Esta configuração é perdida ao reiniciar</string> + <string name="adb_over_network_warning">ATENÇÃO: Quando ADB sobre rede é habilitada, seu dispositivo é aberto a invasões em todas as redes conectadas, incluindo rede de dados GSM !\n\nSomente use este recurso quando estiver conectado a redes confiáveis.\n\nVocê realmente quer habilitar ?</string> + <string name="lockscreen_buttons_title">Ações dos botões</string> + <string name="lockscreen_buttons_summary">Visualizar ou mudar as ações dos botões na tela de bloqueio</string> + <string name="lockscreen_long_press_back_title">Toque longo no botão Voltar</string> + <string name="lockscreen_long_press_home_title">Toque longo no botão Home</string> + <string name="lockscreen_long_press_menu_title">Toque longo no botão Menu</string> + <string name="lockscreen_buttons_no_action">Sem ação</string> + <string name="lockscreen_buttons_flashlight">Lanterna</string> + <string name="lockscreen_buttons_next">Próxima música</string> + <string name="lockscreen_buttons_previous">Música anterior</string> + <string name="lockscreen_buttons_playpause">Reproduzir/Pausar música</string> + <string name="lockscreen_buttons_toggle_sound">Alternar som</string> + <string name="volume_key_cursor_control_title">Controlar cursor c/ botão de volume</string> + <string name="volume_key_cursor_control_off">Desativado</string> + <string name="volume_key_cursor_control_on">Aumentar/abaixar o volume move o cursor para esquerda/direita</string> + <string name="volume_key_cursor_control_on_reverse">Aumentar/abaixar o volume move o cursor para direita/esquerda</string> + <string name="ring_mode_title">Modo de toque</string> + <string name="ring_mode_normal">Normal</string> + <string name="ring_mode_vibrate">Vibrar</string> + <string name="ring_mode_mute">Mudo</string> + <string name="title_expanded_hide_indicator">Esconder indicadores</string> + <string name="power_menu_user_title">Alternar usuário</string> + <string name="power_menu_sound_title">Painel de som</string> + <string name="quick_settings_panel_title">Painel de Configurações Rápidas</string> + <string name="quick_settings_title">Configurações Rápidas</string> + <string name="title_static_tiles">Tiles estáticos</string> + <string name="tile_picker_title">Tiles e layout</string> + <string name="tile_picker_summary">Visualizar, selecionar e trocar o layout dos tiles exibidos</string> + <string name="tile_choose_title">Selecione um tile</string> + <string name="title_tile_usb_tether">Tether USB</string> + <string name="title_tile_quiet_hours">Horas de silêncio</string> + <string name="title_tile_airplane">Modo avião</string> + <string name="title_tile_battery">Estatísticas da bateria</string> + <string name="title_tile_bluetooth">Bluetooth</string> + <string name="title_tile_brightness">Brilho</string> + <string name="title_tile_sleep">Dormir</string> + <string name="title_tile_gps">GPS</string> + <string name="title_tile_torch">Lanterna</string> + <string name="title_tile_lockscreen">Tela de bloqueio</string> + <string name="title_tile_lte">LTE</string> + <string name="title_tile_mobiledata">Dados móveis</string> + <string name="title_tile_profile">Perfil</string> + <string name="title_tile_autorotate">Orientação</string> + <string name="title_tile_settings">Configurações</string> + <string name="title_tile_screen_timeout">Tempo limite de tela</string> + <string name="title_tile_sound">Som</string> + <string name="title_tile_sync">Sincroniação</string> + <string name="title_tile_wifiap">Wi-Fi AP</string> + <string name="title_tile_wifi">Wi-Fi</string> + <string name="title_tile_wimax">WiMAX</string> + <string name="title_tile_user">Alternar usuário</string> + <string name="title_tile_networkmode">Modo de rede</string> + <string name="title_dynamic_tiles">Tiles dinâmicas</string> + <string name="title_dynamic_usbtether">Tether USB</string> + <string name="dynamic_tiles_note_title">Nota</string> + <string name="dynamic_tiles_note_summary">Tiles dinâmicos nem sempre são visíveis e só irão aparecer se forem desencadeados por eventos de sistemas</string> + <string name="title_dynamic_alarm">Alarme</string> + <string name="title_dynamic_bugreport">Relatório de erro</string> + <string name="title_dynamic_ime">Alternador de IME</string> + <string name="title_dynamic_wifi">Exibir Wi-Fi</string> + <string name="title_general">Geral</string> + <string name="title_quick_pulldown">Puxar para baixo rápido</string> + <string name="summary_quick_pulldown">Borda da barra de status para puxar Configurações Rápidas</string> + <string name="title_collapse_panel">Fechar painel automáticamente</string> + <string name="summary_collapse_panel">Fechar o painel de Configurações Rápidas ao apertar um alternador</string> + <string name="tiles_reset_title">Restaurar</string> + <string name="tiles_reset_message">Restaurar os tiles padrões exibidos e o layout?</string> + <string name="wifi_setting_countrycode_title">Código de região Wi-Fi</string> + <string name="wifi_setting_countrycode_summary">Especifique o código de região para o Wi-Fi</string> + <string name="wifi_setting_countrycode_error">Houve um problema ao definir o código de região.</string> + <string name="quick_pulldown_off">Desligado</string> + <string name="quick_pulldown_left">Esquerda</string> + <string name="quick_pulldown_right">Direita</string> + <string name="pref_wifi_disable_hdcp_title">Pular negociação HDCP</string> + <string name="pref_wifi_disable_hdcp_summary">Experimente esta opção se você consegue conectar mas não tem saída de vídeo</string> + <string name="app_security_title">Segurança dos aplicativos</string> + <string name="sms_security_check_limit_title">Limite de mensagens SMS</string> + <string name="sms_security_check_limit_summary">Aplicativos podem enviar %d mensagens durante 30 minutos antes de exigir confirmação</string> + <string name="sms_security_check_limit_default">30 (Padrão)</string> + <string name="lock_clock_title">Widget Relógio</string> + <string name="lock_clock_summary">Visualizar ou alterar como o \'cLock\' e widgets de tela de bloqueio são exibidos</string> + <string name="quick_pulldown_summary_left">Esquerda</string> + <string name="quick_pulldown_summary_right">Direita</string> + <string name="stylus_icon_enabled_title">Mostrar ícone quando usando stylus</string> + <string name="stylus_icon_enabled_summary">Mostar ponteiro quando pairando ou desenhando com o stylus</string> + <string name="accessibility_home_button_answers_call_prerefence_title">Atender chamadas com botão home</string> + <string name="navigation_bar_title">Barra de Navegação</string> + <string name="navigation_bar_help_text">1 - Para começar a editar, pressionar o ícone de travar\n\n2 - Pressionar qualquer botão para atribuir ou mudar a funcionalidade\n\n3 - Toque longo em qualquer botão para reorganizar a ordem\n\n4 - Para salvar, pressione o ícone de travar novamente\n\n5 - Para restaurar o padrão de sistema, pressione o botão de restaurar\n\n</string> + <string name="navigation_bar_tips">• Ações só podem ser atribuídas a um botão por vez\n\n• O botão home não pode ser reatribuído\n\n• Botões laterais não pode ser rearranjados</string> + <string name="navigation_bar_tips_title">Dicas rápidas</string> + <string name="navigation_bar_reset_message">Remover configurações atuais e restaurar para o padrão?</string> + <string name="navigation_bar_save_message">Configurações da barra de navegação foram salvas</string> + <string name="navigation_bar_reset_toast">Barra de navegação foi restaurada para o padrão</string> + <string name="navigation_bar_menu_editable">Editável</string> + <string name="navigation_bar_menu_locked">Travada</string> + <string name="lockscreen_maximize_widgets_title">Maximizar widgets</string> + <string name="lockscreen_maximize_widgets_summary">Mostrar widgets maximizados e o destravamento minimizado quando a tela é ligada</string> + <string name="headset_category_title">Fone de ouvido</string> + <string name="headset_connect_player_title">Abrir aplicativo de música quando conectar</string> + <string name="bluetooth_mas_request">Requisição de Acesso a Mensagem</string> + <string name="bluetooth_mas_acceptance_dialog_text">%1$s gostaria de acessar suas mensagens. Conceder acesso para %2$s?</string> + <string name="bluetooth_mas_remember_choice">Não perguntar novamente</string> + <string name="wifi_setting_priority_title">Prioridade Wi-Fi</string> + <string name="wifi_setting_priority_summary">Especificar a prioridade das redes Wi-Fi</string> + <string name="usb_mass_storage_title">Armazenamento em massa</string> + <string name="usb_mass_storage_summary">Ativar armazenamento em massa USB</string> + <string name="lockscreen_custom_background_title">Plano de fundo</string> + <string name="lockscreen_custom_background_dialog_title">Escolha a cor</string> + <string name="lockscreen_background_result_successful">Plano de fundo alterado com sucesso</string> + <string name="lockscreen_background_result_not_successful">Plano de fundo não pode ser alterado</string> + <string name="lockscreen_background_color_fill">Preenchimento de cor</string> + <string name="lockscreen_background_custom_image">Imagem personalizada</string> + <string name="lockscreen_background_default_wallpaper">Papel de parede padrão</string> + <string name="notification_convert_sound_to_vibration_title">Vibrar em todas notificações</string> + <string name="notification_convert_sound_to_vibration_summary">Em modo de vibração, todas as notificações irão vibrar independente das configurações individuais dos aplicativos</string> + <string name="safe_headset_volume_title">Volume seguro do fone de ouvido</string> + <string name="safe_headset_volume_summary">Previne volume alto quando o fone de ouvido é inserido pela primeira vez</string> + <string name="cyanogenmod_waiver_title">Garantia</string> + <string name="cyanogenmod_waiver_body">Alterar esta configuração pode ser contra as leis do seu local.\n\nAo selecionar abaixo \'OK\', você reconhece este aviso e garantia, proteção e isenção ao CyanogenMod e seus contribuintes de todas responsabilidades legais.</string> </resources> diff --git a/res/values-ro/arrays.xml b/res/values-ro/arrays.xml index f208e5e..8c46d6d 100644 --- a/res/values-ro/arrays.xml +++ b/res/values-ro/arrays.xml @@ -295,4 +295,56 @@ <item msgid="5077768429488260031">"Nu permiteţi niciodată"</item> <item msgid="1417929597727989746">"Permiteţi întotdeauna"</item> </string-array> + <string-array name="volume_overlay_entries"> + <item>"Singur"</item> + <item>"Extensibil"</item> + <item>"Extins"</item> + <item>"Nici unul"</item> + </string-array> + <string-array name="pref_zram_size_entries"> + <item>"Dezactivat"</item> + <item>10%</item> + <item>18% (prestabilit)</item> + <item>26%</item> + </string-array> + <string-array name="profile_entries"> + <item>"Activat"</item> + <item>"Dezactivat"</item> + <item>"Fără modificări"</item> + </string-array> + <string-array name="profile_connection_entries"> + <item>"Dezactivare"</item> + <item>"Activare"</item> + </string-array> + <string-array name="entries_network_widget"> + <item>"2G/3G+2G"</item> + <item>"Doar 2G/3G"</item> + <item>"Doar 2G/3G / 3G+2G"</item> + </string-array> + <string-array name="entries_flash_widget"> + <item>"Normal"</item> + <item>"Ridicat"</item> + </string-array> + <string-array name="haptic_feedback_entries"> + <item>"Utilizaţi setările globale"</item> + <item>"Activată"</item> + <item>"Dezactivată"</item> + </string-array> + <string-array name="entries_status_bar_am_pm"> + <item>"Normal"</item> + <item>"Mic"</item> + <item>"Nici unul (prestabilit)"</item> + </string-array> + <string-array name="wifi_countrycode_entries"> + <item>"Statele Unite"</item> + <item>"Canada, Taiwan"</item> + <item>"Germania"</item> + <item>"Europa"</item> + <item>"Japonia, Rusia"</item> + <item>"Australia"</item> + <item>"China"</item> + <item>"Coreea"</item> + <item>"Turcia"</item> + <item>"Singapore"</item> + </string-array> </resources> diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml index dfd4348..cb1d8a7 100644 --- a/res/values-ro/strings.xml +++ b/res/values-ro/strings.xml @@ -1,5 +1,6 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2007 The Android Open Source Project +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2007 The Android Open Source Project + 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. @@ -1831,4 +1832,592 @@ <string name="user_picture_title" msgid="7297782792000291692">"ID fotografie"</string> <string name="cell_broadcast_settings" msgid="8415582011920085222">"Transmisii celulare"</string> <string name="cell_broadcast_settings_summary" msgid="3301339398950905913">"Selectaţi tipurile de alerte de urgenţă de afişat."</string> + + <string name="quiet_hours_title">"Ore de linişte"</string> + <string name="quiet_hours_summary">"Configuraţi orele de linişte"</string> + <string name="quiet_hours_note_title">"Notă"</string> + <string name="quiet_hours_note_summary">"Apelurile primite se vor comporta ca de obicei în timpul orelor de linişte"</string> + <string name="quiet_hours_enabled">"Activaţi orele de linişte"</string> + <string name="quiet_hours_enabled_on">"Orele de linişte vor fi executate"</string> + <string name="quiet_hours_enabled_off">"Notificările vor funcţiona în mod normal"</string> + <string name="quiet_hours_start">"Începutul orelor de linişte"</string> + <string name="quiet_hours_start_summary">"Când se începe executarea orelor de linişte"</string> + <string name="quiet_hours_end">"Sfârşitul orelor de linişte"</string> + <string name="quiet_hours_end_summary">"Când se opreşte executarea orelor de linişte"</string> + <string name="quiet_hours_mute">"Suprimaţi notificările"</string> + <string name="quiet_hours_mute_on">"Nici un sunet nu va fi redat"</string> + <string name="quiet_hours_mute_off">"Sunetele se vor reda normal"</string> + <string name="quiet_hours_still">"Dezactivaţi vibraţiile"</string> + <string name="quiet_hours_still_on">"Dispozitivul nu va vibra"</string> + <string name="quiet_hours_still_off">"Dispozitivul va vibra în mod normal"</string> + <string name="quiet_hours_dim">"Dezactivaţi ind. luminos de notificare"</string> + <string name="quiet_hours_dim_on">"Ind. luminos de notificare va fi dezactivat"</string> + <string name="quiet_hours_dim_off">"Ind. luminos de notificare va funcţiona ca de obicei"</string> + <string name="quiet_hours_haptic">"Dezactivaţi vibrarea la atingere"</string> + <string name="quiet_hours_haptic_on">"Vibrarea la atingere va fi dezactivată"</string> + <string name="quiet_hours_haptic_off">"Vibrarea la atingere va funcţiona ca de obicei"</string> + <string name="quiet_hours_active_from">"Active de la"</string> + <string name="quiet_hours_active_to">"până la"</string> + <string name="start_time_title">"Început"</string> + <string name="end_time_title">"Sfârşit"</string> + + <string name="device_hostname">"Nume host dispozitiv"</string> + + <string name="mod_version">"Versiune CyanogenMod"</string> + <string name="mod_version_default">"Necunoscută"</string> + <string name="build_date">"Dată build"</string> + <string name="cpu_info">"Procesor"</string> + <string name="mem_info">"Memorie"</string> + + <string name="anonymous_statistics_title">"Statistici CyanogenMod"</string> + <string name="anonymous_statistics_summary">"Ajutaţi la îmbunătăţirea CyanogenMod, optând pentru expedierea rapoartelor statistice anonime"</string> + <string name="anonymous_statistics_warning_title">"Despre"</string> + <string name="anonymous_statistics_warning">"Optând pentru Statisticile CyanogenMod permiteţi expedierea datelor non-personale către dezvoltatorii CyanogenMod pentru urmărirea instalărilor unice în dispozitive. Informaţiile transmise includ un identificator unic, care nu compromite confidenţialitatea dvs. sau a datelor cu caracter personal. Datele sunt transmise în timpul fiecărei conectări a dispozitivului. \n\nPentru un exemplu de date care sunt expediate, apăsaţi pe Previzualizare date."</string> + <string name="enable_reporting_title">"Activaţi raportarea"</string> + <string name="preview_data_title">"Previzualizare date"</string> + <string name="view_stats_title">"Vizualizare statistici"</string> + <string name="anonymous_learn_more">"Aflaţi mai multe"</string> + <string name="anonymous_notification_desc">"Activaţi sau Dezactivaţi Statisticile CyanogenMod"</string> + + <string name="preview_id_title">"ID-ul unic"</string> + <string name="preview_device_title">"Dispozitiv"</string> + <string name="preview_version_title">"Versiune"</string> + <string name="preview_country_title">"Ţară"</string> + <string name="preview_carrier_title">"Reţea"</string> + + <string name="header_category_interface">"INTERFAŢĂ"</string> + + <string name="launcher_settings_title">"Lansator"</string> + + <string name="themes_settings_title">"Teme"</string> + + <string name="system_settings_title">"Sistem"</string> + + <string name="system_interface_title">"Interfaţă sistem"</string> + + <string name="notification_drawer_title">"Sertar notificare"</string> + + <string name="lock_screen_title">"Blocarea ecranului"</string> + + <string name="lockscreen_target_info">"Trageţi glisorul spre obiective pentru a atribui comenzi rapide"</string> + <string name="lockscreen_target_title">"Comenzi rapide - ecran de blocare"</string> + <string name="lockscreen_target_summary">"Vizualizaţi sau schimbaţi comenzile rapide personalizate pe ecranul de blocare"</string> + <string name="lockscreen_target_reset">"Comenzile rapide de pe ecranul de blocare resetate la valorile prestabilite"</string> + <string name="lockscreen_target_save">"Comenzi rapide salvate"</string> + <string name="lockscreen_target_reset_title">"Resetaţi"</string> + <string name="lockscreen_target_reset_message">"Şterge toate comenzile rapide create de utilizator pe ecranul de blocare şi restabiliţi valorile prestabilite?"</string> + <string name="lockscreen_target_empty">"Nealocat"</string> + <string name="lockscreen_target_edit_title">"Editaţi comenzile rapide şi pictograma"</string> + <string name="lockscreen_target_edit_msg">"Selectaţi sau modificaţi aplicaţia sau activitatea dorită şi pictograma asociată"</string> + + <string name="lockscreen_vibrate_enabled_title">"Vibrare"</string> + <string name="lockscreen_vibrate_enabled_head">"Vibrare la deblocare"</string> + + <string name="lockscreen_battery_status_title">"Starea bateriei"</string> + <string name="lockscreen_battery_status_charging">"Numai la încărcare"</string> + <string name="lockscreen_battery_status_alwayson">"Întotdeauna"</string> + + <string name="profiles_settings_title">"Profiluri"</string> + <string name="profiles_general_title">"General"</string> + <string name="profiles_add">"Adăugaţi"</string> + <string name="profile_menu_delete">"Ştergeţi"</string> + <string name="profile_settings_title">"Profil"</string> + <string name="profile_empty_list_profiles_off">"Pentru a configura şi utiliza profilurile de sistem, activaţi Profiluri."</string> + <string name="add_profile_dialog_title">"Creaţi un profil nou"</string> + <string name="profile_name_title">"Nume"</string> + <string name="profile_profile_name_prompt">"Introduceţi un nume pentru profilul nou"</string> + <string name="menu_new_profile">"Profil nou"</string> + <string name="menu_new_profile_summary">"Adaugaţi şi configuraţi un profil nou"</string> + <string name="new_profile_name">"<profil nou>"</string> + <string name="rename_dialog_title">"Redenumiţi"</string> + <string name="rename_dialog_message">"Introduceţi un nume nou"</string> + <string name="duplicate_profile_name">"Nume de profil existent!"</string> + <string name="duplicate_appgroup_name">"Nume grup aplicaţii existent!"</string> + <string name="profile_reset_title">"Restabiliţi"</string> + <string name="profile_reset_message">"Ştergeţi toate profilurile create de utilizator şi a grupurilor de aplicaţii şi restabiliţi setările prestabilite?"</string> + <string name="profile_delete_confirm">"Ştergeţi acest profil?"</string> + <string name="profile_app_delete_confirm">"Eliminaţi această aplicaţie?"</string> + <string name="profile_cannot_delete">"Un profil activ nu poate fi şters"</string> + <string name="profile_connectionoverrides_title">"Conexiune"</string> + <string name="profile_volumeoverrides_title">"Volum"</string> + <string name="profile_vibratoroverrides_title">"Vibraţii"</string> + <string name="connection_state_disabled">"Dezactivaţi"</string> + <string name="connection_state_enabled">"Activaţi"</string> + <string name="volume_override_summary">"Setaţi la"</string> + <string name="vibrator_state_disabled">"Dezactivat"</string> + <string name="vibrator_state_enabled">"Activat"</string> + <string name="vibrator_state_silent">"Numai în silenţios"</string> + <string name="profile_profiles_manage">"Profiluri"</string> + <string name="profile_profile_manage">"Gestionaţi profilul"</string> + <string name="profile_applist_manage">"Listă de aplicaţii"</string> + <string name="profile_appgroups_manage">"Grupe de aplicaţii"</string> + <string name="profile_appgroup_manage">"Gestionaţi grupul de aplicaţii"</string> + <string name="profile_settings">"Setări profil"</string> + <string name="profile_name">"Nume"</string> + <string name="sound_mode">"Mod notificare"</string> + <string name="ringer_mode">"Mod ton de apel"</string> + <string name="lights_mode">"Mod ind. de lumină"</string> + <string name="vibrate_mode">"Mod vibrare"</string> + <string name="choose_soundtone">"Alegeţi ton de notificare"</string> + <string name="choose_ringtone">"Alegeţi ton de apel"</string> + <string name="soundtone_title">"Ton notificare"</string> + <string name="profile_appgroups_title">"Grupe de aplicaţii"</string> + <string name="profile_applist_title">"Aplicaţii"</string> + <string name="profile_new_appgroup">"Grup de aplicaţii nou"</string> + <string name="profile_delete_appgroup">"Ştergeţi acest grup aplicaţii?"</string> + <string name="profile_appgroup_name_prompt">"Introduceţi un nume pentru noul grup de aplicaţii"</string> + <string name="profile_appgroup_name_title">"Nume"</string> + <string name="profile_add_app">"Adăugaţi aplicaţie"</string> + <string name="profile_delete_app">"Eliminaţi aplicaţia"</string> + <string name="profile_choose_app">"Alegeţi aplicaţia"</string> + <string name="profile_settings_header">"Setări profil"</string> + <string name="profile_system_settings_title">"Setări de sistem"</string> + <string name="profile_lockmode_title">"Mod blocare ecran"</string> + <string name="profile_lockmode_default">"Prestabilit"</string> + <string name="profile_lockmode_insecure">"Nesigur"</string> + <string name="profile_lockmode_disabled">"Dezactivat"</string> + <string name="profile_lockmode_default_summary">"Utilizaţi valorile prestabilite"</string> + <string name="profile_lockmode_insecure_summary">"Utilizaţi ecranul de blocare nesigur"</string> + <string name="profile_lockmode_disabled_summary">"Blocarea ecranului este dezactivată"</string> + <string name="profile_airplanemode_title">"Mod avion"</string> + <string name="profile_disable_screen_lock_summary">"Dezactivaţi securitatea blocării ecranului în timp ce acest profil este activ"</string> + + <string name="vibrator_type_ringer">"Apeluri"</string> + <string name="vibrator_type_notification">"Notificări"</string> + + <string name="possibleButtons">"Butoane posibile"</string> + <string name="toggleWifi">"Wi-Fi"</string> + <string name="toggleWifiAp">"Hotspot Wi-Fi"</string> + <string name="toggleBluetooth">"Bluetooth"</string> + <string name="toggleGPS">"GPS"</string> + <string name="toggleData">"Date"</string> + <string name="toggleSync">"Sincronizare"</string> + <string name="toggle2g3g">"2G/3G"</string> + <string name="toggleSound">"Mod sunet"</string> + <string name="toggleBrightness">"Iluminare"</string> + <string name="toggleAutoRotate">"Orientare"</string> + <string name="toggleScreenTimeout">"Durată ilum. ecran"</string> + <string name="toggleAirplane">"Avion"</string> + <string name="toggleFlashlight">"Bliţ"</string> + <string name="toggleLockScreen">"Blocare ecran"</string> + <string name="toggleWimax">"WiMAX"</string> + + <string name="screen_security_category">"Securitate ecran"</string> + <string name="screen_security_title">"Blocarea ecranului"</string> + <string name="screen_security_summary">"Vizualizaţi sau modificaţi setările de securitate blocare a ecranului, de întârziere şi timeout"</string> + <string name="additional_options_title">"Opţiuni suplimentare"</string> + <string name="unlock_menu_unlock_title">"Deblocare Meniu"</string> + <string name="unlock_menu_unlock_summary">"Apăsând butonul Meniu deblocaţi dispozitivul"</string> + <string name="unlock_home_unlock_title">"Deblocare cu butonul Home"</string> + <string name="unlock_home_unlock_summary">"Apăsând butonul Home deblocaţi dispozitivul"</string> + <string name="unlock_quick_unlock_control_title">"Deblocare rapidă"</string> + <string name="unlock_quick_unlock_control_summary">"Deblocare automată când este introdus corect PIN-ul/parola"</string> + + <string name="delay_and_timeout_title">"Întârziere blocare"</string> + <string name="slide_lock_delay_title">"Întârziere blocare ecran"</string> + <string name="slide_lock_timeout_delay_title">"Întârziere după timeout"</string> + <string name="slide_lock_screenoff_delay_title">"Întârziere după deconect. ecran"</string> + <string name="slide_lock_delay_none">"Nici unul"</string> + <string name="slide_lock_delay_1s">"1 secundă"</string> + <string name="slide_lock_delay_5s">"5 secunde"</string> + <string name="slide_lock_delay_10s">"10 secunde"</string> + <string name="slide_lock_delay_15s">"15 secunde"</string> + <string name="slide_lock_delay_30s">"30 secunde"</string> + <string name="slide_lock_delay_1m">"1 minută"</string> + <string name="slide_lock_delay_5m">"5 minute"</string> + <string name="slide_lock_delay_10m">"10 minute"</string> + <string name="slide_lock_delay_30m">"30 minute"</string> + + <string name="performance_settings_title">"Performanţă"</string> + <string name="performance_settings_warning_title">"Procedaţi cu prudenţă"</string> + <string name="performance_settings_warning">"Aceste setări sunt incluse pentru experimentare şi orice modificări aduse acestora au potenţialul de a provoca instabilitate, eşecuri, accidente, pierderi de date\n\nSolicităm să nu depuneţi rapoarte de erori în cazul în care oricare dintre aceste setări au fost modificate de la setările prestabilite."</string> + <string name="processor_title">"Procesor"</string> + <string name="processor_summary">"Modificaţi CPU governor şi viteza de ceas"</string> + <string name="cpu_cur_freq_title">"Frecvenţa curentă a procesorului"</string> + <string name="cpu_governors_title">"CPU governor"</string> + <string name="cpu_min_freq_title">"Frecvenţa minimă a procesorului"</string> + <string name="cpu_max_freq_title">"Frecvenţa maximă a procesorului"</string> + <string name="cpu_set_on_boot">"Setaţi la pornire"</string> + <string name="cpu_set_on_boot_summary">"Restabiliţi setările procesorului la conectarea dispozitivului"</string> + + <string name="io_scheds_title">"Planificator I/O"</string> + <string name="io_scheds_summary">"Modificaţi planificatorul I/O"</string> + <string name="io_sched_title">"Planificator I/O"</string> + <string name="io_sched_set_on_boot">"Setaţi la pornire"</string> + <string name="io_sched_set_on_boot_summary">"Restabiliţi setările planificatorului la conectarea dispozitivului"</string> + + <string name="memory_management_title">"Gestionaţi memoria"</string> + <string name="memory_management_summary">"Particularizaţi utilizarea memoriei pentru a modifica performanţele sistemului"</string> + + <string name="pref_zram_title">"zRam"</string> + <string name="pref_zram_summary">"Comprimaţi memoria pentru o capacitate crescută a memoriei virtuale (necesită repornirea sistemului)"</string> + + <string name="pref_ksm_title">"KSM (îmbinare pagini identice nucleu)"</string> + <string name="pref_ksm_summary">"KSM reduce cerinţele faţă de memoria fizică şi îmbunătăţeşte performanţa"</string> + + <string name="pref_purgeable_assets_title">"Permite purjarea de active"</string> + <string name="pref_purgeable_assets_summary">"Purjarea activelor memoriei bitmap permite eliberarea RAM-ului atunci când este nevoie (necesită repornirea sistemului)"</string> + + <string name="pref_use_dithering_title">"Îmbunătăţirea suprafeţei"</string> + <string name="dithering_no_dither">"Dezactivaţi cuantizarea"</string> + <string name="dithering_color_banding">"Reparaţi formarea benzilor de culoare (prestabilit)"</string> + <string name="dithering_blur_effect">"Reparaţi formarea benzilor de culoare şi efectul de estompare"</string> + + <string name="pref_use_16bpp_alpha_title">"Transparenţă 16bit"</string> + <string name="pref_use_16bpp_alpha_summary">"Performanţă grafică mai bună, dar de calitate inferioară şi poate provoca artefacte vizuale (necesită repornire)"</string> + + <string name="display_rotation_title">Rotire ecran</string> + <string name="display_rotation_disabled">Dezactivată</string> + <string name="display_rotation_unit">grade</string> + <string name="display_rotation_category_title">Moduri rotire</string> + <string name="display_rotation_0_title">0 grade</string> + <string name="display_rotation_90_title">90 de grade</string> + <string name="display_rotation_180_title">180 de grade</string> + <string name="display_rotation_270_title">270 de grade</string> + + <string name="picker_activities">"Activităţi"</string> + <string name="select_custom_app_title">"Selectaţi aplicaţie particularizată"</string> + <string name="select_custom_activity_title">"Selectaţi activitate personalizată"</string> + <string name="icon_picker_choose_icon_title">"Alegeţi pictograma"</string> + <string name="icon_picker_alarm">"Alarmă"</string> + <string name="icon_picker_browser">"Browser"</string> + <string name="icon_picker_calendar">"Calendar"</string> + <string name="icon_picker_camera">"Cameră foto"</string> + <string name="icon_picker_chrome">"Chrome"</string> + <string name="icon_picker_email">"E-mail"</string> + <string name="icon_picker_email2">"E-mail Holo"</string> + <string name="icon_picker_facebook">"Facebook"</string> + <string name="icon_picker_gallery">"Galerie"</string> + <string name="icon_picker_google_small">"Google (mic)"</string> + <string name="icon_picker_googleplus">"Google Plus"</string> + <string name="icon_picker_googletalk">"Google Talk"</string> + <string name="icon_picker_maps">"Hărţi"</string> + <string name="icon_picker_movie">"Film"</string> + <string name="icon_picker_music">"Muzică"</string> + <string name="icon_picker_nav_normal">"Navigare"</string> + <string name="icon_picker_phone">"Telefon"</string> + <string name="icon_picker_podcast">"Podcast"</string> + <string name="icon_picker_rss">"Rss"</string> + <string name="icon_picker_search">"Căutare"</string> + <string name="icon_picker_sms">"Mesagerie"</string> + <string name="icon_picker_twitter">"Twitter"</string> + + <string name="icon_picker_title">"Alegeţi sursa pictogramei"</string> + <string name="icon_picker_system_icons_title">"Pictograme de sistem"</string> + <string name="icon_picker_gallery_title">"Galerie"</string> + <string name="icon_picker_pack_title">"Icon Pack"</string> + + <string name="increasing_ring_title">"Ton de apel ascendent"</string> + + <string name="checkbox_increasing_ring">"Activat"</string> + + <string name="increasing_ring_min_volume_title">"Volumul de pornire al soneriei"</string> + <string name="increasing_ring_volume_notice">"Notă:\nFiindcă volumul soneriei de pornire este setat mai mare decât volumul soneriei, tonul de apel se va reda folosind volumul soneriei."</string> + <string name="increasing_ring_interval_title">"Intervalul de creştere"</string> + <string name="increasing_ring_interval_eachring">"La fiecare sonerie"</string> + <string name="increasing_ring_interval_half_second">"0.5 secunde"</string> + <string name="increasing_ring_interval_1second">"1 secundă"</string> + <string name="increasing_ring_interval_2seconds">"2 secunde"</string> + <string name="increasing_ring_interval_3seconds">"3 secunde"</string> + <string name="increasing_ring_interval_5seconds">"5 secunde"</string> + <string name="increasing_ring_interval_10seconds">"10 secunde"</string> + + <string name="profile_write_nfc_tag">"Scrieţi în tag-ul NFC"</string> + <string name="profile_write_touch_tag">"Atingeţi tag-ul pentru a scrie"</string> + <string name="profile_write_success">"Tag-ul scris cu succes"</string> + <string name="profile_write_failed">"Scrierea tag-ului nu a reuşit!"</string> + <string name="profile_selected">"Profilul selectat: %1$s"</string> + <string name="profile_nfc_text">"Scrierea unui profil în tag-ul NFC permite atingerea tag-ului pentru selectarea profilului. Apăsând a doua oară, va selecta profilul selectat anterior."</string> + <string name="profile_unknown_nfc_tag">"Profil necunoscut"</string> + <string name="profile_add_nfc_text">"Aceast tag NFC se referă la un profil necunoscut. Ataşarea aceastui tag NFC la un profil existent va permite selectarea profilului în viitor."</string> + <string name="profile_select">"Selectaţi profilul"</string> + + <string name="link_volume_ringtones">"Leagă volum ton. de apel şi notificări"</string> + <string name="link_volume_mutes">"Modul silenţios afectează notificările"</string> + + <string name="notification_light_general_title">"General"</string> + <string name="notification_light_applist_title">"Aplicaţii"</string> + <string name="notification_light_phonelist_title">"Telefon"</string> + <string name="notification_light_use_custom">"Utilizaţi valorile personalizate"</string> + <string name="notification_light_enabled">"Activat"</string> + <string name="notification_light_disabled">"Dezactivat"</string> + <string name="notification_light_default_value">"Prestabilit"</string> + <string name="notification_light_missed_call_title">"Apel nepreluat"</string> + <string name="notification_light_voicemail_title">"Mesagerie vocală"</string> + + <string name="edit_light_settings">"Editaţi setările indicatorului luminos"</string> + <string name="pulse_speed_title">"Durată, impuls şi viteză"</string> + <string name="default_time">"Normal"</string> + <string name="custom_time">"Personalizat"</string> + <string name="dialog_test">"Test"</string> + <string name="dialog_delete_title">"Ştergeţi"</string> + <string name="dialog_delete_message">"Ştergeţi elementul ales?"</string> + <string name="dialog_test_message">"Deconectaţi ecranul pentru a vedea notificarea selectată în acţiune sau revocaţi acest dialog pentru a opri testul"</string> + <string name="dialog_test_button">"Revocaţi"</string> + + <string name="pulse_length_always_on">"Activat permanent"</string> + <string name="pulse_length_very_short">"Foarte scurt"</string> + <string name="pulse_length_short">"Scurt"</string> + <string name="pulse_length_normal">"Normal"</string> + <string name="pulse_length_long">"Lung"</string> + <string name="pulse_length_very_long">"Foarte lung"</string> + <string name="pulse_speed_very_fast">"Foarte rapid"</string> + <string name="pulse_speed_fast">"Rapid"</string> + <string name="pulse_speed_normal">"Normal"</string> + <string name="pulse_speed_slow">"Lent"</string> + <string name="pulse_speed_very_slow">"Foarte lent"</string> + + <string name="battery_light_title">"Ind. luminos pt. acumulator"</string> + <string name="battery_low_pulse_title">"Pulsare în cazul în care bateria este descărcată"</string> + <string name="battery_light_list_title">"Culori"</string> + <string name="battery_light_low_color_title">"Acumulator descărcat"</string> + <string name="battery_light_medium_color_title">"Încărcare"</string> + <string name="battery_light_full_color_title">"Încărcat"</string> + + <string name="volume_overlay_title">"Stil panou volumul"</string> + <string name="volbtn_music_controls_title">"Control muzică cu butoanele de volum"</string> + <string name="volbtn_music_controls_summary">"Atunci când ecranul este deconectat, apăsarea lungă a butoanelor de volum va schimba piesele muzicale"</string> + <string name="volume_ring_only_description">"Ton de apel"</string> + <string name="ring_mode_title">"Mod sonerie"</string> + <string name="ring_mode_normal">"Normal"</string> + <string name="ring_mode_vibrate">"Vibrare"</string> + <string name="ring_mode_mute">"Silenţios"</string> + + <string name="hardware_keys_title">"Butoane hardware"</string> + <string name="hardware_keys_bindings_title">"Acţiuni butoane"</string> + <string name="hardware_keys_enable_custom_title">"Activaţi acţiuni personalizate"</string> + <string name="hardware_keys_home_long_press_title">"Butonul home (apăsare lungă)"</string> + <string name="hardware_keys_menu_press_title">"Butonul meniu"</string> + <string name="hardware_keys_menu_long_press_title">"Butonul meniu (apăsare lungă)"</string> + <string name="hardware_keys_assist_press_title">"Butonul căutare"</string> + <string name="hardware_keys_assist_long_press_title">"Butonul căutare (apăsare lungă)"</string> + <string name="hardware_keys_app_switch_press_title">"Butonul comutator aplicaţii"</string> + <string name="hardware_keys_app_switch_long_press_title">"Butonul comutator aplicaţii (apăsare lungă)"</string> + <string name="hardware_keys_show_overflow_title">"Arătaţi butonul de acţiune"</string> + <string name="hardware_keys_show_overflow_summary">"Arătaţi butonul de meniu (3 puncte) în interiorul aplicaţiilor"</string> + <string name="hardware_keys_show_overflow_toast_enable">"Butonul de acţiune poate să nu fie vizibil până la repornirea aplicaţiilor"</string> + <string name="hardware_keys_show_overflow_toast_disable">"Butonul de acţiune poate să nu fie ascuns până la repornirea aplicaţiilor"</string> + <string name="hardware_keys_action_nothing">"Nici o acţiune"</string> + <string name="hardware_keys_action_menu">"Deschide/închide meniul"</string> + <string name="hardware_keys_action_app_switch">"Comutator aplicaţii recente"</string> + <string name="hardware_keys_action_search">"Asistent căutare"</string> + <string name="hardware_keys_action_voice_search">"Căutare vocală"</string> + <string name="hardware_keys_action_in_app_search">"Căutare în int. aplicaţiilor"</string> + + <string name="power_widget_title">"Power Widget"</string> + <string name="title_expanded_widget">"Power widget"</string> + <string name="power_widget_behavior">"Comportament widget"</string> + <string name="title_expanded_hide_onchange">"Închideţi sertarul la modificare"</string> + <string name="title_expanded_hide_indicator">"Ascundeţi indicatorii"</string> + <string name="title_expanded_hide_scrollbar">"Ascundeţi bara de defilare"</string> + <string name="title_widget_picker">"Butoane widget"</string> + <string name="summary_widget_picker">"Vizualizaţi sau modificaţi butoanele afişate"</string> + <string name="title_widget_order">"Ordinea butoanelor"</string> + <string name="summary_widget_order">"Vizualizaţi sau modificaţi ordinea butoanelor"</string> + <string name="title_buttons">"Butoane"</string> + <string name="title_toggle_wifi">"Wi-Fi"</string> + <string name="title_toggle_bluetooth">"Bluetooth"</string> + <string name="title_toggle_gps">"GPS"</string> + <string name="title_toggle_sound">"Comutare sunet"</string> + <string name="title_toggle_brightness">"Luminozitate"</string> + <string name="title_toggle_sync">"Sincronizare"</string> + <string name="title_toggle_wifiap">"Hotspot Wi-Fi"</string> + <string name="title_toggle_screentimeout">"Durată ilum. ecran"</string> + <string name="title_toggle_mobiledata">"Date"</string> + <string name="title_toggle_lockscreen">"Blocare ecran"</string> + <string name="title_toggle_networkmode">"Mod rețea"</string> + <string name="title_toggle_autorotate">"Orientare"</string> + <string name="title_toggle_airplane">"Modul avion"</string> + <string name="title_toggle_flashlight">"Bliţ"</string> + <string name="title_toggle_sleep">"Adormire"</string> + <string name="title_toggle_media_play_pause">"Media: Redare/Pauză"</string> + <string name="title_toggle_media_previous">"Media: Salt la anterioară"</string> + <string name="title_toggle_media_next">"Media: Salt la următoarea"</string> + <string name="title_toggle_lte">"LTE"</string> + <string name="title_toggle_wimax">"WiMax"</string> + <string name="title_button_modes">"Moduri buton"</string> + <string name="pref_brightness_mode_title">" Moduri Luminozitate"</string> + <string name="pref_brightness_mode_summary">Vizualizaţi sau schimbaţi modurile butonului Luminozitate"</string> + <string name="cm_brightness_mode_auto">"Auto"</string> + <string name="cm_brightness_mode_dim">"Întunecat"</string> + <string name="pref_network_mode_title">"Moduri reţea"</string> + <string name="pref_screentimeout_mode_title">"Moduri durată ilum. ecran"</string> + <string name="pref_ring_mode_title">"Moduri sunet"</string> + <string name="pref_ring_mode_summary">Vizualizaţi sau schimbaţi modurile butonului de sunet"</string> + <string name="cm_sound_mode_silent">"Silenţios"</string> + <string name="cm_sound_mode_vibrate">"Vibrare"</string> + <string name="cm_sound_mode_sound">"Sunet"</string> + <string name="cm_sound_mode_soundVibrate">"Sunet + Vibrare"</string> + <string name="pref_flash_mode_title">"Mod bliţ"</string> + <string name="expanded_haptic_feedback_title">"Vibrare la atingere"</string> + + <string name="kill_app_longpress_back">"Butonul Înapoi opreşte aplicaţia"</string> + <string name="kill_app_longpress_back_summary">"Opriţi aplicaţia din prim-plan la apăsarea lungă a tastei Înapoi"</string> + + <string name="changelog_title">"Jurnal schimbări"</string> + <string name="changelog_loading">"Se încarcă\u2026"</string> + <string name="changelog_error">"Imposibil de încărcat jurnalul schimbărilor"</string> + <string name="changelog_unknown">"Necunoscut"</string> + <string name="changelog_version">"Versiune"</string> + + <string name="power_menu_title">"Meniul Power"</string> + <string name="power_menu_reboot_title">"Meniul Repornire"</string> + <string name="power_menu_screenshot_title">"Screenshot"</string> + <string name="power_menu_expanded_desktop">"Desktop extins"</string> + <string name="power_menu_profiles_title">"Schimbare profil"</string> + <string name="power_menu_airplane_title">"Mod avion"</string> + <string name="power_menu_user_title">"Comutare utilizator"</string> + <string name="power_menu_sound_title">"Panou sunet"</string> + + <string name="cmupdate_settings_title">"Actualizări CyanogenMod"</string> + <string name="cmupdate_settings_summary">"Verificaţi actualizări disponibile"</string> + + <string name="advanced_settings_title">"Avansat"</string> + + <string name="ime_switcher_notify">"Selector notificare"</string> + <string name="ime_switcher_notify_summary">"Arătați notificarea pentru selectorul metodelor de intrare"</string> + + <string name="status_bar_title">"Bara de stare"</string> + <string name="status_bar_clock_title">"Ceas"</string> + <string name="status_bar_general_title">"General"</string> + <string name="status_bar_show_clock_title">"Arătaţi ceasul în bara de stare"</string> + <string name="status_bar_am_pm_title">" Stil AM/PM"</string> + <string name="status_bar_am_pm_info">"Afişare 24 de ore activată"</string> + <string name="status_bar_battery_title">"Stil stare baterie"</string> + <string name="status_bar_toggle_brightness">"Control luminozitate"</string> + <string name="status_bar_toggle_brightness_summary">"Reglaţi luminozitatea glisând peste bara de stare"</string> + <string name="status_bar_toggle_info">"Luminozitate automată este activată"</string> + <string name="status_bar_signal_text_title">"Stil stare semnal"</string> + <string name="status_bar_style_icon">"Pictogramă"</string> + <string name="status_bar_style_hidden">"Ascuns"</string> + <string name="status_bar_signal_text_show_text">"Text"</string> + <string name="status_bar_battery_status_percentage">"Procentaj"</string> + <string name="status_bar_battery_status_circle">"Inel"</string> + <string name="status_bar_battery_status_circle_percentage">"Inel cu procentaj"</string> + + <string name="status_bar_notif_count_title">"Arătați numărul de notificări"</string> + <string name="status_bar_notif_count_summary">"Arătaţi numărul de notificări în aşteptare"</string> + + <string name="display_category_wakeup_options_title">"Opţiuni trezire"</string> + <string name="pref_volume_wake_title">"Trezire cu butoanele de volum"</string> + <string name="pref_volume_wake_summary">"Apăsând butoanele de volum sus/jos veţi trezi dispozitivul"</string> + + <string name="adb_notify">"Notificare Depanare USB"</string> + <string name="adb_notify_summary">"Arătați o notificare atunci când depanarea USB este conectată"</string> + + <string name="development_tools_title">"Lansare instrumente"</string> + + <string name="adb_over_network">"ADB în reţea"</string> + <string name="adb_over_network_summary">"Activaţi depanare TCP/IP prin interfeţe de reţea (Wi-Fi, reţele USB). Această setare este resetată la repornire"</string> + <string name="adb_over_network_warning">"AVERTISMENT: Atunci când ADB prin reţea este activat, telefonul este deschis pentru intruziunile prin toate reţelele conectate, inclusiv reţeaua de date GSM!\n\nUtilizaţi această funcţie numai atunci când sunteţi conectat la reţelele de încredere.\n\nSigur doriţi să activaţi această funcţie?"</string> + + <string name="lockscreen_buttons_title">"Acţiuni Butoane"</string> + <string name="lockscreen_buttons_summary">"Vizualizaţi sau modificaţi acţiunile butoanelor în ecranul de blocare"</string> + <string name="lockscreen_long_press_back_title">"Apăsarea lungă a buton. Înapoi"</string> + <string name="lockscreen_long_press_home_title">"Apăsarea lungă a buton. Home"</string> + <string name="lockscreen_long_press_menu_title">"Apăsarea lungă a buton. Meniu"</string> + <string name="lockscreen_buttons_no_action">"Nici o acţiune"</string> + <string name="lockscreen_buttons_flashlight">"Bliţ"</string> + <string name="lockscreen_buttons_next">"Melodia următoare"</string> + <string name="lockscreen_buttons_previous">"Melodia precedentă"</string> + <string name="lockscreen_buttons_playpause">"Redare/pauză muzică"</string> + <string name="lockscreen_buttons_toggle_sound">"Comutare sunet"</string> + + <string name="quick_settings_panel_title">"Panou Setări Rapide"</string> + <string name="quick_settings_title">"Setări Rapide"</string> + <string name="title_static_tiles">"Dale statice"</string> + <string name="tile_picker_title">"Dale şi aspect"</string> + <string name="tile_picker_summary">"Vizualizaţi, selectați sau modificați aspectul dalelor afișate"</string> + <string name="tile_choose_title">"Alegeţi o dală"</string> + <string name="title_tile_airplane">"Mod Avion"</string> + <string name="title_tile_battery">"Acumulator"</string> + <string name="title_tile_bluetooth">"Bluetooth"</string> + <string name="title_tile_brightness">"Luminozitate"</string> + <string name="title_tile_sleep">"Adormire"</string> + <string name="title_tile_gps">"GPS"</string> + <string name="title_tile_torch">"Bliţ LED"</string> + <string name="title_tile_lockscreen">"Blocare ecran"</string> + <string name="title_tile_lte">"LTE"</string> + <string name="title_tile_mobiledata">"Date"</string> + <string name="title_tile_profile">Profil</string> + <string name="title_tile_autorotate">"Orientare"</string> + <string name="title_tile_settings">"Setări"</string> + <string name="title_tile_sound">"Sunet"</string> + <string name="title_tile_sync">"Sincronizare"</string> + <string name="title_tile_wifiap">"Hotspot Wi-Fi"</string> + <string name="title_tile_wifi">"Wi-Fi"</string> + <string name="title_tile_wimax">"WiMAX"</string> + <string name="title_tile_user">"Comutare utilizator"</string> + <string name="title_tile_networkmode">"Mod rețea"</string> + <string name="title_tile_screen_timeout">"Durată ilum. ecran"</string> + + <string name="title_dynamic_tiles">"Dale dinamice"</string> + <string name="dynamic_tiles_note_title">"Notă"</string> + <string name="dynamic_tiles_note_summary">"Dalele dinamice nu sunt întotdeauna vizibile şi vor fi vizibile numai în cazul în care sunt declanşate de un eveniment de sistem"</string> + <string name="title_dynamic_alarm">"Alarme"</string> + <string name="title_dynamic_bugreport">"Raport erori"</string> + <string name="title_dynamic_ime">Selector IME"</string> + <string name="title_dynamic_wifi">"Wi-Fi"</string> + + <string name="title_general">"General"</string> + <string name="title_quick_pulldown">"Setări Rapide"</string> + <string name="summary_quick_pulldown">"La tragerea în jos a barei de stare din partea %1$s se deschid Setările Rapide"</string> + + <string name="quick_pulldown_off">"Dezactivate"</string> + <string name="quick_pulldown_summary_left">"stângă"</string> + <string name="quick_pulldown_summary_right">"dreaptă"</string> + <string name="quick_pulldown_left">"stângă"</string> + <string name="quick_pulldown_right">"dreaptă"</string> + <string name="title_collapse_panel">"Închidere automată panou"</string> + <string name="summary_collapse_panel">"Închideţi panoul Setărilor Rapide după comutare"</string> + + <string name="tiles_reset_title">"Resetaţi"</string> + <string name="tiles_reset_message">"Restauraţi dalele şi aspectul implicit?"</string> + <string name="volume_key_cursor_control_title">"Control cursor butoane de volum"</string> + <string name="volume_key_cursor_control_off">"Dezactivat"</string> + <string name="volume_key_cursor_control_on">"Volumul sus/jos deplasează cursorul la stânga/dreapta"</string> + <string name="volume_key_cursor_control_on_reverse">Volumul sus/jos deplasează cursorul la dreapta/stânga"</string> + + <string name="pref_wifi_disable_hdcp_title">"Salt negociere HDCP"</string> + <string name="pref_wifi_disable_hdcp_summary">"încercați această opțiune dacă vă puteți conecta, dar nu primiți nimic la ieșire"</string> + + <string name="wifi_setting_countrycode_title">"Cod regiune Wi-Fi"</string> + <string name="wifi_setting_countrycode_summary">"Specificaţi codul regiunii pentru Wi-Fi"</string> + <string name="wifi_setting_countrycode_error">"A apărut o problemă la setarea codului regiunii."</string> + <string name="app_security_title">"Securitate Aplicaţii"</string> + <string name="sms_security_check_limit_title">"Limita mesajelor SMS"</string> + <string name="sms_security_check_limit_summary">"Afişaţi un dialog de avertizare pentru a preveni trimiterea de mesaje SMS prea des. Limita curentă: %d mesaje în 15 minute"</string> + <string name="sms_security_check_limit_default">"30 (Prestabilit)"</string> + + <string name="root_access">"Acces Root"</string> + <string name="root_access_warning_title">"Permiteţi accesul Root?"</string> + <string name="root_access_none">"Dezactivat"</string> + <string name="root_access_warning_message">"Acordarea accesului Root aplicaţiilor este foarte periculoasă şi ar putea compromite securitatea sistemului Dvs.!"</string> + <string name="root_access_apps">"Numai pentru aplicaţii"</string> + <string name="root_access_adb">"Numai pentru ADB"</string> + <string name="root_access_all">"Aplicaţii şi ADB"</string> + + <string name="stylus_icon_enabled_title">"Arfişaţi pictograma când utilizaţi un stylus"</string> + <string name="stylus_icon_enabled_summary">"Afişaţi indicatorul atunci când desenaţi cu stylus-ul"</string> + + <string name="lock_clock_title">"Widget ceas"</string> + <string name="lock_clock_summary">"Vizualizați sau modificați cum va arăta obiectul widget \"cLock\" pe ecranul principal și ecranul de blocare"</string> + + <string name="lockscreen_maximize_widgets_title">"Maximizare obiecte widget"</string> + <string name="lockscreen_maximize_widgets_summary">"Arătați obiectele widget maximizate și deblocarea minimizată atunci când conectați ecranul"</string> + + <string name="accessibility_home_button_answers_call_prerefence_title">"Butonul de pornire acceptă apelul"</string> + + <string name="headset_category_title">"Set cu cască"</string> + <string name="headset_connect_player_title">"Redare muzică la conectare"</string> + + <string name="navigation_bar_title">"Bara de navigare"</string> + <string name="navigation_bar_help_text">"1 - Pentru a începe editarea, apăsaţi pictograma de blocare\n\n2 - Atingeţi orice buton pentru a atribui sau a modifica funcţionalitatea\n\n3 - Apăsaţi lung orice buton pentru a rearanja ordinea\n\n4 - Pentru a memora, apăsaţi din nou pictograma de blocare\n\n5 - Pentru a restabili valorile prestabilite de sistem, apăsaţi butonul de resetare\n\n"</string> + <string name="navigation_bar_tips">"• Acţiunile pot fi atribuite numai unui singur buton la un moment dat\n\n• Butonul home nu poate fi re-alocat\n\n• Butoanele laterale nu pot fi rearanjate"</string> + <string name="navigation_bar_tips_title">"Sfaturi rapide"</string> + <string name="navigation_bar_reset_message">"Ştergeţi setările curente şi restabiliţi setările prestabilite?</string> + <string name="navigation_bar_save_message">"Setările barei de navigare salvate"</string> + <string name="navigation_bar_reset_toast">"Bara de navigare resetată la valorile prestabilite"</string> + <string name="navigation_bar_menu_editable">"Editabilă"</string> + <string name="navigation_bar_menu_locked">"Blocată"</string> </resources> diff --git a/res/values-ru/arrays.xml b/res/values-ru/arrays.xml index c025ed0..13dda54 100644 --- a/res/values-ru/arrays.xml +++ b/res/values-ru/arrays.xml @@ -81,13 +81,13 @@ </string-array> <string-array name="wifi_status"> <item msgid="1922181315419294640"></item> - <item msgid="8934131797783724664">"Поиск..."</item> - <item msgid="8513729475867537913">"Подключение..."</item> - <item msgid="515055375277271756">"Аутентификация..."</item> - <item msgid="1943354004029184381">"Получение IP-адреса..."</item> + <item msgid="8934131797783724664">"Поиск\u2026"</item> + <item msgid="8513729475867537913">"Подключение\u2026"</item> + <item msgid="515055375277271756">"Аутентификация\u2026"</item> + <item msgid="1943354004029184381">"Получение IP-адреса\u2026"</item> <item msgid="4221763391123233270">"Подключено"</item> <item msgid="624838831631122137">"Приостановлено"</item> - <item msgid="7979680559596111948">"Отключение..."</item> + <item msgid="7979680559596111948">"Отключение\u2026"</item> <item msgid="1634960474403853625">"Нет подключения"</item> <item msgid="746097431216080650">"Сбой"</item> <item msgid="6367044185730295334">"Заблокировано"</item> @@ -95,9 +95,9 @@ </string-array> <string-array name="wifi_status_with_ssid"> <item msgid="7714855332363650812"></item> - <item msgid="8878186979715711006">"Поиск..."</item> + <item msgid="8878186979715711006">"Поиск\u2026"</item> <item msgid="355508996603873860">"Соединение с сетью <xliff:g id="NETWORK_NAME">%1$s</xliff:g>…"</item> - <item msgid="554971459996405634">"Аутентификация в сети <xliff:g id="NETWORK_NAME">%1$s</xliff:g>..."</item> + <item msgid="554971459996405634">"Аутентификация в сети <xliff:g id="NETWORK_NAME">%1$s</xliff:g>\u2026"</item> <item msgid="7928343808033020343">"Получение IP-адреса от <xliff:g id="NETWORK_NAME">%1$s</xliff:g>…"</item> <item msgid="8937994881315223448">"Подключено к <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</item> <item msgid="1330262655415760617">"Приостановлено"</item> @@ -227,7 +227,7 @@ <item msgid="45075631231212732">"Всегда использовать проверку HDCP"</item> </string-array> <string-array name="window_animation_scale_entries"> - <item msgid="8134156599370824081">"Отключение анимации"</item> + <item msgid="8134156599370824081">"Без анимации"</item> <item msgid="6624864048416710414">"Анимация (масштаб: 0,5x)"</item> <item msgid="2219332261255416635">"Анимация (масштаб: 1x)"</item> <item msgid="3544428804137048509">"Анимация (масштаб: 1,5x)"</item> @@ -236,7 +236,7 @@ <item msgid="6189539267968330656">"Анимация (масштаб: 10x)"</item> </string-array> <string-array name="transition_animation_scale_entries"> - <item msgid="8464255836173039442">"Отключение анимации"</item> + <item msgid="8464255836173039442">"Без анимации"</item> <item msgid="3375781541913316411">"Анимация (масштаб: 0,5x)"</item> <item msgid="1991041427801869945">"Анимация (масштаб: 1x)"</item> <item msgid="4012689927622382874">"Анимация (масштаб: 1,5x)"</item> @@ -284,8 +284,8 @@ </string-array> <string-array name="vpn_states"> <item msgid="8621078286418985762">"Отключена"</item> - <item msgid="6692305604213080515">"Инициализация..."</item> - <item msgid="8001704909356800092">"Подключение..."</item> + <item msgid="6692305604213080515">"Инициализация\u2026"</item> + <item msgid="8001704909356800092">"Подключение\u2026"</item> <item msgid="4039737283841672166">"Подключена"</item> <item msgid="4042143101664725090">"Время ожидания истекло"</item> <item msgid="7664124146786465092">"Сбой"</item> @@ -295,4 +295,75 @@ <item msgid="5077768429488260031">"Не разрешать"</item> <item msgid="1417929597727989746">"Разрешать всегда"</item> </string-array> + + <!-- **** CYANOGENMOD ADDITIONS START **** --> + + <string-array name="volume_overlay_entries"> + <item>Одиночная</item> + <item>Расширяемая</item> + <item>Расширенная</item> + <item>Нет</item> + </string-array> + + <string-array name="pref_zram_size_entries"> + <item>Выкл.</item> + <item>10%</item> + <item>18% (по умолчанию)</item> + <item>26%</item> + </string-array> + + <string-array name="profile_entries"> + <item>Вкл.</item> + <item>Выкл.</item> + <item>Не определено</item> + </string-array> + + <string-array name="profile_connection_entries"> + <item>Выкл.</item> + <item>Вкл.</item> + </string-array> + + <string-array name="entries_network_widget"> + <item>2G | 3G+2G</item> + <item>Только 2G/3G</item> + <item>2G | Только 3G | 3G+2G</item> + </string-array> + + <string-array name="entries_screentimeout_widget"> + <item>15 сек. | 1 мин. | 5 мин.</item> + <item>30 сек. | 2 мин. | 5 мин.</item> + </string-array> + + <string-array name="entries_flash_widget"> + <item>Обычный</item> + <item>Полная яркость</item> + </string-array> + + <string-array name="haptic_feedback_entries"> + <item>Настройки системы</item> + <item>Вкл.</item> + <item>Выкл.</item> + </string-array> + + <string-array name="entries_status_bar_am_pm"> + <item>Нормальный</item> + <item>Маленький</item> + <item>Нет (по умолчанию)</item> + </string-array> + + <string-array name="wifi_countrycode_entries"> + <item>США</item> + <item>Канада, Тайвань</item> + <item>Германия</item> + <item>Европа</item> + <item>Япония, Россия</item> + <item>Австралия</item> + <item>Китай</item> + <item>Корея</item> + <item>Турция</item> + <item>Сингапур</item> + <item>Бразилия</item> + </string-array> + + <!-- **** CYANOGENMOD ADDITIONS END **** --> </resources> diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml index 72cc057..6d8e5c8 100644 --- a/res/values-ru/strings.xml +++ b/res/values-ru/strings.xml @@ -1,5 +1,6 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2007 The Android Open Source Project +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2007 The Android Open Source Project + 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. @@ -26,7 +27,7 @@ <item quantity="one" msgid="5295687242294085452">"Вы почти у цели. Осталось несколько шагов (<xliff:g id="STEP_COUNT">%1$d</xliff:g>)."</item> <item quantity="other" msgid="6722953419953594148">"Вы почти у цели. Осталось несколько шагов (<xliff:g id="STEP_COUNT">%1$d</xliff:g>)."</item> </plurals> - <string name="show_dev_on" msgid="1110711554982716293">"Вы стали разработчиком!"</string> + <string name="show_dev_on" msgid="1110711554982716293">"Вы активировали настройки для разработчика!"</string> <string name="show_dev_already" msgid="2151632240145446227">"Не нужно, вы уже разработчик."</string> <string name="header_category_wireless_networks" msgid="4944823405420438623">"БЕСПРОВОДНЫЕ СЕТИ"</string> <string name="header_category_device" msgid="5781174212691167553">"УСТРОЙСТВО"</string> @@ -135,10 +136,10 @@ <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"Подключено (кроме A2DP)"</string> <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"Подключено (кроме HSP/HFP/A2DP)"</string> <string name="bluetooth_disconnected" msgid="6557104142667339895">"Отключено"</string> - <string name="bluetooth_disconnecting" msgid="8913264760027764974">"Отключение..."</string> - <string name="bluetooth_connecting" msgid="8555009514614320497">"Подключение..."</string> + <string name="bluetooth_disconnecting" msgid="8913264760027764974">"Отключение\u2026"</string> + <string name="bluetooth_connecting" msgid="8555009514614320497">"Подключение\u2026"</string> <string name="bluetooth_unknown" msgid="644716244548801421"></string> - <string name="bluetooth_pairing" msgid="1426882272690346242">"Сопряжение..."</string> + <string name="bluetooth_pairing" msgid="1426882272690346242">"Сопряжение\u2026"</string> <string name="bluetooth_device" msgid="5291950341750186887">"Bluetooth-устройство без названия"</string> <string name="progress_scanning" msgid="192587958424295789">"Поиск"</string> <string name="bluetooth_no_devices_found" msgid="1085232930277181436">"Устройства Bluetooth не найдены."</string> @@ -166,6 +167,9 @@ <string name="bluetooth_phonebook_request" msgid="457033227379858269">"Запрос телефонной книги"</string> <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"Устройство \"%1$s\" пытается получить доступ к вашим контактам и журналу вызовов. Разрешить доступ для %2$s?"</string> <string name="bluetooth_pb_remember_choice" msgid="2901499974259177202">"Больше не спрашивать"</string> + <string name="bluetooth_mas_request">Запрос доступа к сообщениям</string> + <string name="bluetooth_mas_acceptance_dialog_text">%1$s запрашивает доступ к сообщениям. Предоставить доступ %2$s?</string> + <string name="bluetooth_mas_remember_choice">Больше не спрашивать</string> <string name="date_and_time" msgid="4114084177056654663">"Настройки даты и времени"</string> <string name="choose_timezone" msgid="1362834506479536274">"Выбрать часовой пояс"</string> <string name="normal_date_format" msgid="7636406984925498359">"По умолчанию (<xliff:g id="DATE">%s</xliff:g>)"</string> @@ -228,7 +232,7 @@ <string name="radio_info_toggle_dns_check_label" msgid="8292252930563286858">"Выбор проверки DNS"</string> <string name="oem_radio_info_label" msgid="6163141792477958941">"Информация/настройки OEM"</string> <string name="band_mode_title" msgid="954174198903776205">"Настроить частоту GSM/UMTS"</string> - <string name="band_mode_loading" msgid="548764766363847336">"Загрузка списка частот..."</string> + <string name="band_mode_loading" msgid="548764766363847336">"Загрузка списка частот\u2026"</string> <string name="band_mode_set" msgid="5730560180249458484">"Настроить"</string> <string name="band_mode_failed" msgid="1495968863884716379">"Сбой"</string> <string name="band_mode_succeeded" msgid="2701016190055887575">"Успешно"</string> @@ -245,8 +249,8 @@ <string name="sdcard_settings_bad_removal_status" product="nosdcard" msgid="7761390725880773697">"Накопитель извлечен при исп.!"</string> <string name="sdcard_settings_bad_removal_status" product="default" msgid="5145797653495907970">"SD-карта была извлечена во время использования!"</string> <string name="sdcard_settings_used_bytes_label" msgid="8820289486001170836">"Использовано байтов:"</string> - <string name="sdcard_settings_scanning_status" product="nosdcard" msgid="7503429447676219564">"Сканирование USB-накопителя..."</string> - <string name="sdcard_settings_scanning_status" product="default" msgid="2763464949274455656">"Поиск мультимедиа на SD-карте..."</string> + <string name="sdcard_settings_scanning_status" product="nosdcard" msgid="7503429447676219564">"Сканирование USB-накопителя\u2026"</string> + <string name="sdcard_settings_scanning_status" product="default" msgid="2763464949274455656">"Поиск мультимедиа на SD-карте\u2026"</string> <string name="sdcard_settings_read_only_status" product="nosdcard" msgid="3624143937437417788">"Только для чтения."</string> <string name="sdcard_settings_read_only_status" product="default" msgid="4518291824764698112">"Только для чтения."</string> <string name="skip_label" msgid="47510779345218297">"Далее"</string> @@ -265,8 +269,8 @@ <string name="settings_label" msgid="1626402585530130914">"Настройки"</string> <string name="settings_label_launcher" msgid="8344735489639482340">"Настройки"</string> <string name="settings_shortcut" msgid="3936651951364030415">"Ярлык настроек"</string> - <string name="airplane_mode" msgid="8837269988154128601">"Режим полета"</string> - <string name="radio_controls_title" msgid="6889937359495515769">"Ещё..."</string> + <string name="airplane_mode" msgid="8837269988154128601">"Режим полёта"</string> + <string name="radio_controls_title" msgid="6889937359495515769">"Ещё\u2026"</string> <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Беспроводные сети"</string> <string name="radio_controls_summary" msgid="2998818677094465517">"Wi-Fi, Bluetooth, режим полета, мобильные сети и VPN"</string> <string name="roaming" msgid="3596055926335478572">"Интернет-роуминг"</string> @@ -309,7 +313,7 @@ <string name="owner_info_settings_edit_text_hint" msgid="4608681417960923911">"Введите текст для показа на экране блокировки"</string> <string name="show_user_info_on_lockscreen_label" msgid="8408914624925608365">"Показывать введенный ниже текст на экране блокировки"</string> <string name="user_info_settings_title" msgid="1195015434996724736">"Сведения о пользователе"</string> - <string name="location_settings_title" msgid="4483843407328665068">"Мое местоположение"</string> + <string name="location_settings_title" msgid="4483843407328665068">"Моё местоположение"</string> <string name="security_settings_title" msgid="7945465324818485460">"Безопасность"</string> <string name="security_settings_summary" msgid="967393342537986570">"Настройка функции \"Мое местоположение\", разблокировка экрана и блокировка хранилища регистрационных данных"</string> <string name="cdma_security_settings_summary" msgid="6068799952798901542">"Настройка функции \"Мое местоположение\", разблокировка экрана и блокировка хранилища регистрационных данных"</string> @@ -443,7 +447,7 @@ <string name="bluetooth_connecting_error_message" msgid="229861986106185022">"Не удалось подключиться к <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string> <string name="bluetooth_preference_scan_title" msgid="2277464653118896016">"Поиск устройств"</string> <string name="bluetooth_search_for_devices" msgid="5957007154213560390">"Поиск устройств"</string> - <string name="bluetooth_searching_for_devices" msgid="9203739709307871727">"Поиск..."</string> + <string name="bluetooth_searching_for_devices" msgid="9203739709307871727">"Поиск\u2026"</string> <string name="bluetooth_preference_device_settings" msgid="907776049862799122">"Настройки устройства"</string> <string name="bluetooth_preference_paired_devices" msgid="1970524193086791964">"Подключенные устройства"</string> <string name="bluetooth_preference_found_devices" msgid="1647983835063249680">"Список"</string> @@ -452,11 +456,11 @@ <string name="bluetooth_device_context_pair_connect" msgid="7611522504813927727">"Выполнить сопряжение и подключить"</string> <string name="bluetooth_device_context_unpair" msgid="662992425948536144">"Отменить сопряжение"</string> <string name="bluetooth_device_context_disconnect_unpair" msgid="7644014238070043798">"Отключить и отменить сопряжение"</string> - <string name="bluetooth_device_context_connect_advanced" msgid="2643129703569788771">"Параметры..."</string> + <string name="bluetooth_device_context_connect_advanced" msgid="2643129703569788771">"Параметры\u2026"</string> <string name="bluetooth_menu_advanced" msgid="8572178316357220524">"Расширенные"</string> <string name="bluetooth_advanced_titlebar" msgid="2142159726881547669">"Расш. настройки Bluetooth"</string> <string name="bluetooth_empty_list_bluetooth_off" msgid="4793562956642282639">"Чтобы обнаружить устройства, включите Bluetooth."</string> - <string name="bluetooth_connect_specific_profiles_title" msgid="6952214406025825164">"Подключить к..."</string> + <string name="bluetooth_connect_specific_profiles_title" msgid="6952214406025825164">"Подключить к\u2026"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"Профиль A2DP"</string> <string name="bluetooth_profile_headset" msgid="8658779596261212609">"Профиль HSP/HFP"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"Профиль OPP"</string> @@ -498,7 +502,7 @@ <string name="wifi_display_search_for_devices" msgid="5065526281193354502">"Найти экраны"</string> <string name="wifi_display_searching_for_devices" msgid="5172373825348672137">"Поиск…"</string> <string name="wifi_display_no_devices_found" msgid="8180582698282377626">"Рядом нет беспроводных экранов"</string> - <string name="wifi_display_paired_devices" msgid="7395326840730024303">"Сопряженные экраны"</string> + <string name="wifi_display_paired_devices" msgid="7395326840730024303">"Сопряжённые экраны"</string> <string name="wifi_display_available_devices" msgid="4558314642853513487">"Доступные устройства"</string> <string name="wifi_display_status_connecting" msgid="5688608834000748607">"Подключение…"</string> <string name="wifi_display_status_connected" msgid="8364125226376985558">"Подключен"</string> @@ -531,10 +535,10 @@ <string name="wifi_settings_title" msgid="4351120897298124250">"Wi-Fi"</string> <string name="wifi_settings_summary" msgid="668767638556052820">"Настройка и управление точками доступа беспроводной сети"</string> <string name="wifi_setup_wizard_title" msgid="70277346338812325">"Wi-Fi"</string> - <string name="wifi_starting" msgid="6716593470710880000">"Включение Wi-Fi..."</string> - <string name="wifi_stopping" msgid="244864762599017659">"Отключение Wi-Fi..."</string> + <string name="wifi_starting" msgid="6716593470710880000">"Включение Wi-Fi\u2026"</string> + <string name="wifi_stopping" msgid="244864762599017659">"Отключение Wi-Fi\u2026"</string> <string name="wifi_error" msgid="3207971103917128179">"Ошибка"</string> - <string name="wifi_in_airplane_mode" msgid="8652520421778203796">"Режим полета"</string> + <string name="wifi_in_airplane_mode" msgid="8652520421778203796">"Режим полёта"</string> <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Не удалось начать поиск сетей."</string> <string name="wifi_notify_open_networks" msgid="3755768188029653293">"Уведомления о сетях"</string> <string name="wifi_notify_open_networks_summary" msgid="3038290727701553612">"Сообщать при обнаружении открытой сети"</string> @@ -610,8 +614,8 @@ <string name="wifi_cancel" msgid="6763568902542968964">"Отмена"</string> <string name="wifi_skip_anyway" msgid="6965361454438011190">"Все равно пропустить"</string> <string name="wifi_dont_skip" msgid="7350341524881124808">"Не пропускать"</string> - <string name="wifi_skipped_message" product="tablet" msgid="3335132188969450252">"ВНИМАНИЕ! Возможны дополнительные расходы на услуги оператора связи."\n\n"Настройка устройства может потребовать передачи большого объема данных по сети."</string> - <string name="wifi_skipped_message" product="default" msgid="1192848364146401759">"ВНИМАНИЕ! Возможны дополнительные расходы на услуги оператора связи."\n\n"Настройка устройства может потребовать передачи большого объема данных по сети."</string> + <string name="wifi_skipped_message" product="tablet" msgid="3335132188969450252">"ВНИМАНИЕ! Возможны дополнительные расходы на услуги оператора связи."\n\n"Настройка устройства может потребовать передачи большого объёма данных по сети."</string> + <string name="wifi_skipped_message" product="default" msgid="1192848364146401759">"ВНИМАНИЕ! Возможны дополнительные расходы на услуги оператора связи."\n\n"Настройка устройства может потребовать передачи большого объёма данных по сети."</string> <string name="wifi_and_mobile_skipped_message" product="tablet" msgid="7682836089429990118">"ВНИМАНИЕ! Поиск обновлений для программного обеспечения не поддерживается."</string> <string name="wifi_and_mobile_skipped_message" product="default" msgid="3324261421359832263">"ВНИМАНИЕ! Поиск обновлений для программного обеспечения не поддерживается."</string> <string name="wifi_connect_failed_message" product="tablet" msgid="6904081070290941807">"Не удалось подключиться к сети Wi-Fi."</string> @@ -620,6 +624,11 @@ <string name="wifi_setting_frequency_band_title" msgid="7493768705046080060">"Полоса частот Wi-Fi"</string> <string name="wifi_setting_frequency_band_summary" msgid="3250740757118009784">"Укажите рабочий диапазон частот"</string> <string name="wifi_setting_frequency_band_error" msgid="837281974489794378">"При настройке полосы частот возникла неполадка."</string> + <string name="wifi_setting_countrycode_title">Код региона Wi-Fi</string> + <string name="wifi_setting_countrycode_summary">Укажите код региона Wi-Fi</string> + <string name="wifi_setting_countrycode_error">При настройке кода региона Wi-Fi возникла неполадка.</string> + <string name="wifi_setting_priority_title">Приоритет Wi-Fi</string> + <string name="wifi_setting_priority_summary">Установка приоритета Wi-Fi сетей</string> <string name="wifi_advanced_mac_address_title" msgid="6571335466330978393">"MAC-адрес"</string> <string name="wifi_advanced_ip_address_title" msgid="6215297094363164846">"IP-адрес"</string> <string name="wifi_advanced_settings_label" msgid="3654366894867838338">"Настройки IP"</string> @@ -666,7 +675,6 @@ <string name="ring_volume_title" msgid="7938706566797464165">"Громкость звонка"</string> <string name="vibrate_in_silent_title" msgid="3897968069156767036">"Виброзвонок без звука"</string> <string name="notification_sound_title" msgid="5137483249425507572">"Звук уведомлений по умолчанию"</string> - <string name="notification_pulse_title" msgid="1247988024534030629">"Индикатор событий"</string> <string name="incoming_call_volume_title" msgid="8073714801365904099">"Мелодия"</string> <string name="notification_volume_title" msgid="2012640760341080408">"Уведомление"</string> <string name="checkbox_notification_same_as_incoming_call" msgid="1073644356290338921">"Использовать этот уровень громкости также для уведомлений"</string> @@ -802,7 +810,7 @@ <string name="memory_available" msgid="5052397223077021181">"Доступно"</string> <string name="memory_available_read_only" msgid="6497534390167920206">"Доступно (только для чтения)"</string> <string name="memory_size" msgid="6629067715017232195">"Всего места"</string> - <string name="memory_calculating_size" msgid="2188358544203768588">"Идет подсчет..."</string> + <string name="memory_calculating_size" msgid="2188358544203768588">"Идёт подсчет\u2026"</string> <string name="memory_apps_usage" msgid="2348501997988663688">"Данные приложений и файлы мультимедиа"</string> <string name="memory_media_usage" msgid="3738830697707880405">"Мультимедиа"</string> <string name="memory_downloads_usage" msgid="3755173051677533027">"Загрузки"</string> @@ -954,7 +962,7 @@ <string name="bluetooth_untether_blank" msgid="2871192409329334813">"Подключение к <xliff:g id="DEVICE_NAME">%1$s</xliff:g> будет прервано."</string> <string name="tethering_help_button_text" msgid="656117495547173630">"Справка"</string> <string name="network_settings_title" msgid="7967552516440151852">"Мобильная сеть"</string> - <string name="location_title" msgid="1029961368397484576">"Мое местоположение"</string> + <string name="location_title" msgid="1029961368397484576">"Моё местоположение"</string> <string name="location_network_based" msgid="7472814266821714527">"По координатам сети"</string> <string name="location_neighborhood_level" msgid="5626515380188353712">"Разрешить отправлять анонимные геоданные и позволить приложениям определять ваше местоположение с помощью Wi-Fi и мобильных сетей"</string> <string name="location_neighborhood_level_wifi" msgid="7457348712272184793">"Местоположение определяется с помощью Wi-Fi"</string> @@ -1092,7 +1100,7 @@ <string name="internal_storage" msgid="1584700623164275282">"Внутр. память"</string> <string name="sd_card_storage" product="nosdcard" msgid="2673203150465132465">"USB-память"</string> <string name="sd_card_storage" product="default" msgid="7623513618171928235">"SD-карта"</string> - <string name="recompute_size" msgid="7722567982831691718">"Повторное вычисление размера..."</string> + <string name="recompute_size" msgid="7722567982831691718">"Повторное вычисление размера\u2026"</string> <string name="clear_data_dlg_title" msgid="5605258400134511197">"Удалить данные приложения?"</string> <string name="clear_data_dlg_text" msgid="8847257251846779938">"Все данные этого приложения будут удалены без возможности восстановления, включая все файлы, базы данных, настройки, аккаунты и т. д."</string> <string name="dlg_ok" msgid="2402639055725653590">"ОК"</string> @@ -1106,15 +1114,15 @@ <string name="clear_failed_dlg_text" msgid="1092177570631523106">"Не удалось удалить данные."</string> <string name="security_settings_desc" product="tablet" msgid="1292421279262430109">"У этого приложения есть доступ к следующей информации на устройстве:"</string> <string name="security_settings_desc" product="default" msgid="61749028818785244">"У этого приложения есть доступ к следующей информации на устройстве:"</string> - <string name="security_settings_desc_multi" product="tablet" msgid="7300932212437084403">"Этому приложению доступны указанные ниже данные на вашем планшетном ПК. Чтобы повысить производительность и уменьшить объем используемой памяти, приложению <xliff:g id="BASE_APP_NAME">%1$s</xliff:g> предоставлены некоторые из этих разрешений, так как оно выполняется в рамках того же процесса, что и <xliff:g id="ADDITIONAL_APPS_LIST">%2$s</xliff:g>:"</string> - <string name="security_settings_desc_multi" product="default" msgid="6610268420793984752">"Этому приложению доступны указанные ниже данные на вашем телефоне. Чтобы повысить производительность и уменьшить объем используемой памяти, приложению <xliff:g id="BASE_APP_NAME">%1$s</xliff:g> предоставлены некоторые из этих разрешений, так как оно выполняется в рамках того же процесса, что и <xliff:g id="ADDITIONAL_APPS_LIST">%2$s</xliff:g>:"</string> + <string name="security_settings_desc_multi" product="tablet" msgid="7300932212437084403">"Этому приложению доступны указанные ниже данные на вашем планшетном ПК. Чтобы повысить производительность и уменьшить объём используемой памяти, приложению <xliff:g id="BASE_APP_NAME">%1$s</xliff:g> предоставлены некоторые из этих разрешений, так как оно выполняется в рамках того же процесса, что и <xliff:g id="ADDITIONAL_APPS_LIST">%2$s</xliff:g>:"</string> + <string name="security_settings_desc_multi" product="default" msgid="6610268420793984752">"Этому приложению доступны указанные ниже данные на вашем телефоне. Чтобы повысить производительность и уменьшить объём используемой памяти, приложению <xliff:g id="BASE_APP_NAME">%1$s</xliff:g> предоставлены некоторые из этих разрешений, так как оно выполняется в рамках того же процесса, что и <xliff:g id="ADDITIONAL_APPS_LIST">%2$s</xliff:g>:"</string> <string name="join_two_items" msgid="1336880355987539064">"<xliff:g id="FIRST_ITEM">%1$s</xliff:g> и <xliff:g id="SECOND_ITEM">%2$s</xliff:g>"</string> <string name="join_many_items_last" msgid="5925635036718502724">"<xliff:g id="ALL_BUT_LAST_ITEM">%1$s</xliff:g> и <xliff:g id="LAST_ITEM_0">%2$s</xliff:g>"</string> <string name="join_many_items_first" msgid="4333907712038448660">"<xliff:g id="FIRST_ITEM">%1$s</xliff:g>, <xliff:g id="ALL_BUT_FIRST_AND_LAST_ITEM">%2$s</xliff:g>"</string> <string name="join_many_items_middle" msgid="7556692394478220814">"<xliff:g id="ADDED_ITEM">%1$s</xliff:g>, <xliff:g id="REST_OF_ITEMS">%2$s</xliff:g>"</string> <string name="security_settings_billing_desc" msgid="8061019011821282358">"Это приложение может списывать деньги с вашего счета:"</string> <string name="security_settings_premium_sms_desc" msgid="8734171334263713717">"Отправить SMS?"</string> - <string name="computing_size" msgid="1599186977475211186">"Вычисление..."</string> + <string name="computing_size" msgid="1599186977475211186">"Вычисление\u2026"</string> <string name="invalid_size_value" msgid="7563537715280712285">"Не удалось определить размер пакета."</string> <string name="empty_list_msg" msgid="5993162337235907160">"Нет приложений сторонних разработчиков."</string> <string name="version_text" msgid="9189073826278676425">"Версия <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string> @@ -1123,7 +1131,7 @@ <string name="move_app_to_internal" product="default" msgid="3895430471913858185">"Перенести на телефон"</string> <string name="move_app_to_sdcard" product="nosdcard" msgid="4350451696315265420">"Перенести на USB"</string> <string name="move_app_to_sdcard" product="default" msgid="1143379049903056407">"Переместить на SD-карту"</string> - <string name="moving" msgid="6431016143218876491">"Перенос..."</string> + <string name="moving" msgid="6431016143218876491">"Перенос\u2026"</string> <string name="insufficient_storage" msgid="481763122991093080">"Недостаточно места."</string> <string name="does_not_exist" msgid="3476487214886606748">"Приложение не установлено."</string> <string name="app_forward_locked" msgid="6331564656683790866">"Приложение защищено от копирования."</string> @@ -1142,7 +1150,7 @@ <string name="app_disable_notifications_dlg_title" msgid="7669264654851761857">"Отключить уведомления?"</string> <string name="app_disable_notifications_dlg_text" msgid="5088484670924769845">"Если в настройках этого приложения отключены уведомления, вы можете пропустить важные оповещения и обновления."</string> <string name="storageuse_settings_title" msgid="5657014373502630403">"Использование памяти"</string> - <string name="storageuse_settings_summary" msgid="3748286507165697834">"Объем памяти, занимаемый приложениями"</string> + <string name="storageuse_settings_summary" msgid="3748286507165697834">"Объём памяти, занимаемый приложениями"</string> <string name="runningservices_settings_title" msgid="8097287939865165213">"Работающие приложения"</string> <string name="runningservices_settings_summary" msgid="854608995821032748">"Просмотр и управление работающими приложениями"</string> <string name="service_restarting" msgid="2242747937372354306">"Перезапуск"</string> @@ -1262,10 +1270,10 @@ <string name="development_settings_summary" msgid="1815795401632854041">"Настройка параметров для разработчиков"</string> <string name="enable_adb" msgid="7982306934419797485">"Отладка по USB"</string> <string name="enable_adb_summary" msgid="4881186971746056635">"Включить режим отладки при подключении к компьютеру по USB"</string> - <string name="bugreport_in_power" msgid="4548816486587403971">"Отчеты об ошибках"</string> - <string name="bugreport_in_power_summary" msgid="5764234382355067053">"Показывать в меню опцию отправки отчета об ошибке"</string> + <string name="bugreport_in_power" msgid="4548816486587403971">"Отчёты об ошибках"</string> + <string name="bugreport_in_power_summary" msgid="5764234382355067053">"Показывать в меню опцию отправки отчёта об ошибке"</string> <string name="keep_screen_on" msgid="1146389631208760344">"Не выключать экран"</string> - <string name="keep_screen_on_summary" msgid="2173114350754293009">"Во время зарядки экран будет всегда включен"</string> + <string name="keep_screen_on_summary" msgid="2173114350754293009">"Во время зарядки экран будет всегда включён"</string> <string name="allow_mock_location" msgid="2787962564578664888">"Фиктивные местоположения"</string> <string name="allow_mock_location_summary" msgid="317615105156345626">"Разрешить использование фиктивных местоположений"</string> <string name="adb_warning_title" msgid="6234463310896563253">"Разрешить отладку USB?"</string> @@ -1295,7 +1303,7 @@ <string name="testing_usage_stats" msgid="7823048598893937339">"Статистика использования"</string> <string name="display_order_text" msgid="8592776965827565271">"Упорядочить по:"</string> <string name="app_name_label" msgid="5440362857006046193">"Приложение"</string> - <string name="launch_count_label" msgid="4019444833263957024">"Подсчет"</string> + <string name="launch_count_label" msgid="4019444833263957024">"Подсчёт"</string> <string name="usage_time_label" msgid="295954901452833058">"Время использования"</string> <string name="accessibility_settings" msgid="3975902491934816215">"Спец. возможности"</string> <string name="accessibility_settings_title" msgid="2130492524656204459">"Настройки специальных возможностей"</string> @@ -1312,6 +1320,7 @@ <string name="accessibility_toggle_screen_magnification_auto_update_preference_title" msgid="7218498768415430963">"Сохранять масштаб"</string> <string name="accessibility_toggle_screen_magnification_auto_update_preference_summary" msgid="4392059334816220155">"Сохранять масштаб при переходе между приложениями"</string> <string name="accessibility_power_button_ends_call_prerefence_title" msgid="6673851944175874235">"Кнопка питания завершает вызов"</string> + <string name="accessibility_home_button_answers_call_prerefence_title">Отвечать на вызов кнопкой \"Домой\"</string> <string name="accessibility_toggle_speak_password_preference_title" msgid="5986628515113204844">"Озвучивать пароли"</string> <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Задержка при нажатии и удержании"</string> <string name="accessibility_toggle_script_injection_preference_title" msgid="7950932054266694403">"Специальные веб-скрипты"</string> @@ -1329,7 +1338,7 @@ <string name="accessibility_service_disable_warning_summary" msgid="625013894287895398">"Чтобы отключить <xliff:g id="SERVICE">%1$s</xliff:g>, нажмите ОК."</string> <string name="accessibility_no_services_installed" msgid="7200948194639038807">"Службы не установлены"</string> <string name="accessibility_service_no_apps_title" msgid="5124097563864109821">"Нужна программа чтения с экрана?"</string> - <string name="accessibility_service_no_apps_message" msgid="7751662416377046539">"Бесплатное приложение TalkBack дает голосовое описание элементов интерфейса для пользователей с нарушением зрения. Установить его из Android Маркета?"</string> + <string name="accessibility_service_no_apps_message" msgid="7751662416377046539">"Бесплатное приложение TalkBack дает голосовое описание элементов интерфейса для пользователей с нарушением зрения. Установить его из Play Маркета?"</string> <string name="accessibility_script_injection_security_warning_summary" msgid="7706858873495386310">"Разрешить приложениям устанавливать скрипты Google для повышения доступности веб-контента?"</string> <string name="accessibility_service_default_description" msgid="1072730037861494125">"Нет описания"</string> <string name="settings_button" msgid="3006713718908152930">"Настройки"</string> @@ -1406,7 +1415,7 @@ <string name="menu_stats_total" msgid="8973377864854807854">"Всего"</string> <string name="menu_stats_refresh" msgid="1676215433344981075">"Обновить"</string> <string name="process_kernel_label" msgid="3916858646836739323">"ОС Android"</string> - <string name="process_mediaserver_label" msgid="6500382062945689285">"Сервер медиа"</string> + <string name="process_mediaserver_label" msgid="6500382062945689285">"Медиасервер"</string> <string name="voice_input_output_settings" msgid="1336135218350444783">"Голосовой ввод и вывод"</string> <string name="voice_input_output_settings_title" msgid="2442850635048676991">"Настройки голосового ввода и вывода"</string> <string name="voice_search_settings_title" msgid="2775469246913196536">"Голосовой поиск"</string> @@ -1530,6 +1539,7 @@ <string name="sound_category_notification_title" msgid="3502115998790286943">"Оповещения"</string> <string name="sound_category_call_ringtone_vibrate_title" msgid="1543777228646645163">"Вибросигнал и рингтон"</string> <string name="sound_category_system_title" msgid="1480844520622721141">"Системные уведомления"</string> + <string name="headset_category_title">Наушники</string> <string name="wifi_setup_title" msgid="661074868726906436">"Настройки Wi-Fi"</string> <string name="wifi_setup_title_editing_network" msgid="7304321031985059969">"Подключение к сети Wi-Fi <xliff:g id="NETWORK_NAME">%s</xliff:g>"</string> <string name="wifi_setup_title_connecting_network" msgid="3747859666621319757">"Подключение к сети Wi-Fi: <xliff:g id="NETWORK_NAME">%s</xliff:g>"</string> @@ -1546,17 +1556,17 @@ <string name="wifi_setup_forget" msgid="2562847595567347526">"Удалить"</string> <string name="wifi_setup_save" msgid="3659235094218508211">"Сохранить"</string> <string name="wifi_setup_cancel" msgid="3185216020264410239">"Отмена"</string> - <string name="wifi_setup_status_scanning" msgid="5317003416385428036">"Поиск доступных сетей..."</string> + <string name="wifi_setup_status_scanning" msgid="5317003416385428036">"Поиск доступных сетей\u2026"</string> <string name="wifi_setup_status_select_network" msgid="7519563569903137003">"Чтобы подключиться, нажмите на сеть"</string> <string name="wifi_setup_status_existing_network" msgid="6394925174802598186">"Подключиться к существующей сети"</string> <string name="wifi_setup_status_unsecured_network" msgid="8143046977328718252">"Подключение к незащищенной сети"</string> <string name="wifi_setup_status_edit_network" msgid="4765340816724760717">"Укажите конфигурацию сети"</string> <string name="wifi_setup_status_new_network" msgid="7468952850452301083">"Подключиться к новой сети"</string> - <string name="wifi_setup_status_connecting" msgid="4971421484401530740">"Подключение..."</string> + <string name="wifi_setup_status_connecting" msgid="4971421484401530740">"Подключение\u2026"</string> <string name="wifi_setup_status_proceed_to_next" msgid="6708250000342940031">"Далее"</string> <string name="wifi_setup_status_eap_not_supported" msgid="5335338851032315905">"EAP не поддерживается."</string> <string name="wifi_setup_eap_not_supported" msgid="595556546597351489">"Во время установки нельзя настроить подключение к сети Wi-Fi с защитой EAP. Вы можете сделать это позже в меню \"Настройки > Беспроводные сети\"."</string> - <string name="wifi_setup_description_connecting" msgid="2793554932006756795">"Подключение может занять несколько минут..."</string> + <string name="wifi_setup_description_connecting" msgid="2793554932006756795">"Подключение может занять несколько минут\u2026"</string> <string name="wifi_setup_description_connected" msgid="5235991893829582459">"Нажмите "<b>"Далее"</b>" для продолжения установки."\n\n"Нажмите "<b>"Назад"</b>" для подключения к другой сети Wi-Fi."</string> <string name="accessibility_sync_enabled" msgid="558480439730263116">"Синхронизация включена"</string> <string name="accessibility_sync_disabled" msgid="1741194106479011384">"Синхронизация отключена"</string> @@ -1564,12 +1574,12 @@ <string name="sync_failed" msgid="1696499856374109647">"Ошибка синхронизации"</string> <string name="sync_active" msgid="8476943765960863040">"Синхронизация активна"</string> <string name="account_sync_settings_title" msgid="5131314922423053588">"Синхронизация"</string> - <string name="sync_is_failing" msgid="1591561768344128377">"Проблемы с синхронизацией. Скоро все заработает."</string> + <string name="sync_is_failing" msgid="1591561768344128377">"Проблемы с синхронизацией. Скоро всё заработает."</string> <string name="add_account_label" msgid="7811707265834013767">"Добавить аккаунт"</string> <string name="background_data" msgid="5779592891375473817">"Фоновый режим"</string> <string name="background_data_summary" msgid="8328521479872763452">"Синхронизация, отправка и получение данных доступны всегда"</string> <string name="background_data_dialog_title" msgid="6059217698124786537">"Откл. фоновый режим?"</string> - <string name="background_data_dialog_message" msgid="6981661606680941633">"Отключение фонового режима обмена данными экономит заряд батареи и уменьшает объем трафика, однако некоторые приложения могут использовать этот режим даже после его отключения."</string> + <string name="background_data_dialog_message" msgid="6981661606680941633">"Отключение фонового режима обмена данными экономит заряд батареи и уменьшает объём трафика, однако некоторые приложения могут использовать этот режим даже после его отключения."</string> <string name="sync_automatically" msgid="1682730255435062059">"Cинхронизировать данные приложений"</string> <string name="sync_enabled" msgid="4551148952179416813">"Синхронизация включена"</string> <string name="sync_disabled" msgid="8511659877596511991">"Синхронизация выключена"</string> @@ -1580,7 +1590,7 @@ <string name="settings_backup_summary" msgid="7916877705938054035">"Резервная копия настроек."</string> <string name="sync_menu_sync_now" msgid="6154608350395805683">"Синхронизировать"</string> <string name="sync_menu_sync_cancel" msgid="8292379009626966949">"Отменить синхронизацию"</string> - <string name="sync_one_time_sync" msgid="6766593624598183090">"Нажмите, чтобы начать синхронизацию <xliff:g id="LAST_SYNC_TIME"> + <string name="sync_one_time_sync" msgid="6766593624598183090">"Нажмите для синхронизации <xliff:g id="LAST_SYNC_TIME"> %1$s</xliff:g>"</string> <string name="sync_gmail" msgid="714886122098006477">"Gmail"</string> <string name="sync_calendar" msgid="9056527206714733735">"Календарь"</string> @@ -1626,7 +1636,7 @@ <string name="debug_input_category" msgid="1811069939601180246">"Ввод текста"</string> <string name="debug_drawing_category" msgid="6755716469267367852">"Рисование"</string> <string name="debug_monitoring_category" msgid="7640508148375798343">"Мониторинг"</string> - <string name="strict_mode" msgid="1938795874357830695">"Включен строгий режим"</string> + <string name="strict_mode" msgid="1938795874357830695">"Строгий режим"</string> <string name="strict_mode_summary" msgid="142834318897332338">"Подсвечивать экран во время длительных операций"</string> <string name="pointer_location" msgid="6084434787496938001">"Отображать касания"</string> <string name="pointer_location_summary" msgid="840819275172753713">"Визуализировать на экране нажатия и жесты"</string> @@ -1658,8 +1668,8 @@ <string name="force_msaa_summary" msgid="9123553203895817537">"Включить 4x MSAA в приложениях OpenGL ES 2.0"</string> <string name="track_frame_time" msgid="6146354853663863443">"Запись времени работы GPU"</string> <string name="track_frame_time_summary" msgid="447577515813970287">"Измерение времени для adb shell dumpsys gfxinfo"</string> - <string name="window_animation_scale_title" msgid="6162587588166114700">"Окно: масштаб"</string> - <string name="transition_animation_scale_title" msgid="387527540523595875">"Переход: масштаб"</string> + <string name="window_animation_scale_title" msgid="6162587588166114700">"Скорость анимации окон"</string> + <string name="transition_animation_scale_title" msgid="387527540523595875">"Скорость анимации перехода"</string> <string name="animator_duration_scale_title" msgid="3406722410819934083">"Скорость анимации"</string> <string name="overlay_display_devices_title" msgid="5364176287998398539">"Эмуляция доп. экранов"</string> <string name="debug_applications_category" msgid="4206913653849771549">"Приложения"</string> @@ -1667,7 +1677,7 @@ <string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"Удалять сводку действий после их завершения"</string> <string name="app_process_limit_title" msgid="4280600650253107163">"Лимит фоновых процессов"</string> <string name="show_all_anrs" msgid="28462979638729082">"Все ANR"</string> - <string name="show_all_anrs_summary" msgid="641908614413544127">"Уведомлять о том, что приложение не отвечает"</string> + <string name="show_all_anrs_summary" msgid="641908614413544127">"Уведомлять о неотвечающих фоновых приложениях"</string> <string name="data_usage_summary_title" msgid="3804110657238092929">"Передача данных"</string> <string name="data_usage_cycle" msgid="5652529796195787949">"Период статистики"</string> <string name="data_usage_menu_roaming" msgid="8042359966835203296">"Интернет-роуминг"</string> @@ -1715,7 +1725,7 @@ <string name="data_usage_cycle_editor_positive" msgid="8821760330497941117">"Сохранить"</string> <string name="data_usage_warning_editor_title" msgid="3704136912240060339">"Настройка предупреждения"</string> <string name="data_usage_limit_editor_title" msgid="9153595142385030015">"Лимитирование трафика"</string> - <string name="data_usage_limit_dialog_title" msgid="3023111643632996097">"Объем трафика ограничен"</string> + <string name="data_usage_limit_dialog_title" msgid="3023111643632996097">"Объём трафика ограничен"</string> <string name="data_usage_limit_dialog_mobile" product="tablet" msgid="3893348029612821262">"По достижении лимита трафика передача данных по мобильной сети будет отключена."\n\n"Во избежание дополнительных расходов старайтесь не достигать этого лимита, так как оператор и ваше устройство могут по-разному учитывать трафик."</string> <string name="data_usage_limit_dialog_mobile" product="default" msgid="7962145861903746827">"По достижении лимита трафика передача данных по мобильной сети будет отключена."\n\n"Во избежание дополнительных расходов старайтесь не достигать этого лимита, так как оператор и ваше устройство могут по-разному учитывать трафик."</string> <string name="data_usage_restrict_background_title" msgid="2201315502223035062">"Ограничение фонового режима"</string> @@ -1724,8 +1734,8 @@ <string name="data_usage_restrict_background_multiuser" product="default" msgid="8025473178302056174">"Если ограничить передачу данных в фоновом режиме, некоторые приложения и службы не будут работать без подключения к сети Wi-Fi."\n\n"Настройки будут изменены для всех пользователей устройства."</string> <string name="data_usage_sweep_warning" msgid="6387081852568846982"><font size="12">"Предупреждение"</font>\n<font size="21">"<xliff:g id="NUMBER">^1</xliff:g>"</font>" "<font size="9">"<xliff:g id="UNIT">^2</xliff:g>"</font></string> <string name="data_usage_sweep_limit" msgid="860566507375933039"><font size="12">"Лимит"</font>\n<font size="21">"<xliff:g id="NUMBER">^1</xliff:g>"</font>" "<font size="9">"<xliff:g id="UNIT">^2</xliff:g>"</font></string> - <string name="data_usage_uninstalled_apps" msgid="614263770923231598">"Удаленные приложения"</string> - <string name="data_usage_uninstalled_apps_users" msgid="7986294489899813194">"Удаленные приложения и пользователи"</string> + <string name="data_usage_uninstalled_apps" msgid="614263770923231598">"Удалённые приложения"</string> + <string name="data_usage_uninstalled_apps_users" msgid="7986294489899813194">"Удалённые приложения и пользователи"</string> <string name="data_usage_received_sent" msgid="5039699009276621757">"Получено: <xliff:g id="RECEIVED">%1$s</xliff:g>; отправлено: <xliff:g id="SENT">%2$s</xliff:g>"</string> <string name="data_usage_total_during_range" msgid="4091294280619255237">"<xliff:g id="RANGE">%2$s</xliff:g>: <xliff:g id="TOTAL">%1$s</xliff:g>"</string> <string name="data_usage_total_during_range_mobile" product="tablet" msgid="5961720793603268572">"<xliff:g id="RANGE">%2$s</xliff:g>: <xliff:g id="TOTAL">%1$s</xliff:g> (трафик, определенный устройством). Данные оператора могут отличаться."</string> @@ -1830,6 +1840,708 @@ <string name="help_label" msgid="1107174367904110532">"Справка"</string> <string name="user_account_title" msgid="1127193807312271167">"Аккаунт для контента"</string> <string name="user_picture_title" msgid="7297782792000291692">"Документ с фото"</string> - <string name="cell_broadcast_settings" msgid="8415582011920085222">"Широковещательная передача сообщений"</string> + <string name="cell_broadcast_settings" msgid="8415582011920085222">"Сообщения сети"</string> <string name="cell_broadcast_settings_summary" msgid="3301339398950905913">"Выберите типы экстренных оповещений на экране."</string> + + <!-- CYANOGENMOD EDITS START --> + + <!-- Quiet hours --> + <string name="quiet_hours_title">Тихие часы</string> + <string name="quiet_hours_summary">Настройка часов, когда устройство должно быть тихим</string> + <string name="quiet_hours_note_title">Примечание</string> + <string name="quiet_hours_note_summary">Входящие звонки будут вести себя как обычно во время тихих часов</string> + <string name="quiet_hours_enabled">Включить тихие часы</string> + <string name="quiet_hours_enabled_on">Тихие часы активированы</string> + <string name="quiet_hours_enabled_off">Уведомления будут вести себя как обычно</string> + <string name="quiet_hours_start">Начало тихих часов</string> + <string name="quiet_hours_start_summary">Когда начинаются тихие часы</string> + <string name="quiet_hours_end">Конец тихих часов</string> + <string name="quiet_hours_end_summary">Когда заканчиваются тихие часы</string> + <string name="quiet_hours_mute">Отключить звук уведомлений</string> + <string name="quiet_hours_mute_on">Звуки уведомлений не проигрываются</string> + <string name="quiet_hours_mute_off">Звуки проигрываются нормально</string> + <string name="quiet_hours_still">Отключить вибрацию</string> + <string name="quiet_hours_still_on">Устройство не будет вибрировать</string> + <string name="quiet_hours_still_off">Устройство вибрирует нормально</string> + <string name="quiet_hours_dim">Отключить световое уведомление</string> + <string name="quiet_hours_dim_on">Световое уведомление отключено</string> + <string name="quiet_hours_dim_off">Световое уведомление функционирует нормально</string> + <string name="quiet_hours_haptic">Отключить отклик на нажатие</string> + <string name="quiet_hours_haptic_on">Отклик на нажатие выключен</string> + <string name="quiet_hours_haptic_off">Отклик на нажатие включён</string> + <string name="quiet_hours_active_from">Активно с</string> + <string name="quiet_hours_active_to">по</string> + + <!-- time range preference --> + <string name="start_time_title">Начало</string> + <string name="end_time_title">Конец</string> + + <!-- convert sound to vibration toggle --> + <string name="notification_convert_sound_to_vibration_title">Вибрация при уведомлениях</string> + <string name="notification_convert_sound_to_vibration_summary">В режиме \"Вибро\" вибрировать при уведомлениях независимо от настроек приложений</string> + + <!-- Hostname setting --> + <string name="device_hostname">Имя хоста</string> + + <!-- About phone screen, setting option name--> + <string name="mod_version">Версия CyanogenMod</string> + <string name="mod_version_default">Неизвестно</string> + + <!-- About phone screen, build date of ROM --> + <string name="build_date">Дата сборки</string> + + <!-- About device screen, Cpu info. --> + <string name="cpu_info">Процессор</string> + <!-- About phone screen, Free memory info --> + <string name="mem_info">Память</string> + <!-- About phone screen, status item label --> + + <!-- Anonymous Statistics #CM --> + <!-- About device screen, list item title. Takes the user to the screen about opting in or out of anonymous statistics. --> + <string name="anonymous_statistics_title">Статистика CyanogenMod</string> + <string name="anonymous_statistics_summary">Помогите сделать CM лучше, включив отправку анонимных отчётов</string> + <string name="anonymous_statistics_warning_title">Информация об использовании</string> + <string name="anonymous_statistics_warning">Анонимные отчёты позволяют разработчикам CyanogenMod отслеживать установки на различные устройства. Отсылаемая информацию включает в себя тип устройства, версию прошивки и уникальный идентификатор, отправка которого никаким образом не вредит Вашей конфиденциальности. Отчёт отсылается при каждой загрузке устройства.\n\nЧтобы посмотреть, какие данные отсылаются, нажмите \"Предпросмотр\".</string> + <string name="enable_reporting_title">Включить отправку отчётов</string> + <string name="preview_data_title">Предпросмотр</string> + <string name="preview_data_summary">%s</string> + <string name="view_stats_title">Статистика</string> + <string name="anonymous_learn_more">Подробнее</string> + + <!-- Anonymous Statistics - Notification --> + <string name="anonymous_notification_desc">Анонимная статистика CyanogenMod</string> + + <!-- Anonymous Statistics - Preview --> + <string name="preview_id_title">Уникальный идентификатор</string> + <string name="preview_device_title">Устройство</string> + <string name="preview_version_title">Версия</string> + <string name="preview_country_title">Страна</string> + <string name="preview_carrier_title">Оператор</string> + + <!-- INTERFACE Settings --> + <!-- Settings main menu category heading. Interface (Launcher, Themes, System). [CHAR LIMIT=40] --> + <string name="header_category_interface">ИНТЕРФЕЙС</string> + + <!-- Launcher settings #CM --> + <string name="launcher_settings_title">Рабочий стол</string> + + <!-- Themes settings #CM --> + <string name="themes_settings_title">Темы</string> + + <!-- System Interface settings #CM --> + <string name="system_settings_title">Система</string> + <string name="system_interface_title">Системный интерфейс</string> + + <!-- Notification Drawer #CM --> + <string name="notification_drawer_title">Панель уведомлений</string> + + <string name="lock_screen_title">Экран блокировки</string> + + <!-- Lock Screen Shortcuts --> + <string name="lockscreen_target_info">Потяните ползунок к цели, чтобы назначить ярлык</string> + <string name="lockscreen_target_title">Ярлыки экрана блокировки</string> + <string name="lockscreen_target_summary">Установка или настройка ярлыков экрана блокировки</string> + <string name="lockscreen_target_reset">Ярлыки экрана блокировки сброшены по умолчанию</string> + <string name="lockscreen_target_save">Ярлыки экрана блокировки сохранены</string> + <string name="lockscreen_target_reset_title">Сброс</string> + <string name="lockscreen_target_reset_message">Удалить все созданные ярлыки экрана блокировки и восстановить значения по умолчанию?</string> + <string name="lockscreen_target_empty">Пусто</string> + <string name="lockscreen_target_edit_title">Изменить ярлык и иконку</string> + <string name="lockscreen_target_edit_msg">Выберите или измените нужные приложения или действие и иконку</string> + + <!-- Lock screen vibrate settings --> + <string name="lockscreen_vibrate_enabled_title">Вибрация</string> + <string name="lockscreen_vibrate_enabled_head">Вибрировать при разблокировке</string> + + <!-- Lock screen misc. settings --> + <string name="lockscreen_battery_status_title">Состояние батареи</string> + <string name="lockscreen_battery_status_charging">Показывать во время зарядки</string> + <string name="lockscreen_battery_status_alwayson">Показывать всегда</string> + + <!-- Profiles settings --> + <string name="profiles_settings_title">Профили</string> + <string name="profiles_general_title">Основные</string> + <string name="profiles_add">Добавить</string> + <string name="profile_menu_delete">Удалить</string> + <string name="profile_settings_title">Профиль</string> + <string name="profile_empty_list_profiles_off">Для того, чтобы настроить и использовать системные профили, включите \"Профили\".</string> + + <!-- Add Profile --> + <string name="add_profile_dialog_title">Создать новый профиль</string> + <string name="profile_name_title">Имя</string> + <string name="profile_profile_name_prompt">Введите имя для нового профиля</string> + <string name="menu_new_profile">Новый профиль</string> + <string name="menu_new_profile_summary">Добавить и настроить новый профиль</string> + <string name="new_profile_name"><новый профиль></string> + + <!-- Rename Dialog --> + <string name="rename_dialog_title">Переименовать</string> + <string name="rename_dialog_message">Введите новое имя</string> + <string name="duplicate_profile_name">Повторяющееся имя профиля!</string> + <string name="duplicate_appgroup_name">Повторяющееся имя группы приложений!</string> + + <!-- Reset Profiles --> + <string name="profile_reset_title">Сбросить</string> + <string name="profile_reset_message">Вы действительно хотите удалить все профили, группы приложений и восстановить их по умолчанию?</string> + + <!-- Delete confimation messages --> + <string name="profile_delete_confirm">Вы действительно хотите удалить этот профиль?</string> + <string name="profile_app_delete_confirm">Вы уверены, что хотите удалить это приложение?</string> + <string name="profile_cannot_delete">Вы не можете удалить активный профиль</string> + + <!-- Profile Config screen PreferenceGroup titles --> + <string name="profile_connectionoverrides_title">Сетевые подключения</string> + <string name="profile_volumeoverrides_title">Переопределение громкости</string> + <string name="profile_vibratoroverrides_title">Переопределение вибро</string> + <string name="connection_state_disabled">Выключено</string> + <string name="connection_state_enabled">Включено</string> + <string name="volume_override_summary">Установить</string> + <string name="vibrator_state_disabled">Выключено</string> + <string name="vibrator_state_enabled">Включено</string> + <string name="vibrator_state_silent">Только при беззвуч. режиме</string> + + <!-- Menu item for managing profiles --> + <string name="profile_profiles_manage">Профили</string> + <string name="profile_profile_manage">Управление профилями</string> + <string name="profile_applist_manage">Список приложений</string> + <string name="profile_appgroups_manage">Группы приложений</string> + <string name="profile_appgroup_manage">Группы приложений</string> + + <!-- Profile settings screen, section header for settings related to notification profiles --> + <string name="profile_settings">Настройки профиля</string> + <string name="profile_name">Имя</string> + + <!-- Profile Settings sound modes labels --> + <string name="sound_mode">Режим уведомления</string> + <string name="ringer_mode">Режим звонка</string> + <string name="lights_mode">Облегчённый режим</string> + <string name="vibrate_mode">Режим вибрации</string> + <string name="choose_soundtone">Звук уведомления</string> + <string name="choose_ringtone">Мелодия телефона</string> + + <!-- Sound settings screen, setting option name to pick ringtone (a list dialog comes up)--> + <string name="soundtone_title">Звук уведомления</string> + <string name="soundtone_summary">""</string> + + <!-- Title for application group setting screen --> + <string name="profile_appgroups_title">Группы приложений</string> + <string name="profile_applist_title">Приложения</string> + <string name="profile_new_appgroup">Новая группа приложений</string> + <string name="profile_delete_appgroup">Удалить эту группу приложений</string> + <string name="profile_appgroup_name_prompt">Введите имя для новой группы приложений</string> + <string name="profile_appgroup_name_title">Имя</string> + <string name="profile_add_app">Добавить приложение</string> + <string name="profile_delete_app">Удалить приложение</string> + + <!-- Add application dialog box title --> + <string name="profile_choose_app">Выбрать приложение</string> + <string name="profile_settings_header">Настройки профиля</string> + + <!-- Profiles - system settings --> + <string name="profile_system_settings_title">Настройки системы</string> + <string name="profile_lockmode_title">Режим блок. экрана</string> + <string name="profile_lockmode_default">По умолчанию</string> + <string name="profile_lockmode_insecure">Ненадёжный</string> + <string name="profile_lockmode_disabled">Выключен</string> + <string name="profile_lockmode_default_summary">Использовать значение \"По умолчанию\"</string> + <string name="profile_lockmode_insecure_summary">Использовать ненадёжную блокировку экрана</string> + <string name="profile_lockmode_disabled_summary">Блокировка экрана выключена</string> + <string name="profile_airplanemode_title">Режим полёта</string> + <string name="profile_disable_screen_lock_summary">Отключать блокировку экрана когда этот профиль активен</string> + + <string name="vibrator_type_ringer">Вызовы</string> + <string name="vibrator_type_notification">Уведомления</string> + + <!-- Connection override toggles (not all are used at this time ) --> + <string name="possibleButtons">Доступные кнопки</string> + <string name="toggleWifiAp">Точка доступа Wi-Fi</string> + <string name="toggleData">Передача данных</string> + <string name="toggleSync">Синхронизация</string> + <string name="toggleSound">Режим звонка</string> + <string name="toggleBrightness">Подсветка</string> + <string name="toggleAutoRotate">Поворот экрана</string> + <string name="toggleScreenTimeout">Задержка выкл. экрана</string> + <string name="toggleAirplane">Режим полёта</string> + <string name="toggleFlashlight">Фонарь</string> + <string name="toggleLockScreen">Блокировка</string> + + <!-- Screen security - Screen security --> + <string name="screen_security_category">Безопасность экрана</string> + <string name="screen_security_title">Экран блокировки</string> + <string name="screen_security_summary">Просмотр и изменение безопасности экрана блокировки, задержки и тайм-аута</string> + <string name="additional_options_title">Дополнительные опции</string> + <string name="unlock_menu_unlock_title">Разблок. по кнопке \"Меню\"</string> + <string name="unlock_menu_unlock_summary">Нажатие кнопки \"Меню\" разблокирует устройство</string> + <string name="unlock_home_unlock_title">Разблок. по кнопке \"Домой\"</string> + <string name="unlock_home_unlock_summary">Нажатие кнопки \"Домой\" разблокирует устройство</string> + <string name="unlock_quick_unlock_control_title">Быстрая разблокировка</string> + <string name="unlock_quick_unlock_control_summary">Не требуется нажимать \"ОК\" после ввода пароля или PIN. Стирание засчитывается как неудачная попытка</string> + + <!-- Slide lock delay --> + <string name="delay_and_timeout_title">Задержка при блокировке</string> + <string name="slide_lock_delay_title">Задержка блокировки экрана</string> + <string name="slide_lock_timeout_delay_title">Задержка после тайм-аута</string> + <string name="slide_lock_screenoff_delay_title">Задержка после выключения экрана</string> + <string name="slide_lock_delay_none">Нет</string> + <string name="slide_lock_delay_1s">1 секунда</string> + <string name="slide_lock_delay_5s">5 секунд</string> + <string name="slide_lock_delay_10s">10 секунд</string> + <string name="slide_lock_delay_15s">15 секунд</string> + <string name="slide_lock_delay_30s">30 секунд</string> + <string name="slide_lock_delay_1m">1 минута</string> + <string name="slide_lock_delay_5m">5 минут</string> + <string name="slide_lock_delay_10m">10 минут</string> + <string name="slide_lock_delay_30m">30 минут</string> + + <!-- Performance settings --> + <string name="performance_settings_title">Производительность</string> + + <!-- Performance Settings : Warning dialog #CM --> + <string name="performance_settings_warning_title">Соблюдайте осторожность</string> + <string name="performance_settings_warning">Эти настройки включены для экспериментов и любые внесённые изменения могут вызвать нестабильную работу, сбои, потерю данных или аппаратные сбои.\n\nМы просим не слать баг-репорты, если Вы что-то меняли в этих настройках.</string> + + <!-- Performance Settings : Processor Settings --> + <!-- Performance Settings : Processor settings title --> + <string name="processor_title">Процессор</string> + <!-- Performance Settings : Processor settings summary. --> + <string name="processor_summary">Изменение режимов и частот ЦП</string> + + <!-- Performance Settings : Processor settings sub items --> + <string name="cpu_cur_freq_title">Текущая частота ЦП</string> + <string name="cpu_governors_title">Режим ЦП</string> + <string name="cpu_min_freq_title">Минимальная частота ЦП</string> + <string name="cpu_max_freq_title">Максимальная частота ЦП</string> + <string name="cpu_set_on_boot">Выставлять при загрузке</string> + <string name="cpu_set_on_boot_summary">Применить текущие настройки ЦП при загрузке</string> + + <!-- Performance Settings : I/O scheduler settings title --> + <string name="io_scheds_title">Планировщик I/O</string> + <!-- Performance Settings : I/O scheduler settings summary. --> + <string name="io_scheds_summary">Изменить режим планировщика I/O (ввода/вывода)</string> + + <!-- Performance Settings : I/O scheduler settings sub items --> + <string name="io_sched_title">Планировщик I/O</string> + <string name="io_sched_set_on_boot">Выставлять при загрузке</string> + <string name="io_sched_set_on_boot_summary">Применить текущие настройки планировщика I/O при загрузке</string> + + <!-- Memory Management --> + <string name="memory_management_title">Управление памятью</string> + <string name="memory_management_summary">Настройка использования памяти для изменения производительности системы</string> + <!-- zRam --> + <string name="pref_zram_title">zRam</string> + <string name="pref_zram_summary">Сжатие памяти для увеличения виртуальной ёмкости (требуется перезагрузка)</string> + <!-- KSM --> + <string name="pref_ksm_summary">KSM снижает физические требования к памяти и увеличивает производительность</string> + <!-- Purgeable Assets --> + <string name="pref_purgeable_assets_title">Разрешить сброс активов</string> + <string name="pref_purgeable_assets_summary">Освободить больше памяти, когда это необходимо, если память активов битмапов разрешено освобождать (требуется перезагрузка)</string> + + <!-- Performance Settings : Dithering --> + <string name="pref_use_dithering_title">Поверхностное сглаживание</string> + <string name="dithering_no_dither">Сглаживание выключено</string> + <string name="dithering_color_banding">Удаление цветных полос (по умолчанию)</string> + <string name="dithering_blur_effect">Удаление цветных полос и размытого эффекта</string> + + <!-- Performance Settings : 16bpp Alpha --> + <string name="pref_use_16bpp_alpha_title">16-битная прозрачность</string> + <string name="pref_use_16bpp_alpha_summary">Лучшая производительность графической системы, но возможно снижение качества и появление визуальных артефактов (требуется перезагрузка)</string> + + <!-- Display : Rotation --> + <string name="display_rotation_title">Поворот экрана</string> + <string name="display_rotation_disabled">Выключено</string> + <string name="display_rotation_unit">градусов</string> + <string name="display_rotation_category_title">Режимы вращения</string> + <string name="display_rotation_0_title">0 градусов</string> + <string name="display_rotation_90_title">90 градусов</string> + <string name="display_rotation_180_title">180 градусов</string> + <string name="display_rotation_270_title">270 градусов</string> + + <!-- String for ShortcutPickHelper --> + <string name="picker_activities">Действия</string> + <string name="select_custom_app_title">Выбрать собственное приложение</string> + <string name="select_custom_activity_title">Выбрать собственное действие</string> + <string name="icon_picker_choose_icon_title">Выбрать иконку</string> + <string name="icon_picker_browser">Браузер</string> + <string name="icon_picker_movie">Видео</string> + <string name="icon_picker_gallery">Галерея</string> + <string name="icon_picker_calendar">Календарь</string> + <string name="icon_picker_camera">Камера</string> + <string name="icon_picker_maps">Карты</string> + <string name="icon_picker_music">Музыка</string> + <string name="icon_picker_nav_normal">Навигация</string> + <string name="icon_picker_podcast">Подкасты</string> + <string name="icon_picker_sms">Сообщения</string> + <string name="icon_picker_phone">Телефон</string> + <string name="icon_picker_alarm">Часы</string> + <string name="icon_picker_email2">Email (Holo)</string> + <string name="icon_picker_google_small">Google (малый)</string> + <string name="icon_picker_rss">RSS</string> + <string name="icon_picker_twitter">Твиттер</string> + + <!-- String for IconPicker --> + <string name="icon_picker_title">Выберите источник иконок</string> + <string name="icon_picker_system_icons_title">Системные иконки</string> + <string name="icon_picker_gallery_title">Галерея</string> + <string name="icon_picker_pack_title">Набор иконок</string> + + <string name="increasing_ring_title">Возрастающая громкость звонка</string> + <!-- Sound settings screen, the caption of the checkbox for making incoming calls increase in volume --> + <string name="checkbox_increasing_ring">Включить</string> + <!-- Sound settings screen, the title of the volume bar to adjust the minimum increasing ring volume --> + <string name="increasing_ring_min_volume_title">Начальная громкость звонка</string> + <string name="increasing_ring_volume_notice">Примечание:\nЕсли стартовая громкость рингтона выше установленной громкости звонка, рингтон будет воспроизведён на громкости, установленной в системе.</string> + <string name="increasing_ring_interval_title">Интервал увеличения</string> + <string name="increasing_ring_interval_eachring">При каждом гудке</string> + <string name="increasing_ring_interval_half_second">0.5 секунды</string> + <string name="increasing_ring_interval_1second">1 секунда</string> + <string name="increasing_ring_interval_2seconds">2 секунды</string> + <string name="increasing_ring_interval_3seconds">3 секунды</string> + <string name="increasing_ring_interval_5seconds">5 секунд</string> + <string name="increasing_ring_interval_10seconds">10 секунд</string> + + <string name="profile_write_nfc_tag">Записать тег NFC</string> + <string name="profile_write_touch_tag">Нажмите для записи тега</string> + <string name="profile_write_success">Тег успешно записан</string> + <string name="profile_write_failed">Записать тег не удалось!</string> + <string name="profile_selected">Выбран профиль: %1$s</string> + <string name="profile_nfc_text">Запись NFC тега для профиля позволит прикосновением к тегу выбрать нужный профиль. При повторном нажатии будет выбран ранее используемый профиль.</string> + <string name="profile_unknown_nfc_tag">Неизвестный профиль</string> + <string name="profile_add_nfc_text">Этот NFC тег присвоен неизвестному профилю. Назначение этого NFC тега к существующему профилю позволит использовать его в будущем.</string> + <string name="profile_select">Выберите профиль</string> + + <string name="link_volume_ringtones">Связать громкость</string> + <string name="link_volume_mutes">Беззвучный режим влияет на уведомления</string> + + <!-- Display settings screen, notification light settings --> + <string name="notification_pulse_title">Индикатор событий</string> + <string name="notification_light_general_title">Основные</string> + <string name="notification_light_applist_title">Приложения</string> + <string name="notification_light_phonelist_title">Телефон</string> + <string name="notification_light_use_custom">Собственные значения</string> + <string name="notification_light_enabled">Включено</string> + <string name="notification_light_disabled">Выключено</string> + <string name="notification_light_default_value">По умолчанию</string> + <string name="notification_light_missed_call_title">Пропущенный вызов</string> + <string name="notification_light_voicemail_title">Голосовая почта</string> + + <!-- Notification light dialogs --> + <string name="edit_light_settings">Изменить настройки индикатора</string> + <string name="pulse_speed_title">Длительность и скорость мигания</string> + <string name="picker_arrow">→</string> + <string name="default_time">Нормально</string> + <string name="custom_time">Пользовательский</string> + <string name="dialog_test">Тест</string> + <string name="dialog_delete_title">Удалить</string> + <string name="dialog_delete_message">Удалить выбранные элементы?</string> + <string name="dialog_test_message">Выключите экран, чтобы увидеть выбранные настройки индикатора в действии или закройте этот диалог для остановки теста</string> + <string name="dialog_test_button">Отклонить</string> + + <!-- Values for the notification light pulse spinners --> + <string name="pulse_length_always_on">Всегда вкл.</string> + <string name="pulse_length_very_short">Очень коротко</string> + <string name="pulse_length_short">Коротко</string> + <string name="pulse_length_normal">Нормально</string> + <string name="pulse_length_long">Долго</string> + <string name="pulse_length_very_long">Очень долго</string> + <string name="pulse_speed_very_fast">Очень быстро</string> + <string name="pulse_speed_fast">Быстро</string> + <string name="pulse_speed_normal">Нормально</string> + <string name="pulse_speed_slow">Медленно</string> + <string name="pulse_speed_very_slow">Очень медленно</string> + + <!-- Battery light settings --> + <string name="battery_light_title">Индикация батареи</string> + <string name="battery_low_pulse_title">Индикация разрядки батареи</string> + <string name="battery_light_list_title">Цвета</string> + <string name="battery_light_low_color_title">Батарея разряжена</string> + <string name="battery_light_medium_color_title">Заряжается</string> + <string name="battery_light_full_color_title">Полностью заряжена</string> + + <!-- Sound settings screen --> + <string name="volume_overlay_title">Панель громкости</string> + <string name="volbtn_music_controls_title">Управление музыкой кнопками громкости</string> + <string name="volbtn_music_controls_summary">Когда экран выключен, долгое нажатие кнопок громкости переключает музыкальные треки</string> + <string name="headset_connect_player_title">Запускать проигрыватель при подключении</string> + <string name="volume_ring_only_description">Рингтон</string> + <string name="ring_mode_title">Режим звонка</string> + <string name="ring_mode_normal">Обычный</string> + <string name="ring_mode_vibrate">Вибро</string> + <string name="ring_mode_mute">Беззвучный</string> + + <!-- Hardware keys --> + <string name="hardware_keys_title">Аппаратные кнопки</string> + <string name="hardware_keys_bindings_title">Действия кнопок</string> + <string name="hardware_keys_enable_custom_title">Вкл. пользовательские действия</string> + <string name="hardware_keys_home_long_press_title">Кнопка \"Домой\" (долгое нажатие)</string> + <string name="hardware_keys_menu_press_title">Кнопка \"Меню\"</string> + <string name="hardware_keys_menu_long_press_title">Кнопка \"Меню\" (долгое нажатие)</string> + <string name="hardware_keys_assist_press_title">Кнопка \"Поиск\"</string> + <string name="hardware_keys_assist_long_press_title">Кнопка \"Поиск\" (долгое нажатие)</string> + <string name="hardware_keys_app_switch_press_title">Переключение приложений</string> + <string name="hardware_keys_app_switch_long_press_title">Переключение приложений (долгое нажатие)</string> + <string name="hardware_keys_show_overflow_title">Показывать кнопку меню</string> + <string name="hardware_keys_show_overflow_summary">Показывать кнопку меню (вертикальное троеточие) в приложениях</string> + <string name="hardware_keys_show_overflow_toast_enable">Кнопка меню может не отображаться до перезапуска приложений</string> + <string name="hardware_keys_show_overflow_toast_disable">Кнопка меню может отображаться до перезапуска приложений</string> + <string name="hardware_keys_action_nothing">Нет действия</string> + <string name="hardware_keys_action_menu">Открыть/закрыть меню</string> + <string name="hardware_keys_action_app_switch">Запущенные приложения</string> + <string name="hardware_keys_action_search">Поисковый помощник</string> + <string name="hardware_keys_action_voice_search">Голосовой поиск</string> + <string name="hardware_keys_action_in_app_search">Поиск в приложении</string> + + <!-- Navigation Bar #CM --> + <string name="navigation_bar_title">Строка навигации</string> + <string name="navigation_bar_help_text">1 - Для редактирования, нажмите значок замка\n2 - Нажмите любую кнопку, чтобы задать или изменить функциональность\n3 - Долгим нажатием на любой кнопке можно изменить её порядок\n4 - Для сохранения нажмите на значок замка\n5 - Для сброса настроек, нажмите кнопку сброса\n</string> + <string name="navigation_bar_tips">• Одно действие может быть назначено только на одну кнопку\n\n• Кнопка \"Домой\" не может быть изменена\n\n• Боковые кнопки не могут быть изменены</string> + <string name="navigation_bar_tips_title">Быстрые подсказки</string> + <string name="navigation_bar_reset_message">Удалить текущие настройки и восстановить значения по умолчанию?</string> + <string name="navigation_bar_save_message">Настройки строки навигации сохранены</string> + <string name="navigation_bar_reset_toast">Настройки строки навигации сброшены по умолчанию</string> + <string name="navigation_bar_menu_editable">Режим правки</string> + <string name="navigation_bar_menu_locked">Заблокировано</string> + + <!-- Power Widget #CM --> + <string name="power_widget_title">Кнопки в панели уведомлений</string> + <string name="title_expanded_widget">Кнопки в панели уведомлений</string> + <string name="power_widget_behavior">Поведение виджета</string> + <string name="title_expanded_hide_onchange">Скрывать при изменении</string> + <string name="title_expanded_hide_indicator">Скрывать индикаторы</string> + <string name="title_expanded_hide_scrollbar">Скрывать полосу прокрутки</string> + <string name="title_widget_picker">Кнопки виджета</string> + <string name="summary_widget_picker">Выберите кнопки, которые будут отображаться на этом виджете</string> + <string name="title_widget_order">Упорядочить кнопки виджета</string> + <string name="summary_widget_order">Упорядочить кнопки на виджете</string> + <string name="title_buttons">Кнопки</string> + <string name="title_toggle_wifi">Wi-Fi</string> + <string name="title_toggle_bluetooth">Bluetooth</string> + <string name="title_toggle_gps">GPS</string> + <string name="title_toggle_sound">Звук</string> + <string name="title_toggle_brightness">Подсветка</string> + <string name="title_toggle_sync">Синхронизация</string> + <string name="title_toggle_wifiap">Точка доступа Wi-Fi</string> + <string name="title_toggle_screentimeout">Задержка выкл. экрана</string> + <string name="title_toggle_mobiledata">Передача данных</string> + <string name="title_toggle_lockscreen">Блокировка</string> + <string name="title_toggle_networkmode">Режим сети</string> + <string name="title_toggle_autorotate">Автоповорот</string> + <string name="title_toggle_airplane">Режим полёта</string> + <string name="title_toggle_flashlight">Фонарик</string> + <string name="title_toggle_sleep">Выключить экран</string> + <string name="title_toggle_media_play_pause">Плеер: Воспр./Пауза</string> + <string name="title_toggle_media_previous">Плеер: Пред. трек</string> + <string name="title_toggle_media_next">Плеер: След. трек</string> + <string name="title_toggle_lte">LTE</string> + <string name="title_toggle_wimax">WiMAX</string> + <string name="title_button_modes">Режимы кнопок</string> + <string name="pref_brightness_mode_title">Режимы подсветки</string> + <string name="pref_brightness_mode_summary">Укажите, какие режимы будут меняться кнопкой "Подсветка"</string> + <string name="cm_brightness_mode_auto">Авто</string> + <string name="cm_brightness_mode_dim">Тусклый</string> + <string name="pref_network_mode_title">Режимы сети (2G/3G)</string> + <string name="pref_screentimeout_mode_title">Режимы откл. экрана</string> + <string name="pref_ring_mode_title">Режимы звука</string> + <string name="pref_ring_mode_summary">Укажите, какие режимы будут меняться кнопкой "Звук"</string> + <string name="cm_sound_mode_silent">Беззвучный</string> + <string name="cm_sound_mode_vibrate">Вибро</string> + <string name="cm_sound_mode_sound">Звук</string> + <string name="cm_sound_mode_soundVibrate">Звук+Вибро</string> + <string name="pref_flash_mode_title">Режимы фонарика</string> + <string name="expanded_haptic_feedback_title">Отклик на нажатие</string> + + <!-- Kill app long-press back --> + <string name="kill_app_longpress_back">Закрытие приложения</string> + <string name="kill_app_longpress_back_summary">Долгое нажатие кнопки Назад закроет запущенное приложение</string> + + <!-- Change Log strings --> + <string name="changelog_title">Список изменений</string> + <string name="changelog_loading">Загрузка списка изменений\u2026</string> + <string name="changelog_error">Ошибка загрузки списка изменений</string> + <string name="changelog_unknown">Неизвестно</string> + <string name="changelog_version">Версия</string> + + <!-- Power menu enable disable --> + <string name="power_menu_title">Меню \"Параметры устройства\"</string> + <string name="power_menu_reboot_title">Перезагрузка</string> + <string name="power_menu_screenshot_title">Скриншот</string> + <string name="power_menu_expanded_desktop">Расширенный рабочий стол</string> + <string name="power_menu_profiles_title">Выбор профиля</string> + <string name="power_menu_airplane_title">Режим полёта</string> + <string name="power_menu_user_title">Переключение пользователей</string> + <string name="power_menu_sound_title">Звуковая панель</string> + + <!-- CM Updater --> + <string name="cmupdate_settings_title">Обновление CyanogenMod</string> + <string name="cmupdate_settings_summary">Проверка и установка доступных обновлений</string> + + <!-- Advanced, Device specific (DeviceParts) settings --> + <string name="advanced_settings_title">Расширенные настройки</string> + + <!-- Whether to display IME switcher notifcation --> + <string name="ime_switcher_notify">Уведомление о выборе</string> + <string name="ime_switcher_notify_summary">Показывать уведомление выбора способа ввода</string> + + <!-- Status bar #CM --> + <string name="status_bar_title">Строка состояния</string> + <string name="status_bar_clock_title">Часы</string> + <string name="status_bar_general_title">Основные</string> + <string name="status_bar_show_clock_title">Показывать часы</string> + <string name="status_bar_am_pm_title">Стиль AM/PM</string> + <string name="status_bar_am_pm_info">Включён 24-часовой формат</string> + <string name="status_bar_battery_title">Стиль батареи</string> + <string name="status_bar_toggle_brightness">Управление яркостью</string> + <string name="status_bar_toggle_brightness_summary">Изменять яркость, проводя по строке состояния</string> + <string name="status_bar_toggle_info">Включена автоматическая регулировка яркости</string> + <string name="status_bar_signal_text_title">Стиль сигнала</string> + <string name="status_bar_style_icon">Иконка</string> + <string name="status_bar_style_hidden">Скрытый</string> + <string name="status_bar_signal_text_show_text">Текст</string> + <string name="status_bar_battery_status_percentage">Процентный</string> + <string name="status_bar_battery_status_circle">Круг</string> + <string name="status_bar_battery_status_circle_percentage">Круг с процентами</string> + + <!-- Status bar notification count --> + <string name="status_bar_notif_count_title">Счётчик уведомлений</string> + <string name="status_bar_notif_count_summary">Показывать количество новых уведомлений в строке состояния</string> + + <!-- Wakeup options --> + <string name="display_category_wakeup_options_title">Настройки пробуждения</string> + <string name="pref_volume_wake_title">Пробуждение громкостью</string> + <string name="pref_volume_wake_summary">Нажатие на кнопки громкости пробуждает устройство. Предназначено для устройств с труднонажимаемой кнопкой питания</string> + + <!-- Setting checkbox summary for displaying USB debugging notification --> + <string name="adb_notify">Уведомление об отладке по USB</string> + <string name="adb_notify_summary">Показывать уведомление о включённом режиме отладки по USB</string> + + <!-- Launches Dev Tools --> + <string name="development_tools_title">Запуск утилиты разработчика</string> + + <!-- USB Mass Storage --> + <string name="usb_mass_storage_title">USB-накопитель</string> + <string name="usb_mass_storage_summary">Включить режим USB-накопителя (UMS)</string> + + <!-- Android debugging over WiFi --> + <string name="adb_over_network">ADB по сети</string> + <string name="adb_over_network_summary">Включить отладку TCP/IP через сетевые интерфейсы (Wi-Fi, USB сети). Эта установка сбрасывается при перезагрузке</string> + <!-- Warning for Adb over Network --> + <string name="adb_over_network_warning">ВНИМАНИЕ: когда включён ADB по сети, телефон открыт для доступа из всех подключённых сетей, включая передачу данных GSM!\n\nИспользуйте эту функцию только тогда, когда Вы подключены к доверенным сетям.\n\nВы действительно хотите включить эту функцию?</string> + + <string name="lockscreen_buttons_title">Действия кнопок</string> + <string name="lockscreen_buttons_summary">Просмотр или изменение действий кнопок экрана блокировки</string> + <string name="lockscreen_long_press_back_title">Долгое нажатие кнопки \"Назад\"</string> + <string name="lockscreen_long_press_home_title">Долгое нажатие кнопки \"Домой\"</string> + <string name="lockscreen_long_press_menu_title">Долгое нажатие кнопки \"Меню\"</string> + <string name="lockscreen_buttons_no_action">Нет действия</string> + <string name="lockscreen_buttons_flashlight">Фонарик</string> + <string name="lockscreen_buttons_next">Следующий трек</string> + <string name="lockscreen_buttons_previous">Предыдущий трек</string> + <string name="lockscreen_buttons_playpause">Воспр./Пауза</string> + <string name="lockscreen_buttons_toggle_sound">Режимы звука</string> + + <!-- Quick settings panel --> + <string name="quick_settings_panel_title">Панель быстрых настроек</string> + <string name="quick_settings_title">Быстрые настройки</string> + <string name="title_static_tiles">Статические плитки</string> + <string name="tile_picker_title">Плитки и размещение</string> + <string name="tile_picker_summary">Просмотр, выбор или изменение размещения отображаемых плиток</string> + <string name="tile_choose_title">Выбор плитки</string> + + <string name="title_tile_airplane">Режим полёта</string> + <string name="title_tile_battery">Батарея</string> + <string name="title_tile_brightness">Подсветка</string> + <string name="title_tile_sleep">Сон</string> + <string name="title_tile_torch">Фонарь</string> + <string name="title_tile_lockscreen">Экран блокировки</string> + <string name="title_tile_mobiledata">Передача данных</string> + <string name="title_tile_profile">Профиль</string> + <string name="title_tile_autorotate">Автоповорот</string> + <string name="title_tile_settings">Настройки</string> + <string name="title_tile_screen_timeout">Задержка выкл. экрана</string> + <string name="title_tile_sound">Звук</string> + <string name="title_tile_sync">Синхронизация</string> + <string name="title_tile_wifiap">Точка доступа Wi-Fi</string> + <string name="title_tile_user">Пользователи</string> + <string name="title_tile_networkmode">Режим сети</string> + <string name="title_tile_usb_tether">USB-модем</string> + <string name="title_tile_quiet_hours">Тихие часы</string> + + <string name="title_dynamic_tiles">Динамические плитки</string> + <string name="dynamic_tiles_note_title">Примечание</string> + <string name="dynamic_tiles_note_summary">Динамические плитки видны только при системном вызове</string> + <string name="title_dynamic_alarm">Часы</string> + <string name="title_dynamic_bugreport">Отчёт об ошибке</string> + <string name="title_dynamic_ime">Выбор способа ввода</string> + <string name="title_dynamic_usbtether">USB-модем</string> + <string name="title_dynamic_wifi">Подключение к Wi-Fi</string> + + <string name="title_general">Основные</string> + <string name="title_quick_pulldown">Быстрый доступ</string> + <string name="summary_quick_pulldown">%1$s угол строки уведомлений при опускании вниз открывает \"Быстрые настройки\"</string> + <string name="quick_pulldown_summary_left">Левый</string> + <string name="quick_pulldown_summary_right">Правый</string> + <string name="quick_pulldown_off">Выкл.</string> + <string name="quick_pulldown_left">Левый</string> + <string name="quick_pulldown_right">Правый</string> + <string name="title_collapse_panel">Закрывать панель</string> + <string name="summary_collapse_panel">Закрывать панель быстрых настроек после переключения</string> + + <!-- Setting checkbox title for root access --> + <string name="root_access">Root доступ</string> + <string name="root_access_warning_title">Разрешить root доступ?</string> + <string name="root_access_warning_message">Позволять приложениям получать root доступ может быть очень опасным и ставит под угрозу безопасность вашей системы!</string> + <string name="root_access_none">Выключен</string> + <string name="root_access_apps">Только приложения</string> + <string name="root_access_adb">Только ADB</string> + <string name="root_access_all">Приложения и ADB</string> + + <!-- Reset tiles --> + <string name="tiles_reset_title">Сброс</string> + <string name="tiles_reset_message">Восстановить плитки и их расположение по умолчанию?</string> + + <!--- Volume key cursor control --> + <string name="volume_key_cursor_control_title">Перемещение курсора</string> + <string name="volume_key_cursor_control_off">Выключено</string> + <string name="volume_key_cursor_control_on">Кнопка \"+\" двигает курсор влево, \"-\"-вправо</string> + <string name="volume_key_cursor_control_on_reverse">Кнопка \"+\" двигает курсор вправо, \"-\"-влево</string> + + <!-- Wireless display --> + <string name="pref_wifi_disable_hdcp_title">Пропустить опрос HDCP</string> + <string name="pref_wifi_disable_hdcp_summary">Используйте эту настройку, если вы смогли подключиться, но не удаётся вывести изображение</string> + + <!--- Sms security limit --> + <string name="app_security_title">БЕЗОПАСНОСТЬ ПРИЛОЖЕНИЙ</string> + <string name="sms_security_check_limit_title">Ограничение SMS-сообщений</string> + <string name="sms_security_check_limit_summary">Показывать предупреждение при слишком частой отправке SMS-сообщений приложениями. Текущее значение: %d сообщений в 15 минут.</string> + <string name="sms_security_check_limit_default">30 (По умолч.)</string> + + <!--- Lock clock --> + <string name="lock_clock_title">Виджет \"cLock\"</string> + <string name="lock_clock_summary">Просмотр или изменение настроек отображения виджета \"cLock\" на рабочем столе или экране блокировки</string> + + <!-- Stylus Icon --> + <string name="stylus_icon_enabled_title">Указатель пера</string> + <string name="stylus_icon_enabled_summary">Показывать значок указателя при работе с пером</string> + + <string name="lockscreen_maximize_widgets_title">Развёрнутые виджеты</string> + <string name="lockscreen_maximize_widgets_summary">Показывать виджеты экрана блокировки развёрнутыми, а разблокировку экрана в свёрнутом виде</string> + + <!-- Lock screen background --> + <string name="lockscreen_custom_background_title">Фон</string> + <string name="lockscreen_custom_background_dialog_title">Выберите цвет</string> + <string name="lockscreen_background_result_successful">Фон изменён</string> + <string name="lockscreen_background_result_not_successful">Фон не изменён</string> + <string name="lockscreen_background_color_fill">Цвет заливки</string> + <string name="lockscreen_background_custom_image">Пользоват. изображение</string> + <string name="lockscreen_background_default_wallpaper">Обои по умолчанию</string> + + <!-- Safe headset volume restore checkbox --> + <string name="safe_headset_volume_title">Безопасная громкость наушников</string> + <string name="safe_headset_volume_summary">Понижать громкость при первом подключении наушников</string> + + <!-- Waiver --> + <string name="cyanogenmod_waiver_title">Отказ от ответственности</string> + <string name="cyanogenmod_waiver_body">Изменение этих настроек может противоречить законам Вашего государства.\n\nНажимая \"OK\" Вы соглашаетесь с этим предупреждением и освобождаете CyanogenMod и всех его разработчиков от любых юридических обязательств.</string> + + <!-- **** CYANOGENMOD ADDITIONS END **** --> + </resources> diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml index a64386a..6e8282a 100644 --- a/res/values-sv/strings.xml +++ b/res/values-sv/strings.xml @@ -595,7 +595,7 @@ <string name="wifi_disabled_generic" msgid="4259794910584943386">"Inaktiverad"</string> <string name="wifi_disabled_network_failure" msgid="3111321240793227690">"Undvek dålig Internetanslutning"</string> <string name="wifi_disabled_password_failure" msgid="8659805351763133575">"Autentiseringsproblem"</string> - <string name="wifi_not_in_range" msgid="1136191511238508967">"Inte i intervall"</string> + <string name="wifi_not_in_range" msgid="1136191511238508967">"Inte inom räckhåll"</string> <string name="wifi_wps_available_first_item" msgid="4422547079984583502">"WPS tillgängligt"</string> <string name="wifi_wps_available_second_item" msgid="8427520131718215301">" (WPS tillgängligt)"</string> <string name="wifi_secured_first_item" msgid="4072076186051083451">"Skyddad med <xliff:g id="WIFI_SECURITY_SHORT">%1$s</xliff:g>"</string> @@ -1376,7 +1376,7 @@ <string name="usage_type_data_recv" msgid="7251090882025234185">"Mottagna data"</string> <string name="usage_type_audio" msgid="6957269406840886290">"Ljud"</string> <string name="usage_type_video" msgid="4295357792078579944">"Video"</string> - <string name="usage_type_on_time" msgid="3351200096173733159">"Tid som funktionen varit på"</string> + <string name="usage_type_on_time" msgid="3351200096173733159">"Tid aktiverad"</string> <string name="usage_type_no_coverage" msgid="3797004252954385053">"Tid utan täckning"</string> <string name="battery_action_stop" msgid="649958863744041872">"Tvingad avslutning"</string> <string name="battery_action_app_details" msgid="7861051816778419018">"Info om appen"</string> diff --git a/res/values-zh-rCN/arrays.xml b/res/values-zh-rCN/arrays.xml index 3d38157..18c6e48 100644 --- a/res/values-zh-rCN/arrays.xml +++ b/res/values-zh-rCN/arrays.xml @@ -295,4 +295,59 @@ <item msgid="5077768429488260031">"永不允许"</item> <item msgid="1417929597727989746">"始终允许"</item> </string-array> + + <!-- **** CYANOGENMOD ADDITIONS START **** --> + + <!-- Volume Overlay options. --> + <string-array name="volume_overlay_entries"> + <item>单行</item> + <item>可展开</item> + <item>完全展开</item> + <item>无</item> + </string-array> + + <!-- Performance settings --> + <string-array name="pref_zram_size_entries"> + <item>禁用</item> + <item>10%</item> + <item>18% (默认)</item> + <item>26%</item> + </string-array> + + <!-- Profile mode options. --> + <string-array name="profile_entries"> + <item>开启</item> + <item>关闭</item> + <item>不覆盖</item> + </string-array> + + <!-- Profile mode options. --> + <string-array name="profile_connection_entries"> + <item>禁用</item> + <item>启用</item> + </string-array> + + <string-array name="entries_screentimeout_widget"> + <item>15 秒 | 1 分钟 | 5 分钟</item> + <item>30 秒 | 2 分钟 | 5 分钟</item> + </string-array> + + <string-array name="entries_flash_widget"> + <item>正常</item> + <item>高</item> + </string-array> + + <string-array name="haptic_feedback_entries"> + <item>使用全局设置</item> + <item>开启</item> + <item>关闭</item> + </string-array> + + <string-array name="entries_status_bar_am_pm"> + <item>正常</item> + <item>小</item> + <item>无</item> + </string-array> + + <!-- **** CYANOGENMOD ADDITIONS END **** --> </resources> diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml index 4478f15..c877d47 100644 --- a/res/values-zh-rCN/strings.xml +++ b/res/values-zh-rCN/strings.xml @@ -166,6 +166,16 @@ <string name="bluetooth_phonebook_request" msgid="457033227379858269">"电话簿请求"</string> <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s想访问您的联系人信息和通话记录。要向%2$s授予访问权限吗?"</string> <string name="bluetooth_pb_remember_choice" msgid="2901499974259177202">"下次不再询问"</string> + + <!-- Activity label of BluetoothMasPermissionActivity, also used as Strings in the permission dialog [CHAR LIMIT=none] --> + <string name="bluetooth_mas_request">"信息访问请求"</string> + + <!-- Bluetooth MAS permission Alert Activity text [CHAR LIMIT=none] --> + <string name="bluetooth_mas_acceptance_dialog_text">%1$s 想访问您的信息. 给予 %2$s 访问权限?</string> + + <!-- Bluetooth MAS permission Alert Activity checkbox text [CHAR LIMIT=none] --> + <string name="bluetooth_mas_remember_choice">下次不再询问</string> + <string name="date_and_time" msgid="4114084177056654663">"日期和时间设置"</string> <string name="choose_timezone" msgid="1362834506479536274">"选择时区"</string> <string name="normal_date_format" msgid="7636406984925498359">"所在区域 (<xliff:g id="DATE">%s</xliff:g>)"</string> @@ -507,7 +517,7 @@ <string name="wifi_display_disconnect_title" msgid="1543715924639003599">"是否断开连接?"</string> <string name="wifi_display_disconnect_text" msgid="4824860802264489088">"此操作将会断开您与以下设备的连接:<br><b><xliff:g id="DEVICE_NAME">%1$s</xliff:g></b>"</string> <string name="wifi_display_options_title" msgid="5740656401635054838">"无线显示选项"</string> - <string name="wifi_display_options_forget" msgid="9119048225398894580">"取消保存"</string> + <string name="wifi_display_options_forget" msgid="9119048225398894580">"忘记"</string> <string name="wifi_display_options_done" msgid="5703116500357822557">"完成"</string> <string name="wifi_display_options_name" msgid="4756080222307467898">"名称"</string> <string name="wifi_display_summary_on" msgid="3695429596604962531">"开启"</string> @@ -553,7 +563,7 @@ <string name="wifi_menu_scan" msgid="1470911530412095868">"扫描"</string> <string name="wifi_menu_advanced" msgid="7522252991919573664">"高级"</string> <string name="wifi_menu_connect" msgid="4996220309848349408">"连接到网络"</string> - <string name="wifi_menu_forget" msgid="8736964302477327114">"取消保存网络"</string> + <string name="wifi_menu_forget" msgid="8736964302477327114">"忘记此网络"</string> <string name="wifi_menu_modify" msgid="2068554918652440105">"修改网络"</string> <string name="wifi_empty_list_wifi_off" msgid="4722299515264875943">"要查看可用网络,请打开 Wi-Fi。"</string> <string name="wifi_empty_list_wifi_on" msgid="3354911729026237372">"正在搜索 Wi-Fi 网络…"</string> @@ -603,8 +613,8 @@ <string name="wifi_security_none" msgid="7985461072596594400">"无"</string> <string name="wifi_connect" msgid="1076622875777072845">"连接"</string> <string name="wifi_failed_connect_message" msgid="8491902558970292871">"无法连接网络"</string> - <string name="wifi_forget" msgid="8168174695608386644">"取消保存"</string> - <string name="wifi_failed_forget_message" msgid="1348172929201654986">"无法取消保存网络"</string> + <string name="wifi_forget" msgid="8168174695608386644">"忘记"</string> + <string name="wifi_failed_forget_message" msgid="1348172929201654986">"无法忘记网络"</string> <string name="wifi_save" msgid="3331121567988522826">"保存"</string> <string name="wifi_failed_save_message" msgid="6650004874143815692">"无法保存网络"</string> <string name="wifi_cancel" msgid="6763568902542968964">"取消"</string> @@ -620,6 +630,15 @@ <string name="wifi_setting_frequency_band_title" msgid="7493768705046080060">"Wi-Fi 频带"</string> <string name="wifi_setting_frequency_band_summary" msgid="3250740757118009784">"指定操作的频率范围"</string> <string name="wifi_setting_frequency_band_error" msgid="837281974489794378">"设置频带时出现问题。"</string> + <string name="wifi_setting_countrycode_title">Wi-Fi 区域代码</string> + <!-- Wi-Fi settings screen, setting summary for setting the wifi frequency band [CHAR LIMIT=50]--> + <string name="wifi_setting_countrycode_summary">指定 Wi-Fi 使用的区域码</string> + <!-- Wi-Fi settings screen, error message when the frequency band could not be set [CHAR LIMIT=50]. --> + <string name="wifi_setting_countrycode_error">设置区域码时遇到了问题.</string> + <!-- Wi-Fi settings screen, advanced, title of the item to set the Wi-Fi priority. --> + <string name="wifi_setting_priority_title">Wi-Fi 连接优先</string> + <!-- Wi-Fi settings screen, setting summary for setting the Wi-Fi priority--> + <string name="wifi_setting_priority_summary">设置各个 Wi-Fi 网络的优先连接顺序</string> <string name="wifi_advanced_mac_address_title" msgid="6571335466330978393">"MAC 地址"</string> <string name="wifi_advanced_ip_address_title" msgid="6215297094363164846">"IP 地址"</string> <string name="wifi_advanced_settings_label" msgid="3654366894867838338">"IP 设置"</string> @@ -666,7 +685,6 @@ <string name="ring_volume_title" msgid="7938706566797464165">"铃声音量"</string> <string name="vibrate_in_silent_title" msgid="3897968069156767036">"静音时振动"</string> <string name="notification_sound_title" msgid="5137483249425507572">"默认通知提示音"</string> - <string name="notification_pulse_title" msgid="1247988024534030629">"收到通知时指示灯闪烁"</string> <string name="incoming_call_volume_title" msgid="8073714801365904099">"铃声"</string> <string name="notification_volume_title" msgid="2012640760341080408">"通知"</string> <string name="checkbox_notification_same_as_incoming_call" msgid="1073644356290338921">"将来电音量用作通知音量"</string> @@ -1282,6 +1300,16 @@ <string name="enforce_read_external_summary" product="default" msgid="2750027486786530064">"应用必须请求读取 SD 卡的权限"</string> <string name="enforce_read_external_confirm_title" product="default" msgid="273220585729800783">"要对 SD 卡进行读写保护吗?"</string> <string name="enforce_read_external_confirm_message" product="default" msgid="3858482712337574407">"如果 SD 卡受到读写保护,则应用必须请求相关权限才能读取外部存储设备中的数据。"\n\n"某些应用需要其开发者更新之后才能正常使用。"</string> + + <!-- Setting checkbox title for root access --> + <string name="root_access">Root 授权</string> + <string name="root_access_warning_title">允许 Root 授权请求?</string> + <string name="root_access_warning_message">允许程序得到超级用户权限是有风险的! 这可能会影响您的系统的安全!</string> + <string name="root_access_none">禁用</string> + <string name="root_access_apps">限于应用程序</string> + <string name="root_access_adb">限于 ADB</string> + <string name="root_access_all">应用程序与 ADB</string> + <string name="gadget_picker_title" msgid="98374951396755811">"选择小工具"</string> <string name="widget_picker_title" msgid="9130684134213467557">"选择小部件"</string> <string name="allow_bind_app_widget_activity_allow_bind_title" msgid="2538303018392590627">"是否允许该应用创建并访问小部件?"</string> @@ -1312,6 +1340,8 @@ <string name="accessibility_toggle_screen_magnification_auto_update_preference_title" msgid="7218498768415430963">"自动更新屏幕放大状态"</string> <string name="accessibility_toggle_screen_magnification_auto_update_preference_summary" msgid="4392059334816220155">"在应用转换时更新屏幕放大状态"</string> <string name="accessibility_power_button_ends_call_prerefence_title" msgid="6673851944175874235">"按电源按钮结束通话"</string> + <!-- Title for the accessibility preference to home button to answers a call. [CHAR LIMIT=35] --> + <string name="accessibility_home_button_answers_call_prerefence_title">使用 Home 键接听通话</string> <string name="accessibility_toggle_speak_password_preference_title" msgid="5986628515113204844">"说出密码"</string> <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"触摸和按住延迟"</string> <string name="accessibility_toggle_script_injection_preference_title" msgid="7950932054266694403">"增强网页辅助功能"</string> @@ -1530,6 +1560,11 @@ <string name="sound_category_notification_title" msgid="3502115998790286943">"通知"</string> <string name="sound_category_call_ringtone_vibrate_title" msgid="1543777228646645163">"来电铃声和振动"</string> <string name="sound_category_system_title" msgid="1480844520622721141">"系统"</string> + + <!-- Category title for headset specific Settings. + [CHAR LIMIT=40] --> + <string name="headset_category_title">耳机</string> + <string name="wifi_setup_title" msgid="661074868726906436">"Wi-Fi 设置"</string> <string name="wifi_setup_title_editing_network" msgid="7304321031985059969">"连接到 Wi-Fi 网络<xliff:g id="NETWORK_NAME">%s</xliff:g>"</string> <string name="wifi_setup_title_connecting_network" msgid="3747859666621319757">"正在连接到 Wi-Fi 网络“<xliff:g id="NETWORK_NAME">%s</xliff:g>”..."</string> @@ -1543,7 +1578,7 @@ <string name="wifi_setup_back" msgid="144777383739164044">"上一步"</string> <string name="wifi_setup_detail" msgid="2336990478140503605">"网络详情"</string> <string name="wifi_setup_connect" msgid="7954456989590237049">"连接"</string> - <string name="wifi_setup_forget" msgid="2562847595567347526">"取消保存"</string> + <string name="wifi_setup_forget" msgid="2562847595567347526">"忘记"</string> <string name="wifi_setup_save" msgid="3659235094218508211">"保存"</string> <string name="wifi_setup_cancel" msgid="3185216020264410239">"取消"</string> <string name="wifi_setup_status_scanning" msgid="5317003416385428036">"正在扫描查找网络..."</string> @@ -1830,4 +1865,703 @@ <string name="user_picture_title" msgid="7297782792000291692">"照片 ID"</string> <string name="cell_broadcast_settings" msgid="8415582011920085222">"小区广播"</string> <string name="cell_broadcast_settings_summary" msgid="3301339398950905913">"请选择要显示的紧急消息类型。"</string> + + + <!-- CYANOGENMOD EDITS START --> + + <string name="ok">确定</string> + + <!-- Quiet hours --> + <string name="quiet_hours_title">安静时段</string> + <string name="quiet_hours_summary">配置设备应该安静的时段</string> + <string name="quiet_hours_note_title">注意</string> + <string name="quiet_hours_note_summary">安静时段将不会影响来电的正常行为</string> + <string name="quiet_hours_enabled">开启安静时段</string> + <string name="quiet_hours_enabled_on">安静时段设置将会被执行</string> + <string name="quiet_hours_enabled_off">通知提醒将会像往常一样运行</string> + <string name="quiet_hours_start">安静时段起始时间</string> + <string name="quiet_hours_start_summary">什么时间开始执行安静时段的设置</string> + <string name="quiet_hours_end">安静时段结束时间</string> + <string name="quiet_hours_end_summary">什么时间结束安静时段的执行</string> + <string name="quiet_hours_mute">静音提醒</string> + <string name="quiet_hours_mute_on">通知提醒将会被静音</string> + <string name="quiet_hours_mute_off">声音像往常一样</string> + <string name="quiet_hours_still">禁用震动</string> + <string name="quiet_hours_still_on">设备将不会震动</string> + <string name="quiet_hours_still_off">设备将会像往常一样震动</string> + <string name="quiet_hours_dim">禁用指示灯</string> + <string name="quiet_hours_dim_on">指示灯将被禁用</string> + <string name="quiet_hours_dim_off">指示灯将会正常运行</string> + <string name="quiet_hours_haptic">禁用触控反馈</string> + <string name="quiet_hours_haptic_on">触控反馈将被禁用</string> + <string name="quiet_hours_haptic_off">触控反馈将像往常一样</string> + <string name="quiet_hours_active_from">从</string> + <string name="quiet_hours_active_to">激活到</string> + + <!-- Time range preference --> + <string name="start_time_title">起始</string> + <string name="end_time_title">结束</string> + + <!-- Convert sound to vibration toggle --> + <string name="notification_convert_sound_to_vibration_title">收到通知时震动</string> + <string name="notification_convert_sound_to_vibration_summary">处于震动模式时, 所有的通知都将无视任何应用的单独设置并产生震动</string> + + <!-- Hostname setting --> + <string name="device_hostname">设备网络名</string> + + <!-- About phone screen, setting option name--> + <string name="mod_version">CyanogenMod 版本</string> + <string name="mod_version_default">未知</string> + <!-- About phone screen, build date of ROM --> + <string name="build_date">编译日期</string> + <!-- About device screen, Cpu info. --> + <string name="cpu_info">处理器</string> + <!-- About phone screen, Free memory info --> + <string name="mem_info">内存</string> + <!-- About phone screen, status item label --> + + <!-- Anonymous Statistics #CM --> + <!-- About device screen, list item title. Takes the user to the screen about opting in or out of anonymous statistics. --> + <string name="anonymous_statistics_title">CyanogenMod 统计</string> + <string name="anonymous_statistics_summary">开启匿名统计报告以便帮助 CyanogenMod 未来向更好的方向发展</string> + <string name="anonymous_statistics_warning_title">关于统计</string> + <string name="anonymous_statistics_warning">开启 CyanogenMod 统计将允许非个人数据被提交到 CyanogenMod 的开发者以便记录各种设备上的独特安装. 提交的信息包含一个独特的标识符, 而不会涉及您的隐私与个人数据. 该数据将在每次启动时被提交.\n\n如您想看一个作为被提交数据的实例, 请点击预览数据.</string> + <string name="enable_reporting_title">开启报告</string> + <string name="preview_data_title">预览数据</string> + <string name="view_stats_title">查看统计</string> + <string name="anonymous_learn_more">查看更多</string> + + <!-- Anonymous Statistics - Notification --> + <string name="anonymous_notification_desc">启用或禁用 CyanogenMod 统计</string> + + <!-- Anonymous Statistics - Preview --> + <string name="preview_id_title">独特 ID</string> + <string name="preview_device_title">设备</string> + <string name="preview_version_title">版本</string> + <string name="preview_country_title">国家</string> + <string name="preview_carrier_title">运营商</string> + + <!-- INTERFACE Settings --> + <!-- Settings main menu category heading. Interface (Launcher, Themes, System). [CHAR LIMIT=40] --> + <string name="header_category_interface">界面</string> + + <!-- Launcher settings --> + <string name="launcher_settings_title">启动器</string> + + <!-- Themes settings --> + <string name="themes_settings_title">主题</string> + + <!-- System Interface settings --> + <string name="system_settings_title">系统</string> + <string name="system_interface_title">系统界面</string> + + <!-- Notification Drawer --> + <string name="notification_drawer_title">下拉通知栏</string> + + <string name="lock_screen_title">锁屏界面</string> + + <!-- Lock Screen Shortcuts --> + <string name="lockscreen_target_info">把滑块拉到指定的位置以选择快捷方式</string> + <string name="lockscreen_target_title">锁屏快捷方式</string> + <string name="lockscreen_target_summary">查看或改变锁屏界面上的快捷方式</string> + <string name="lockscreen_target_reset">锁屏快捷方式已还原为默认值</string> + <string name="lockscreen_target_save">锁屏快捷方式已保存</string> + <string name="lockscreen_target_reset_title">重置</string> + <string name="lockscreen_target_reset_message">删除所有用户设定的快捷方式并还原为默认值?</string> + <string name="lockscreen_target_empty">空</string> + <string name="lockscreen_target_edit_title">编辑快捷方式与图标</string> + <string name="lockscreen_target_edit_msg">选定或改变与快捷方式所关联的程序与图标</string> + + <!-- Lock screen vibrate settings --> + <string name="lockscreen_vibrate_enabled_title">振动反馈</string> + <string name="lockscreen_vibrate_enabled_head">解锁时产生振动反馈</string> + + <!-- Lock screen misc. settings --> + <string name="lockscreen_battery_status_title">电池状态</string> + <string name="lockscreen_battery_status_charging">仅在充电时显示</string> + <string name="lockscreen_battery_status_alwayson">总是显示</string> + + <!-- Profiles settings --> + <string name="profiles_settings_title">情景模式</string> + <string name="profiles_general_title">常规</string> + <string name="profiles_add">添加</string> + <string name="profile_menu_delete">删除</string> + <string name="profile_settings_title">情景</string> + <string name="profile_empty_list_profiles_off">如果您想配置并使用系统情景, 请先开启情景模式.</string> + + <!-- Add Profile --> + <string name="add_profile_dialog_title">创建新的情景模式</string> + <string name="profile_name_title">名称</string> + <string name="profile_profile_name_prompt">为新的情景模式输入一个名称</string> + <string name="menu_new_profile">新情景模式</string> + <string name="menu_new_profile_summary">添加与配置一个新的情景模式</string> + <string name="new_profile_name"><新情景模式></string> + + <!-- Rename Dialog --> + <string name="rename_dialog_title">重命名</string> + <string name="rename_dialog_message">输入一个新名称</string> + <string name="duplicate_profile_name">此情景名称已被使用!</string> + <string name="duplicate_appgroup_name">此应用组名称已被使用!</string> + + <!-- Reset Profiles --> + <string name="profile_reset_title">重置</string> + <string name="profile_reset_message">您确定要删除所有用户创建的情景与应用组并且还原为默认值?</string> + + <!-- Delete confimation messages --> + <string name="profile_delete_confirm">您确定要删除此情景?</string> + <string name="profile_app_delete_confirm">您确定要移除此应用?</string> + <string name="profile_cannot_delete">当前使用中的情景不能被删除</string> + + <!-- Profile Config screen PreferenceGroup titles --> + <string name="profile_connectionoverrides_title">连接覆盖</string> + <string name="profile_volumeoverrides_title">音量覆盖</string> + <string name="profile_vibratoroverrides_title">震动覆盖</string> + <string name="connection_state_disabled">禁用</string> + <string name="connection_state_enabled">启用</string> + <string name="volume_override_summary">设置为</string> + <string name="vibrator_state_disabled">禁用</string> + <string name="vibrator_state_enabled">启用</string> + <string name="vibrator_state_silent">仅限于震动模式</string> + + <!-- Menu item for managing profiles --> + <string name="profile_profiles_manage">情景</string> + <string name="profile_profile_manage">管理情景</string> + <string name="profile_applist_manage">应用列表</string> + <string name="profile_appgroups_manage">应用组</string> + <string name="profile_appgroup_manage">管理应用组</string> + + <!-- Profile settings screen, section header for settings related to notification profiles --> + <string name="profile_settings">情景设置</string> + <string name="profile_name">名称</string> + + <!-- Profile Settings sound modes labels --> + <string name="sound_mode">提醒模式</string> + <string name="ringer_mode">铃声模式</string> + <string name="lights_mode">灯光模式</string> + <string name="vibrate_mode">震动模式</string> + <string name="choose_soundtone">选择提醒音</string> + <string name="choose_ringtone">选择铃声</string> + + <!-- Sound settings screen, setting option name to pick ringtone (a list dialog comes up)--> + <string name="soundtone_title">提醒音</string> + + <!-- Title for application group setting screen --> + <string name="profile_appgroups_title">应用组</string> + <string name="profile_applist_title">应用</string> + <string name="profile_new_appgroup">新的应用组</string> + <string name="profile_delete_appgroup">删除该应用组</string> + <string name="profile_appgroup_name_prompt">为新的应用组输入一个名称</string> + <string name="profile_appgroup_name_title">名称</string> + <string name="profile_add_app">添加应用</string> + <string name="profile_delete_app">移除应用</string> + + <!-- Add application dialog box title --> + <string name="profile_choose_app">选择应用</string> + <string name="profile_settings_header">情景设置</string> + + <!-- Profiles - system settings --> + <string name="profile_system_settings_title">系统设置</string> + <string name="profile_lockmode_title">锁屏模式</string> + <string name="profile_lockmode_default">默认</string> + <string name="profile_lockmode_insecure">不安全</string> + <string name="profile_lockmode_disabled">禁用</string> + <string name="profile_lockmode_default_summary">使用系统默认值</string> + <string name="profile_lockmode_insecure_summary">使用不安全锁屏</string> + <string name="profile_lockmode_disabled_summary">锁屏已禁用</string> + <string name="profile_airplanemode_title">飞行模式</string> + <string name="profile_disable_screen_lock_summary">此情景激活时禁用锁屏安全设置</string> + + <string name="vibrator_type_ringer">来电</string> + <string name="vibrator_type_notification">通知</string> + + <!-- Connection override toggles (not all are used at this time ) --> + <string name="possibleButtons">可能的按钮</string> + <string name="toggleWifi">Wi-Fi</string> + <string name="toggleWifiAp">便携式 Wi-Fi 热点</string> + <string name="toggleBluetooth">蓝牙</string> + <string name="toggleGPS">GPS</string> + <string name="toggleData">移动数据</string> + <string name="toggleSync">数据同步</string> + <string name="toggle2g3g">2G/3G</string> + <string name="toggleSound">声音模式</string> + <string name="toggleBrightness">亮度</string> + <string name="toggleAutoRotate">屏幕旋转</string> + <string name="toggleScreenTimeout">屏幕超时</string> + <string name="toggleAirplane">飞行模式</string> + <string name="toggleFlashlight">手电筒</string> + <string name="toggleLockScreen">锁屏</string> + <string name="toggleWimax">WiMAX</string> + + <!-- Screen security - Screen security --> + <string name="screen_security_category">屏幕安全性</string> + <string name="screen_security_title">锁屏界面</string> + <string name="screen_security_summary">查看或改变锁屏安全性, 延迟以及超时设置</string> + <string name="additional_options_title">更多选项</string> + <string name="unlock_menu_unlock_title">菜单键解锁</string> + <string name="unlock_menu_unlock_summary">按下菜单键即可解锁设备</string> + <string name="unlock_home_unlock_title">Home 键解锁</string> + <string name="unlock_home_unlock_summary">按下 Home 键即可解锁设备</string> + <string name="unlock_quick_unlock_control_title">快速解锁</string> + <string name="unlock_quick_unlock_control_summary">当正确的 PIN 或密码被输入后, 设备将自动解锁</string> + + <!-- Slide lock delay --> + <string name="delay_and_timeout_title">锁定延迟</string> + <string name="slide_lock_delay_title">延迟屏幕锁定</string> + <string name="slide_lock_timeout_delay_title">屏幕超时后的延迟</string> + <string name="slide_lock_screenoff_delay_title">屏幕关闭后的延迟</string> + <string name="slide_lock_delay_none">无延迟</string> + <string name="slide_lock_delay_1s">1 秒</string> + <string name="slide_lock_delay_5s">5 秒</string> + <string name="slide_lock_delay_10s">10 秒</string> + <string name="slide_lock_delay_15s">15 秒</string> + <string name="slide_lock_delay_30s">30 秒</string> + <string name="slide_lock_delay_1m">1 分钟</string> + <string name="slide_lock_delay_5m">5 分钟</string> + <string name="slide_lock_delay_10m">10 分钟</string> + <string name="slide_lock_delay_30m">30 分钟</string> + + <!-- Performance settings --> + <string name="performance_settings_title">性能</string> + + <!-- Performance Settings : Warning dialog --> + <string name="performance_settings_warning_title">请谨慎前进</string> + <string name="performance_settings_warning">这些设置完全是用于测试与实验. 这里的改变将直接影响系统性能, 并可能导致系统不稳定, 数据丢失, 与硬件损伤.\n\n如果您更改了这里的设置, 我们请求您不要向我们提交 Bug 报告.</string> + + <!-- Performance Settings : Processor Settings --> + <!-- Performance Settings : Processor settings title --> + <string name="processor_title">处理器</string> + <!-- Performance Settings : Processor settings summary. --> + <string name="processor_summary">更改 CPU 调节器以及时钟速度</string> + + <!-- Performance Settings : Processor settings sub items --> + <string name="cpu_cur_freq_title">当前 CPU 频率</string> + <string name="cpu_governors_title">CPU 调节器</string> + <string name="cpu_min_freq_title">最低 CPU 频率</string> + <string name="cpu_max_freq_title">最高 CPU 频率</string> + <string name="cpu_set_on_boot">启动时设置</string> + <string name="cpu_set_on_boot_summary">在启动时恢复当前的 CPU 设置</string> + + <!-- Performance Settings : I/O scheduler settings title --> + <string name="io_scheds_title">I/O 调度器</string> + <!-- Performance Settings : I/O scheduler settings summary. --> + <string name="io_scheds_summary">更改 I/O 调度器</string> + + <!-- Performance Settings : I/O scheduler settings sub items --> + <string name="io_sched_title">I/O 调度器</string> + <string name="io_sched_set_on_boot">启动时设置</string> + <string name="io_sched_set_on_boot_summary">在启动时恢复当前的 CPU 设置</string> + + <!-- Memory Management --> + <string name="memory_management_title">内存管理</string> + <string name="memory_management_summary">自定义内存使用以改变系统性能</string> + <!-- zRam --> + <string name="pref_zram_title">zRam</string> + <string name="pref_zram_summary">压缩内存以增加虚拟容量 (需要重启)</string> + <!-- KSM --> + <string name="pref_ksm_title">KSM</string> + <string name="pref_ksm_summary">KSM 降低系统对内存的要求并提高性能</string> + <!-- Purgeable Assets --> + <string name="pref_purgeable_assets_title">允许内存资源的清除</string> + <string name="pref_purgeable_assets_summary">清除位图内存资源可以在系统需要时提供更多的内存 (需要重启)</string> + + <!-- Performance Settings : Dithering --> + <string name="pref_use_dithering_title">表面改进</string> + <string name="dithering_no_dither">禁用图像抖动处理</string> + <string name="dithering_color_banding">修复色帶 (默认)</string> + <string name="dithering_blur_effect">修复色帶与模糊效果</string> + + <!-- Performance Settings : 16bpp Alpha --> + <string name="pref_use_16bpp_alpha_title">使用16位透明度</string> + <string name="pref_use_16bpp_alpha_summary">更佳的图形性能, 但会降低图像质量以及影响视觉效果 (需要重启)</string> + + <!-- Display : Rotation --> + <string name="display_rotation_title">旋转</string> + <string name="display_rotation_disabled">已禁用</string> + <string name="display_rotation_unit">度</string> + <string name="display_rotation_category_title">旋转模式</string> + <string name="display_rotation_0_title">0 度</string> + <string name="display_rotation_90_title">90 度</string> + <string name="display_rotation_180_title">180 度</string> + <string name="display_rotation_270_title">270 度</string> + + <!-- Lock screen shortcuts --> + <string name="picker_activities">活动</string> + <string name="select_custom_app_title">选择自定义程序</string> + <string name="select_custom_activity_title">选择自定义活动</string> + <string name="icon_picker_choose_icon_title">选择图标</string> + <string name="icon_picker_alarm">闹钟</string> + <string name="icon_picker_browser">浏览器</string> + <string name="icon_picker_calendar">日历</string> + <string name="icon_picker_camera">相机</string> + <string name="icon_picker_chrome">Chrome</string> + <string name="icon_picker_email">Email</string> + <string name="icon_picker_email2">Email Holo</string> + <string name="icon_picker_facebook">Facebook</string> + <string name="icon_picker_gallery">图库</string> + <string name="icon_picker_google_small">Google (小)</string> + <string name="icon_picker_googleplus">Google Plus</string> + <string name="icon_picker_googletalk">Google Talk</string> + <string name="icon_picker_maps">地图</string> + <string name="icon_picker_movie">影片</string> + <string name="icon_picker_music">音乐</string> + <string name="icon_picker_nav_normal">导航</string> + <string name="icon_picker_phone">电话</string> + <string name="icon_picker_podcast">播客</string> + <string name="icon_picker_rss">RSS</string> + <string name="icon_picker_search">搜索</string> + <string name="icon_picker_sms">短信</string> + <string name="icon_picker_twitter">Twitter</string> + + <!-- String for IconPicker --> + <string name="icon_picker_title">选择图标来源</string> + <string name="icon_picker_system_icons_title">系统图标</string> + <string name="icon_picker_gallery_title">图库</string> + <string name="icon_picker_pack_title">图标包</string> + + <string name="increasing_ring_title">渐强铃声</string> + <!-- Sound settings screen, the caption of the checkbox for making incoming calls increase in volume --> + <string name="checkbox_increasing_ring">启用</string> + <!-- Sound settings screen, the title of the volume bar to adjust the minimum increasing ring volume --> + <string name="increasing_ring_min_volume_title">铃声起始音量</string> + <string name="increasing_ring_volume_notice">注意: \n如起始音量大于系统铃声音量, 系统铃声音量将会被使用.</string> + <string name="increasing_ring_interval_title">增强间隔</string> + <string name="increasing_ring_interval_eachring">每次铃声播放</string> + <string name="increasing_ring_interval_half_second">每 0.5 秒</string> + <string name="increasing_ring_interval_1second">每 1 秒</string> + <string name="increasing_ring_interval_2seconds">每 2 秒</string> + <string name="increasing_ring_interval_3seconds">每 3 秒</string> + <string name="increasing_ring_interval_5seconds">每 5 秒</string> + <string name="increasing_ring_interval_10seconds">每 10 秒</string> + + <string name="profile_write_nfc_tag">写到 NFC 标签</string> + <string name="profile_write_touch_tag">触摸标签以便写入</string> + <string name="profile_write_success">标签写入成功!</string> + <string name="profile_write_failed">标签写入失败!</string> + <string name="profile_selected">选择的情景: %1$s</string> + <string name="profile_nfc_text">将一个情景写入 NFC 标签能够允许您通过触摸标签的行为更改情景. 再次触摸将会返回到您之前选择的情景.</string> + <string name="profile_unknown_nfc_tag">未知情景</string> + <string name="profile_add_nfc_text">此 NFC 标签是与一个未知的情景相连的. 把此 NFC 标签连接到一个现有的情景将会允许您以后选择这个情景.</string> + <string name="profile_select">选择情景</string> + + <string name="link_volume_ringtones">链接铃声与通知的音量</string> + <string name="link_volume_mutes">静音模式将会影响通知</string> + + <!-- Display settings screen, notification light settings --> + <string name="notification_pulse_title">通知指示灯</string> + <string name="notification_light_general_title">常规</string> + <string name="notification_light_applist_title">应用</string> + <string name="notification_light_phonelist_title">电话</string> + <string name="notification_light_use_custom">使用自定义值</string> + <string name="notification_light_enabled">已启用</string> + <string name="notification_light_disabled">已禁用</string> + <string name="notification_light_default_value">默认</string> + <string name="notification_light_missed_call_title">未接来电</string> + <string name="notification_light_voicemail_title">语音信箱</string> + + <!-- Notification light dialogs --> + <string name="edit_light_settings">编辑指示灯设置</string> + <string name="pulse_speed_title">呼吸长度与速度</string> + <string name="default_time">正常</string> + <string name="custom_time">自定义</string> + <string name="dialog_test">测试</string> + <string name="dialog_delete_title">删除</string> + <string name="dialog_delete_message">移除选中的项目?</string> + <string name="dialog_test_message">请将屏幕关闭以便测试新的指示灯设置.关闭此对话框将停止测试.</string> + <string name="dialog_test_button">关闭</string> + + <!-- Values for the notification light pulse spinners --> + <string name="pulse_length_always_on">始终开启</string> + <string name="pulse_length_very_short">非常短促</string> + <string name="pulse_length_short">短促</string> + <string name="pulse_length_normal">正常</string> + <string name="pulse_length_long">长久</string> + <string name="pulse_length_very_long">非常长久</string> + <string name="pulse_speed_very_fast">非常快</string> + <string name="pulse_speed_fast">较快</string> + <string name="pulse_speed_normal">正常</string> + <string name="pulse_speed_slow">较慢</string> + <string name="pulse_speed_very_slow">非常慢</string> + + <!-- Battery light settings --> + <string name="battery_light_title">电量指示灯</string> + <string name="battery_low_pulse_title">电量低时开启呼吸灯</string> + <string name="battery_light_list_title">颜色</string> + <string name="battery_light_low_color_title">电量低</string> + <string name="battery_light_medium_color_title">正在充电</string> + <string name="battery_light_full_color_title">已充满</string> + + <!-- Sound settings screen --> + <string name="volume_overlay_title">声控面板风格</string> + <string name="volbtn_music_controls_title">音量键音乐控制</string> + <string name="volbtn_music_controls_summary">当屏幕关闭时, 长按音量键即可改变音乐曲目</string> + <string name="headset_connect_player_title">插入耳机时启动音乐播放器</string> + <string name="volume_ring_only_description">铃声</string> + <string name="ring_mode_title">响铃模式</string> + <string name="ring_mode_normal">正常</string> + <string name="ring_mode_vibrate">振动</string> + <string name="ring_mode_mute">静音</string> + + <!-- Hardware keys --> + <string name="hardware_keys_title">物理按键</string> + <string name="hardware_keys_bindings_title">按键行为</string> + <string name="hardware_keys_enable_custom_title">允许自定义的行为</string> + <string name="hardware_keys_home_long_press_title">Home 键 (长按)</string> + <string name="hardware_keys_menu_press_title">菜单键</string> + <string name="hardware_keys_menu_long_press_title">菜单键 (长按)</string> + <string name="hardware_keys_assist_press_title">搜索键</string> + <string name="hardware_keys_assist_long_press_title">搜索键 (长按)</string> + <string name="hardware_keys_app_switch_press_title">切换程序键</string> + <string name="hardware_keys_app_switch_long_press_title">切换程序键 (长按)</string> + <string name="hardware_keys_show_overflow_title">显示更多选项菜单键</string> + <string name="hardware_keys_show_overflow_summary">在程序内加入更多选项菜单键</string> + <string name="hardware_keys_show_overflow_toast_enable">更多选项菜单键在程序重启前可能不会显示</string> + <string name="hardware_keys_show_overflow_toast_disable">更多选项菜单键在程序重启前可能不会被隐藏</string> + <string name="hardware_keys_action_nothing">无作用</string> + <string name="hardware_keys_action_menu">开启/关闭菜单</string> + <string name="hardware_keys_action_app_switch">最近使用程序切换器</string> + <string name="hardware_keys_action_search">搜索助手</string> + <string name="hardware_keys_action_voice_search">语音搜索</string> + <string name="hardware_keys_action_in_app_search">程序内搜索</string> + + <!-- Navigation Bar #CM --> + <string name="navigation_bar_title">导航栏</string> + <string name="navigation_bar_help_text">1 - 点击锁定图标以开始编辑\n\n2 - 点击任何按键以指定或改变它的功能\n\n3 - 长按任何按键以重新排列按键顺序\n\n4 - 再次点击锁定图标将会保存您的改变\n\n5 - 如果您想还原为系统默认值, 请点击重置键\n\n</string> + <string name="navigation_bar_tips">• 一个按键只能拥有一个行为\n\n• Home 键的行为是不能被改变的\n\n• 侧边按键的位置是不能改变的</string> + <string name="navigation_bar_tips_title">小提示</string> + <string name="navigation_bar_reset_message">您确定要删除目前的设置并还原为系统默认值?</string> + <string name="navigation_bar_save_message">导航栏设置已保存</string> + <string name="navigation_bar_reset_toast">导航栏设置已还原为系统默认值</string> + <string name="navigation_bar_menu_editable">可被编辑</string> + <string name="navigation_bar_menu_locked">已锁定</string> + + + <!-- Power Widget --> + <string name="power_widget_title">电控小部件</string> + <string name="title_expanded_widget">电控小部件</string> + <string name="power_widget_behavior">小部件行为</string> + <string name="title_expanded_hide_onchange">做出操作后关闭通知栏</string> + <string name="title_expanded_hide_indicator">隐藏指示器</string> + <string name="title_expanded_hide_scrollbar">隐藏滚动条</string> + <string name="title_widget_picker">小部件按钮</string> + <string name="summary_widget_picker">查看或改变目前显示的按钮</string> + <string name="title_widget_order">小部件按钮顺序</string> + <string name="summary_widget_order">查看或改变目前显示按钮的顺序</string> + <string name="title_buttons">按钮</string> + <string name="title_toggle_wifi">切换 Wi-Fi</string> + <string name="title_toggle_bluetooth">切换蓝牙</string> + <string name="title_toggle_gps">切换 GPS</string> + <string name="title_toggle_sound">切换声音模式</string> + <string name="title_toggle_brightness">切换亮度</string> + <string name="title_toggle_sync">切换同步</string> + <string name="title_toggle_wifiap">切换 Wi-Fi 热点</string> + <string name="title_toggle_screentimeout">切换屏幕超时</string> + <string name="title_toggle_mobiledata">切换移动数据</string> + <string name="title_toggle_lockscreen">切换锁屏</string> + <string name="title_toggle_networkmode">切换网络模式</string> + <string name="title_toggle_autorotate">切换屏幕旋转</string> + <string name="title_toggle_airplane">切换飞行模式</string> + <string name="title_toggle_flashlight">切换 LED 手电筒</string> + <string name="title_toggle_sleep">睡眠模式</string> + <string name="title_toggle_media_play_pause">媒体: 切换播放/暂停</string> + <string name="title_toggle_media_previous">媒体: 跳到前一首</string> + <string name="title_toggle_media_next">媒体: 跳到下一首</string> + <string name="title_toggle_lte">切换 LTE</string> + <string name="title_toggle_wimax">切换 WiMax</string> + <string name="title_button_modes">按钮模式</string> + <string name="pref_brightness_mode_title">亮度切换模式</string> + <string name="pref_brightness_mode_summary">查看或更改亮度按钮的切换模式</string> + <string name="cm_brightness_mode_auto">自动</string> + <string name="cm_brightness_mode_dim">较暗</string> + <string name="pref_network_mode_title">网络切换模式</string> + <string name="pref_screentimeout_mode_title">屏幕超时切换模式</string> + <string name="pref_ring_mode_title">声音切换模式</string> + <string name="pref_ring_mode_summary">选择声音按钮的切换方式</string> + <string name="cm_sound_mode_silent">静音</string> + <string name="cm_sound_mode_vibrate">震动</string> + <string name="cm_sound_mode_sound">铃声</string> + <string name="cm_sound_mode_soundVibrate">铃声 & 震动</string> + <string name="pref_flash_mode_title">手电筒切换模式</string> + <string name="expanded_haptic_feedback_title">触动反馈</string> + + <!-- Kill app long-press back --> + <string name="kill_app_longpress_back">使用返回键强制关闭程序</string> + <string name="kill_app_longpress_back_summary">长按返回键将终止前台应用程序</string> + + <!-- Change Log strings --> + <string name="changelog_title">查看更改记录</string> + <string name="changelog_error">无法读取更改记录</string> + <string name="changelog_unknown">未知</string> + <string name="changelog_version">版本</string> + + <!-- Power menu enable disable --> + <string name="power_menu_title">电源菜单选项</string> + <string name="power_menu_reboot_title">重启菜单</string> + <string name="power_menu_screenshot_title">屏幕截图</string> + <string name="power_menu_expanded_desktop">扩展桌面</string> + <string name="power_menu_profiles_title">情景模式</string> + <string name="power_menu_airplane_title">飞行模式</string> + <string name="power_menu_user_title">用户切换器</string> + <string name="power_menu_sound_title">声控面板</string> + + <!-- CM Updater --> + <string name="cmupdate_settings_title">CyanogenMod 更新</string> + <string name="cmupdate_settings_summary">检查, 查看, 或安装可用的更新</string> + + <!-- Advanced, Device specific (DeviceParts) settings --> + <string name="advanced_settings_title">高级</string> + + <!-- Whether to display IME switcher notifcation --> + <string name="ime_switcher_notify">输入法通知</string> + <string name="ime_switcher_notify_summary">显示选择输入法的通知</string> + + <!-- Status bar --> + <string name="status_bar_title">状态栏</string> + <string name="status_bar_clock_title">时钟</string> + <string name="status_bar_general_title">常规</string> + <string name="status_bar_show_clock_title">显示时钟</string> + <string name="status_bar_am_pm_title">上午/下午样式</string> + <string name="status_bar_am_pm_info">24 小时时钟已启用</string> + <string name="status_bar_battery_title">电池状态样式</string> + <string name="status_bar_toggle_brightness">亮度控制</string> + <string name="status_bar_toggle_brightness_summary">在状态栏上左右滑动以调整亮度</string> + <string name="status_bar_toggle_info">亮度自动调整已启用</string> + <string name="status_bar_signal_text_title">信号状态样式</string> + <string name="status_bar_style_icon">图标</string> + <string name="status_bar_style_hidden">隐藏</string> + <string name="status_bar_signal_text_show_text">文字</string> + <string name="status_bar_battery_status_percentage">百分比</string> + <string name="status_bar_battery_status_circle">环形</string> + <string name="status_bar_battery_status_circle_percentage">环形与百分比</string> + + <!-- Status bar notification count --> + <string name="status_bar_notif_count_title">显示通知数量</string> + <string name="status_bar_notif_count_summary">显示有多少条正在等候中的通知</string> + + <!-- Wakeup options --> + <string name="display_category_wakeup_options_title">唤醒选项</string> + <string name="pref_volume_wake_title">音量键唤醒</string> + <string name="pref_volume_wake_summary">使用音量键唤醒设备</string> + + <!-- Setting checkbox summary for displaying USB debugging notification --> + <string name="adb_notify">USB 调试通知</string> + <string name="adb_notify_summary">USB 调试模式连接时将显示一个通知</string> + + <!-- Launches Dev Tools --> + <string name="development_tools_title">启动开发工具</string> + + <!-- USB Mass Storage --> + <string name="usb_mass_storage_title">USB 大容量存储</string> + <string name="usb_mass_storage_summary">使用 USB 大容量存储模式连接到计算机</string> + + <!-- Android debugging over WiFi --> + <string name="adb_over_network">网络 ADB 调试</string> + <string name="adb_over_network_summary">通过网络接口 (Wi-Fi, USB 网络) 启用 TCP/IP 调试.该设置重启后失效</string> + <!-- Warning for Adb over Network --> + <string name="adb_over_network_warning">警告: 网络 ADB 调试启用后, 您的设备将会在已连接的网络 (包括 GSM 数据网络) 上被视为是开放的, 并有可能被侵入!\n\n请仅在您所信任的网络中使用此功能.\n\n您确实要启用该功能吗?</string> + + <string name="lockscreen_buttons_title">按键行为</string> + <string name="lockscreen_buttons_summary">查看或改变在锁屏界面上按键的行为</string> + <string name="lockscreen_long_press_back_title">长按后退键</string> + <string name="lockscreen_long_press_home_title">长按 Home 键</string> + <string name="lockscreen_long_press_menu_title">长按菜单键</string> + <string name="lockscreen_buttons_no_action">无作用</string> + <string name="lockscreen_buttons_flashlight">手电筒</string> + <string name="lockscreen_buttons_next">下一首乐曲</string> + <string name="lockscreen_buttons_previous">上一首乐曲</string> + <string name="lockscreen_buttons_playpause">播放/暂停音乐</string> + <string name="lockscreen_buttons_toggle_sound">切换声音模式</string> + + <!-- Quick settings panel --> + <string name="quick_settings_panel_title">快速设置面板</string> + <string name="quick_settings_title">快速设置</string> + <string name="title_static_tiles">静态按钮</string> + <string name="tile_picker_title">按钮与布局</string> + <string name="tile_picker_summary">查看, 选择, 并改变显示按钮的布局</string> + <string name="tile_choose_title">选择一个按钮</string> + + <string name="title_tile_airplane">飞行模式</string> + <string name="title_tile_battery">电量显示</string> + <string name="title_tile_bluetooth">蓝牙</string> + <string name="title_tile_brightness">亮度</string> + <string name="title_tile_sleep">进入睡眠</string> + <string name="title_tile_gps">GPS</string> + <string name="title_tile_torch">手电筒</string> + <string name="title_tile_lockscreen">锁屏</string> + <string name="title_tile_lte">LTE</string> + <string name="title_tile_mobiledata">移动数据</string> + <string name="title_tile_profile">情景模式</string> + <string name="title_tile_autorotate">屏幕旋转</string> + <string name="title_tile_settings">设置</string> + <string name="title_tile_sound">声音</string> + <string name="title_tile_sync">同步</string> + <string name="title_tile_wifiap">Wi-Fi 热点</string> + <string name="title_tile_wifi">Wi-Fi</string> + <string name="title_tile_wimax">WiMAX</string> + <string name="title_tile_user">用户切换器</string> + <string name="title_tile_networkmode">网络模式</string> + <string name="title_tile_nfc">NFC</string> + <string name="title_tile_screen_timeout">屏幕超时</string> + <string name="title_tile_usb_tether">USB 网络共享</string> + + <string name="title_dynamic_tiles">动态按钮</string> + <string name="dynamic_tiles_note_title">注意</string> + <string name="dynamic_tiles_note_summary">动态按钮不是随时都会显示的, 它们仅会在有相关的系统事件时显示</string> + <string name="title_dynamic_alarm">闹钟</string> + <string name="title_dynamic_bugreport">Bug 报告</string> + <string name="title_dynamic_ime">输入法更改器</string> + <string name="title_dynamic_usbtether">USB 网络共享</string> + <string name="title_dynamic_wifi">Wi-Fi 显示</string> + + <string name="title_general">常规</string> + <string name="title_quick_pulldown">快速下拉</string> + <string name="summary_quick_pulldown">从状态栏的%1$s边缘拉下时直接开启快速设置面板</string> + <string name="quick_pulldown_off">关闭</string> + <string name="quick_pulldown_summary_left">左</string> + <string name="quick_pulldown_summary_right">右</string> + <string name="quick_pulldown_left">左</string> + <string name="quick_pulldown_right">右</string> + <string name="title_collapse_panel">自动关闭面板</string> + <string name="summary_collapse_panel">做出操作后关闭快速设置面板</string> + + <!-- Reset tiles --> + <string name="tiles_reset_title">重置</string> + <string name="tiles_reset_message">您确定将显示的按钮与布局还原为默认值?</string> + + <!--- Volume key cursor control --> + <string name="volume_key_cursor_control_title">音量键光标控制</string> + <string name="volume_key_cursor_control_off">禁用</string> + <string name="volume_key_cursor_control_on">音量上/下将会使光标左/右移动</string> + <string name="volume_key_cursor_control_on_reverse">音量上/下将会使光标右/左移动</string> + + <!-- Wireless display --> + <string name="pref_wifi_disable_hdcp_title">跳过 HDCP 谈判</string> + <string name="pref_wifi_disable_hdcp_summary">如果您可以连接但是没有任何输出, 请尝试此选项</string> + + <!--- SMS security limit --> + <string name="app_security_title">应用安全</string> + <string name="sms_security_check_limit_title">短信限制</string> + <string name="sms_security_check_limit_summary">当某个应用频繁性的发送短信时显示一个警告窗口. 目前限制: 15 分钟内发送 %d 条信息</string> + <string name="sms_security_check_limit_default">30 (默认)</string> + + <!--- Lock clock --> + <string name="lock_clock_title">时钟小部件</string> + <string name="lock_clock_summary">查看或改变 \'cLock\' 锁屏与主屏幕小部件的显示方式</string> + + <!-- Stylus Icon --> + <string name="stylus_icon_enabled_title">使用触控笔时显示指针</string> + <string name="stylus_icon_enabled_summary">使用触控笔悬浮或绘图时将会显示指针</string> + + <string name="lockscreen_maximize_widgets_title">最大化锁屏小部件</string> + <string name="lockscreen_maximize_widgets_summary">开启屏幕时将最小化解锁界面并默认显示最大化的锁屏小部件</string> + + <!-- Custom lock screen background --> + <string name="lockscreen_custom_background_title">背景</string> + <string name="lockscreen_custom_background_dialog_title">选择颜色</string> + <string name="lockscreen_background_result_successful">背景已成功改变</string> + <string name="lockscreen_background_result_not_successful">背景未被改变</string> + <string name="lockscreen_background_color_fill">颜色填充</string> + <string name="lockscreen_background_custom_image">自定义图片</string> + <string name="lockscreen_background_default_wallpaper">默认墙纸</string> + <!-- **** CYANOGENMOD ADDITIONS END **** --> + </resources> diff --git a/res/values/arrays.xml b/res/values/arrays.xml index 14e1fc8..c70cf13 100644 --- a/res/values/arrays.xml +++ b/res/values/arrays.xml @@ -1,23 +1,22 @@ <?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2007 The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ +<!-- Copyright (C) 2007 The Android Open Source Project + 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. --> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <!-- Choices for timezone picker first level. These values will be used as search terms for TimeZone displayName strings. --> <skip /> @@ -76,7 +75,7 @@ <!-- Do not translate. --> <item>1800000</item> </string-array> - + <!-- Display settings. The delay in inactivity before the dream is shown. These are shown in a list dialog. --> <string-array name="dream_timeout_entries"> <item>Never</item> @@ -108,8 +107,8 @@ <!-- Do not translate. --> <item>1800000</item> </string-array> - - <!-- Security settings. The delay after screen is turned off until device locks. + + <!-- Security settings. The delay after screen is turned off until device locks. These are shown in a list dialog. --> <string-array name="lock_after_timeout_entries"> <item>Immediately</item> @@ -144,7 +143,7 @@ <!-- Do not translate. --> <item>1800000</item> </string-array> - + <string-array name="entries_font_size"> <item msgid="6490061470416867723">Small</item> <item msgid="3579015730662088893">Normal</item> @@ -158,7 +157,7 @@ <item>1.15</item> <item>1.30</item> </string-array> - + <!-- TTS settings --> <!-- Default speech rate choices --> @@ -186,6 +185,7 @@ <item>High</item> <item>Very high</item> </string-array> + <!-- Do not translate. --> <string-array name="tts_pitch_values"> <item>50</item> @@ -211,7 +211,6 @@ <item>spa</item> </string-array> - <!-- Wi-Fi settings --> <!-- Match this with the order of NetworkInfo.DetailedState. --> <skip /> @@ -413,6 +412,34 @@ <item>2</item> </string-array> + <!-- Wi-Fi settings. Presented as a list dialog to the user to choose the Wi-Fi region code. --> + <string-array name="wifi_countrycode_entries"> + <item>United States</item> + <item>Canada, Taiwan</item> + <item>Germany</item> + <item>Europe</item> + <item>Japan, Russia</item> + <item>Australia</item> + <item>China</item> + <item>Korea</item> + <item>Turkey</item> + <item>Singapore</item> + <item>Brazil</item> + </string-array> + + <string-array name="wifi_countrycode_values" translatable="false"> + <item>US</item> + <item>CA</item> + <item>DE</item> + <item>GB</item> + <item>JP</item> + <item>AU</item> + <item>CN</item> + <item>KR</item> + <item>TR</item> + <item>SG</item> + <item>BR</item> + </string-array> <!-- Display options for UsageStats class --> <string-array name="usage_stats_display_order_types"> @@ -552,7 +579,7 @@ <string-array name="long_press_timeout_selector_titles"> <!-- A title for the option for short long-press timeout [CHAR LIMIT=25] --> <item>Short</item> - <!-- A title for the option for medium long-press timeout [CHAR LIMIT=25] --> + <!-- A title for the option for medium long-press timeout [CHAR LIMIT=25] --> <item>Medium</item> <!-- A title for the option for long long-press timeout [CHAR LIMIT=25] --> <item>Long</item> @@ -772,4 +799,488 @@ <!-- Always allow app to send to premium SMS short code. --> <item>Always allow</item> </string-array> + + <!-- **** CYANOGENMOD ADDITIONS START **** --> + + <!-- Volume Overlay options. --> + <string-array name="volume_overlay_entries"> + <item>Single</item> + <item>Expandable</item> + <item>Expanded</item> + <item>None</item> + </string-array> + + <!-- Values for Volume Overlay. Do not translate. --> + <string-array name="volume_overlay_values" translatable="false"> + <item>0</item> + <item>1</item> + <item>2</item> + <item>3</item> + </string-array> + + <!-- Ring mode options. --> + <string-array name="ring_mode_entries" translatable="false"> + <item>@string/ring_mode_normal</item> + <item>@string/ring_mode_vibrate</item> + <item>@string/ring_mode_mute</item> + </string-array> + + <!-- Values for Ring mode. Do not translate. --> + <string-array name="ring_mode_values" translatable="false"> + <item>normal</item> + <item>vibrate</item> + <item>mute</item> + </string-array> + + <!-- Arrays for root access capability --> + <string-array name="root_access_entries" translatable="false"> + <item>@string/root_access_none</item> + <item>@string/root_access_apps</item> + <item>@string/root_access_adb</item> + <item>@string/root_access_all</item> + </string-array> + + <string-array name="root_access_values" translatable="false"> + <item>0</item> + <item>1</item> + <item>2</item> + <item>3</item> + </string-array> + + <!-- Performance settings --> + <string-array name="pref_zram_size_entries"> + <item>Disabled</item> + <item>10%</item> + <item>18% (default)</item> + <item>26%</item> + </string-array> + + <string-array name="pref_zram_size_values" translatable="false"> + <item>0</item> + <item>10</item> + <item>18</item> + <item>26</item> + </string-array> + + <string-array name="dithering_entries" translatable="false"> + <item>@string/dithering_no_dither</item> + <item>@string/dithering_color_banding</item> + <item>@string/dithering_blur_effect</item> + </string-array> + + <string-array name="dithering_values" translatable="false"> + <item>0</item> + <item>1</item> + <item>2</item> + </string-array> + + <string-array name="lockscreen_delay_entries" translatable="false"> + <item>@string/slide_lock_delay_none</item> + <item>@string/slide_lock_delay_1s</item> + <item>@string/slide_lock_delay_5s</item> + <item>@string/slide_lock_delay_10s</item> + <item>@string/slide_lock_delay_15s</item> + <item>@string/slide_lock_delay_30s</item> + <item>@string/slide_lock_delay_1m</item> + <item>@string/slide_lock_delay_5m</item> + <item>@string/slide_lock_delay_10m</item> + <item>@string/slide_lock_delay_30m</item> + </string-array> + + <string-array name="lockscreen_delay_values" translatable="false"> + <item>0</item> + <item>1000</item> + <item>5000</item> + <item>10000</item> + <item>15000</item> + <item>30000</item> + <item>60000</item> + <item>300000</item> + <item>600000</item> + <item>1800000</item> + </string-array> + + <string-array name="lockscreen_icon_picker_labels" translatable="false"> + <item>@string/icon_picker_alarm</item> + <item>@string/icon_picker_browser</item> + <item>@string/icon_picker_calendar</item> + <item>@string/icon_picker_camera</item> + <item>@string/icon_picker_chrome</item> + <item>@string/icon_picker_email</item> + <item>@string/icon_picker_email2</item> + <item>@string/icon_picker_facebook</item> + <item>@string/icon_picker_gallery</item> + <item>@string/icon_picker_google_small</item> + <item>@string/icon_picker_googleplus</item> + <item>@string/icon_picker_googletalk</item> + <item>@string/icon_picker_maps</item> + <item>@string/icon_picker_sms</item> + <item>@string/icon_picker_movie</item> + <item>@string/icon_picker_music</item> + <item>@string/icon_picker_nav_normal</item> + <item>@string/icon_picker_phone</item> + <item>@string/icon_picker_podcast</item> + <item>@string/icon_picker_rss</item> + <item>@string/icon_picker_search</item> + <item>@string/icon_picker_twitter</item> + </string-array> + + <string-array name="lockscreen_icon_picker_icons" translatable="false"> + <item>@*android:drawable/ic_lockscreen_alarm_normal</item> + <item>@*android:drawable/ic_lockscreen_browser_normal</item> + <item>@*android:drawable/ic_lockscreen_calendar_normal</item> + <item>@*android:drawable/ic_lockscreen_camera_normal</item> + <item>@*android:drawable/ic_lockscreen_chrome_normal</item> + <item>@*android:drawable/ic_lockscreen_email_normal</item> + <item>@*android:drawable/ic_lockscreen_email2_normal</item> + <item>@*android:drawable/ic_lockscreen_facebook_normal</item> + <item>@*android:drawable/ic_lockscreen_gallery_normal</item> + <item>@*android:drawable/ic_lockscreen_google_small_normal</item> + <item>@*android:drawable/ic_lockscreen_gplus_normal</item> + <item>@*android:drawable/ic_lockscreen_gtalk_normal</item> + <item>@*android:drawable/ic_lockscreen_maps_normal</item> + <item>@*android:drawable/ic_lockscreen_sms_normal</item> + <item>@*android:drawable/ic_lockscreen_movie_normal</item> + <item>@*android:drawable/ic_lockscreen_music_normal</item> + <item>@*android:drawable/ic_lockscreen_nav_normal</item> + <item>@*android:drawable/ic_lockscreen_phone_normal</item> + <item>@*android:drawable/ic_lockscreen_podcast_normal</item> + <item>@*android:drawable/ic_lockscreen_rss_normal</item> + <item>@*android:drawable/ic_lockscreen_google_normal</item> + <item>@*android:drawable/ic_lockscreen_twitter_normal</item> + </string-array> + + <!-- Profile mode options. --> + <string-array name="profile_entries"> + <item>On</item> + <item>Off</item> + <item>No override</item> + </string-array> + + <!-- Values for vibrate_entries matching constants in SoundSettings. Do not translate. --> + <string-array name="profile_values" translatable="false"> + <item>OVERRIDE</item> + <item>SUPPRESS</item> + <item>DEFAULT</item> + </string-array> + + <!-- Profile mode options. --> + <string-array name="profile_connection_entries"> + <item>Disable</item> + <item>Enable</item> + </string-array> + + <!-- Values for profile connections. Do not translate. --> + <string-array name="profile_connection_values" translatable="false"> + <item>0</item> + <item>1</item> + </string-array> + + <!-- Profile lock mode options. Do not translate. --> + <string-array name="profile_lockmode_entries" translatable="false"> + <item>@string/profile_lockmode_default</item> + <item>@string/profile_lockmode_insecure</item> + <item>@string/profile_lockmode_disabled</item> + </string-array> + + <!-- Profile lock mode summaries. Do not translate. --> + <string-array name="profile_lockmode_summaries" translatable="false"> + <item>@string/profile_lockmode_default_summary</item> + <item>@string/profile_lockmode_insecure_summary</item> + <item>@string/profile_lockmode_disabled_summary</item> + </string-array> + + <!-- Values for profile lock mode. Do not translate. --> + <string-array name="profile_lockmode_values" translatable="false"> + <item>0</item> + <item>1</item> + <item>2</item> + </string-array> + + <!-- Values for the notification light pulse spinners --> + <string-array name="notification_pulse_length_entries" translatable="false"> + <item>@string/pulse_length_always_on</item> + <item>@string/pulse_length_very_short</item> + <item>@string/pulse_length_short</item> + <item>@string/pulse_length_normal</item> + <item>@string/pulse_length_long</item> + <item>@string/pulse_length_very_long</item> + </string-array> + + <string-array name="notification_pulse_length_values" translatable="false"> + <item>1</item> + <item>250</item> + <item>500</item> + <item>1000</item> + <item>2500</item> + <item>5000</item> + </string-array> + + <string-array name="notification_pulse_speed_entries" translatable="false"> + <item>@string/pulse_speed_very_fast</item> + <item>@string/pulse_speed_fast</item> + <item>@string/pulse_speed_normal</item> + <item>@string/pulse_speed_slow</item> + <item>@string/pulse_speed_very_slow</item> + </string-array> + + <string-array name="notification_pulse_speed_values" translatable="false"> + <item>250</item> + <item>500</item> + <item>1000</item> + <item>2500</item> + <item>5000</item> + </string-array> + + <!-- Arrays required by Notification Widgets. --> + <string-array name="entries_brightness_widget" formatted="false" translatable="false"> + <item>@string/cm_brightness_mode_auto</item> + <item>@string/cm_brightness_mode_dim</item> + <item>25%</item> + <item>50%</item> + <item>75%</item> + <item>100%</item> + </string-array> + + <string-array name="values_brightness_widget" translatable="false"> + <item>0</item> + <item>1</item> + <item>2</item> + <item>3</item> + <item>4</item> + <item>5</item> + </string-array> + + <string-array name="entries_network_widget"> + <item>2G | 2G+3G</item> + <item>2G | 3G</item> + <item>2G | 3G | 2G+3G</item> + </string-array> + + <string-array name="values_network_widget" translatable="false"> + <item>0</item> + <item>1</item> + <item>2</item> + </string-array> + + <string-array name="increasing_ring_interval_entries" translatable="false"> + <item>@string/increasing_ring_interval_eachring</item> + <item>@string/increasing_ring_interval_half_second</item> + <item>@string/increasing_ring_interval_1second</item> + <item>@string/increasing_ring_interval_2seconds</item> + <item>@string/increasing_ring_interval_3seconds</item> + <item>@string/increasing_ring_interval_5seconds</item> + <item>@string/increasing_ring_interval_10seconds</item> + </string-array> + + <integer-array name="increasing_ring_interval_values" translatable="false"> + <item>0</item> + <item>500</item> + <item>1000</item> + <item>2000</item> + <item>3000</item> + <item>5000</item> + <item>10000</item> + </integer-array> + + <string-array name="entries_screentimeout_widget"> + <item>15s | 1m | 5m</item> + <item>30s | 2m | 5m</item> + </string-array> + + <string-array name="values_screentimeout_widget" translatable="false"> + <item>0</item> + <item>1</item> + </string-array> + + <string-array name="entries_ring_widget" translatable="false"> + <item>@string/cm_sound_mode_silent</item> + <item>@string/cm_sound_mode_vibrate</item> + <item>@string/cm_sound_mode_sound</item> + <item>@string/cm_sound_mode_soundVibrate</item> + </string-array> + + <string-array name="values_ring_widget" translatable="false"> + <item>0</item> + <item>1</item> + <item>2</item> + <item>3</item> + </string-array> + + <string-array name="entries_flash_widget"> + <item>Normal</item> + <item>High</item> + </string-array> + + <string-array name="values_flash_widget" translatable="false"> + <item>0</item> + <item>1</item> + </string-array> + + <string-array name="haptic_feedback_entries"> + <item>Use global setting</item> + <item>On</item> + <item>Off</item> + </string-array> + + <string-array name="haptic_feedback_values" translatable="false"> + <item>2</item> + <item>1</item> + <item>0</item> + </string-array> + + <string-array name="entries_status_bar_am_pm"> + <item>Normal</item> + <item>Small</item> + <item>None</item> + </string-array> + + <string-array name="values_status_bar_am_pm" translatable="false"> + <item>0</item> + <item>1</item> + <item>2</item> + </string-array> + + <string-array name="entries_status_bar_battery" translatable="false"> + <item>@string/status_bar_style_icon</item> + <item>@string/status_bar_battery_status_percentage</item> + <item>@string/status_bar_battery_status_circle</item> + <item>@string/status_bar_battery_status_circle_percentage</item> + <item>@string/status_bar_style_hidden</item> + </string-array> + + <string-array name="values_status_bar_battery" translatable="false"> + <item>0</item> + <item>1</item> + <item>2</item> + <item>3</item> + <item>4</item> + </string-array> + + <string-array name="entries_status_bar_signal" translatable="false"> + <item>@string/status_bar_style_icon</item> + <item>@string/status_bar_signal_text_show_text</item> + <item>@string/status_bar_style_hidden</item> + </string-array> + + <string-array name="values_status_bar_signal" translatable="false"> + <item>0</item> + <item>1</item> + <item>2</item> + </string-array> + + <string-array name="hardware_keys_action_entries" translatable="false"> + <item>@string/hardware_keys_action_nothing</item> + <item>@string/hardware_keys_action_menu</item> + <item>@string/hardware_keys_action_app_switch</item> + <item>@string/hardware_keys_action_search</item> + <item>@string/hardware_keys_action_voice_search</item> + <item>@string/hardware_keys_action_in_app_search</item> + </string-array> + + <string-array name="hardware_keys_action_values" translatable="false"> + <item>0</item> + <item>1</item> + <item>2</item> + <item>3</item> + <item>4</item> + <item>5</item> + </string-array> + + <string-array name="lockscreen_long_key_press_entries" translatable="false"> + <item>@string/lockscreen_buttons_no_action</item> + <item>@string/lockscreen_buttons_next</item> + <item>@string/lockscreen_buttons_previous</item> + <item>@string/lockscreen_buttons_playpause</item> + <item>@string/lockscreen_buttons_toggle_sound</item> + </string-array> + + <string-array name="lockscreen_long_key_press_values" translatable="false"> + <item></item> + <item>NEXT</item> + <item>PREVIOUS</item> + <item>PLAYPAUSE</item> + <item>SOUND</item> + </string-array> + + <!-- Volume key cursor control --> + <string-array name="volume_key_cursor_control_entries" translatable="false"> + <item>@string/volume_key_cursor_control_off</item> + <item>@string/volume_key_cursor_control_on</item> + <item>@string/volume_key_cursor_control_on_reverse</item> + </string-array> + + <string-array name="volume_key_cursor_control_values" translatable="false"> + <item>0</item> + <item>1</item> + <item>2</item> + </string-array> + + <string-array name="lockscreen_battery_status_entries" translatable="false"> + <item>@string/lockscreen_battery_status_charging</item> + <item>@string/lockscreen_battery_status_alwayson</item> + </string-array> + + <string-array name="lockscreen_battery_status_values" translatable="false"> + <item>0</item> + <item>1</item> + </string-array> + + <!-- Expanded desktop --> + <string-array name="expanded_desktop_entries" translatable="false"> + <item>@string/expanded_desktop_disabled</item> + <item>@string/expanded_desktop_status_bar</item> + <item>@string/expanded_desktop_no_status_bar</item> + </string-array> + + <string-array name="expanded_desktop_values" translatable="false"> + <item>0</item> + <item>1</item> + <item>2</item> + </string-array> + + <!-- Quick pulldown --> + <string-array name="quick_pulldown_entries" translatable="false"> + <item>@string/quick_pulldown_off</item> + <item>@string/quick_pulldown_right</item> + <item>@string/quick_pulldown_left</item> + </string-array> + + <string-array name="quick_pulldown_values" translatable="false"> + <item>0</item> + <item>1</item> + <item>2</item> + </string-array> + + <!-- Sms security limit --> + <string-array name="sms_security_check_limit_entries" translatable="false"> + <item>@string/sms_security_check_limit_default</item> + <item>50</item> + <item>100</item> + <item>200</item> + <item>500</item> + </string-array> + + <string-array name="sms_security_check_limit_values" translatable="false"> + <item>30</item> + <item>50</item> + <item>100</item> + <item>200</item> + <item>500</item> + </string-array> + + <!-- Custom lock screen background--> + <string-array name="lockscreen_background_entries" translatable="false"> + <item>@string/lockscreen_background_color_fill</item> + <item>@string/lockscreen_background_custom_image</item> + <item>@string/lockscreen_background_default_wallpaper</item> + </string-array> + + <string-array name="lockscreen_background_values" translatable="false"> + <item>0</item> + <item>1</item> + <item>2</item> + </string-array> + + <!-- **** CYANOGENMOD ADDITIONS END **** --> </resources> diff --git a/res/values/config.xml b/res/values/config.xml index 557dadb..9bad6cb 100755 --- a/res/values/config.xml +++ b/res/values/config.xml @@ -29,4 +29,16 @@ very long strings too. --> <integer name="maximum_user_dictionary_word_length" translatable="false">48</integer> + <!-- **** CYANOGENMOD ADDITIONS START **** --> + <!-- LED Flashlight --> + <bool name="has_led_flash">false</bool> + + <!-- Volume Rocker Wake Support. Some devices do not support (PMU) this. + Setting to false will disable Volume Rocker Wake support --> + <bool name="config_show_volumeRockerWake">true</bool> + + <!-- Show Expanded Desktop preference --> + <bool name="config_show_expandedDesktop">false</bool> + + <!-- **** CYANOGENMOD ADDITIONS END **** --> </resources> diff --git a/res/values/dimens.xml b/res/values/dimens.xml index 91f293c..2f0f859 100755 --- a/res/values/dimens.xml +++ b/res/values/dimens.xml @@ -31,7 +31,7 @@ <dimen name="data_usage_chart_height">252dip</dimen> <dimen name="data_usage_chart_optimalWidth">440dip</dimen> - + <dimen name="shortcut_picker_left_padding">70dip</dimen> <dimen name="volume_seekbar_side_margin">8dip</dimen> <dimen name="crypt_clock_size">100sp</dimen> @@ -61,4 +61,16 @@ <dimen name="keyguard_appwidget_picker_margin_left">6dip</dimen> <dimen name="keyguard_appwidget_picker_margin_right">6dip</dimen> <integer name="keyguard_appwidget_picker_cols">1</integer> + + <!-- **** CYANOGENMOD ADDITIONS START **** --> + + <!-- Light settings dialog --> + <dimen name="dialog_light_settings_width">400dip</dimen> + + <!-- height of a normal list item in edit playlist mode --> + <dimen name="normal_height">64dip</dimen> + <!-- height of an expanded list item in edit playlist mode --> + <dimen name="expanded_height">128dip</dimen> + + <!-- **** CYANOGENMOD ADDITIONS END **** --> </resources> diff --git a/res/values/strings.xml b/res/values/strings.xml index b5c04b0..86535d8 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <!-- Copyright (C) 2007 The Android Open Source Project + 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. @@ -13,7 +14,9 @@ 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"> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <!-- Strings for Dialog yes button --> <string name="yes">"Yes"</string> @@ -34,13 +37,13 @@ <string name="device_info_default">Unknown</string> <!-- [CHAR LIMIT=NONE] Device Info screen. Countdown for user taps to enable development settings --> <plurals name="show_dev_countdown"> - <item quantity="one">You are now <xliff:g id="step_count">%1$d</xliff:g> step away from being a developer.</item> - <item quantity="other">You are now <xliff:g id="step_count">%1$d</xliff:g> steps away from being a developer.</item> + <item quantity="one">You are now <xliff:g id="step_count">%1$d</xliff:g> step away from being enabling development settings.</item> + <item quantity="other">You are now <xliff:g id="step_count">%1$d</xliff:g> steps away from being enabling development settings.</item> </plurals> <!-- [CHAR LIMIT=NONE] Device Info screen. Confirmation that developer settings are enabled --> - <string name="show_dev_on">You are now a developer!</string> + <string name="show_dev_on">You have enabled development settings!</string> <!-- [CHAR LIMIT=NONE] Device Info screen. Okay we get it, stop pressing, you already have it on --> - <string name="show_dev_already">No need, you are already a developer.</string> + <string name="show_dev_already">No need, you have already enabled development settings.</string> <!-- Category headings in left-pane header menu --> <skip /> <!-- Settings main menu category heading. Wireless and networks (Wi-Fi, Bluetooth, data usage...). [CHAR LIMIT=40] --> @@ -357,6 +360,15 @@ <!-- Bluetooth phone book permission Alert Activity checkbox text [CHAR LIMIT=none] --> <string name="bluetooth_pb_remember_choice">Don\'t ask again</string> + <!-- Activity label of BluetoothMasPermissionActivity, also used as Strings in the permission dialog [CHAR LIMIT=none] --> + <string name="bluetooth_mas_request">"Message Access request"</string> + + <!-- Bluetooth MAS permission Alert Activity text [CHAR LIMIT=none] --> + <string name="bluetooth_mas_acceptance_dialog_text">%1$s would like to access your messages. Give access to %2$s?</string> + + <!-- Bluetooth MAS permission Alert Activity checkbox text [CHAR LIMIT=none] --> + <string name="bluetooth_mas_remember_choice">Don\'t ask again</string> + <!-- Date & time settings screen title --> <string name="date_and_time">Date & time settings</string> <!-- The title of the activity to pick a time zone. --> @@ -869,6 +881,12 @@ <!-- Summary for "Configure lockscreen" when security password is enabled [CHAR LIMIT=45] --> <string name="unlock_set_unlock_mode_password">Password</string> + <!-- Sizes for pattern lockscreen --> + <string name="lock_pattern_size_3">3x3</string> + <string name="lock_pattern_size_4">4x4</string> + <string name="lock_pattern_size_5">5x5</string> + <string name="lock_pattern_size_6">6x6</string> + <!-- Title for option to turn of password/pin/pattern unlock. [CHAR LIMIT=22] --> <string name="unlock_disable_lock_title">Turn off screen lock</string> @@ -1472,6 +1490,16 @@ <!-- Wi-Fi settings screen, error message when the frequency band could not be set [CHAR LIMIT=50]. --> <string name="wifi_setting_frequency_band_error">There was a problem setting the frequency band.</string> <!-- Wi-Fi settings screen, advanced, title of the item to show the Wi-Fi device's MAC address. --> + <string name="wifi_setting_countrycode_title">Wi-Fi region code</string> + <!-- Wi-Fi settings screen, setting summary for setting the wifi frequency band [CHAR LIMIT=50]--> + <string name="wifi_setting_countrycode_summary">Specify the region code for Wi-Fi</string> + <!-- Wi-Fi settings screen, error message when the frequency band could not be set [CHAR LIMIT=50]. --> + <string name="wifi_setting_countrycode_error">There was a problem setting the region code.</string> + <!-- Wi-Fi settings screen, advanced, title of the item to set the Wi-Fi priority. --> + <string name="wifi_setting_priority_title">Wi-Fi priority</string> + <!-- Wi-Fi settings screen, setting summary for setting the Wi-Fi priority--> + <string name="wifi_setting_priority_summary">Specify the priority of the Wi-Fi networks</string> + <!-- Wi-Fi settings screen, advanced, title of the item to show the Wi-Fi device's MAC address. --> <string name="wifi_advanced_mac_address_title">MAC address</string> <!-- Title of the screen to adjust IP settings --> <!-- Wi-Fi settings screen, advanced, title of the item to show the Wi-Fi device's current IP address. --> @@ -1661,8 +1689,6 @@ <string name="vibrate_in_silent_title">Vibrate when silent</string> <!-- Sound settings screen, setting option name --> <string name="notification_sound_title">Default notification sound</string> - <!-- Sound settings screen, notification light repeat pulsing title --> - <string name="notification_pulse_title">Pulse notification light</string> <!-- Sound settings screen, the title of the volume bar to adjust the incoming call volume --> <string name="incoming_call_volume_title">Ringtone</string> <!-- Sound settings screen, the title of the volume bar to adjust the notification volume --> @@ -2975,10 +3001,10 @@ <string name="development_settings_title">Developer options</string> <!-- Development Settings summary. The summary of the item to take the user to Development settings. Development settings are settings meant for application developers. --> <string name="development_settings_summary">Set options for app development</string> - <!-- Setting checkbox title for Whether to enable USB debugging support on the phone. --> - <string name="enable_adb">USB debugging</string> - <!-- Setting checkbox summary for Whether to enable USB debugging support on the phone --> - <string name="enable_adb_summary">Debug mode when USB is connected</string> + <!-- Setting checkbox title for Whether to enable Android debugging support on the phone. --> + <string name="enable_adb">Android debugging</string> + <!-- Setting checkbox summary for Whether to enable Android debugging support on the phone --> + <string name="enable_adb_summary">Allow Android debug mode, the adb interface on USB (or on network)</string> <!-- [CHAR LIMIT=NONE] Setting checkbox title for Whether to include bug report item in power menu. --> <string name="bugreport_in_power">Power menu bug reports</string> <!-- [CHAR LIMIT=NONE] Setting checkbox summary for Whether to include bug report item in power --> @@ -3022,6 +3048,15 @@ <!-- Message of dialog confirming that user wants to protect external storage. [CHAR LIMIT=NONE] --> <string name="enforce_read_external_confirm_message" product="default">When SD card is protected, apps must request permission to read data from external storage.\n\nSome apps may not work until updated by their developers.</string> + <!-- Setting checkbox title for root access --> + <string name="root_access">Root access</string> + <string name="root_access_warning_title">Allow root access?</string> + <string name="root_access_warning_message">Allowing applications to request root access is very dangerous and could compromise the security of your system!</string> + <string name="root_access_none">Disabled</string> + <string name="root_access_apps">Apps only</string> + <string name="root_access_adb">ADB only</string> + <string name="root_access_all">Apps and ADB</string> + <!-- Title for the screen that lets the user choose a gadget to add to the home screen (or other screens that can host gadgets). Note to translators: we're still determining the final name for Gadgets/Widgets, so please translate both for now. --> @@ -3102,6 +3137,8 @@ screen magnification on app transitions</string> <!-- Title for the accessibility preference to power button to end a call. [CHAR LIMIT=35] --> <string name="accessibility_power_button_ends_call_prerefence_title">Power button ends call</string> + <!-- Title for the accessibility preference to home button to answers a call. [CHAR LIMIT=35] --> + <string name="accessibility_home_button_answers_call_prerefence_title">Home button answers call</string> <!-- Title for the accessibility preference to speak passwords. [CHAR LIMIT=35] --> <string name="accessibility_toggle_speak_password_preference_title">Speak passwords</string> <!-- Title for accessibility preference to choose long-press delay i.e. timeout before it is detected. [CHAR LIMIT=35] --> @@ -3624,6 +3661,10 @@ [CHAR LIMIT=40] --> <string name="sound_category_system_title">System</string> + <!-- Category title for headset specific Settings. + [CHAR LIMIT=40] --> + <string name="headset_category_title">Headset</string> + <!-- Wifi Setup For Setup Wizard with XL screen --> <!-- Title shown in Wifi Setup Wizard with XL screen --> <string name="wifi_setup_title">Wi-Fi setup</string> @@ -4341,35 +4382,35 @@ <!-- Help menu label [CHAR LIMIT=20] --> <string name="help_label">Help</string> <!-- Help URL, WiFi [DO NOT TRANSLATE] --> - <string name="help_url_wifi" translatable="false"></string> + <string name="help_url_wifi" translatable="false">http://support.google.com/mobile/?p=settings_wifi</string> <!-- Help URL, Bluetooth [DO NOT TRANSLATE] --> - <string name="help_url_bluetooth" translatable="false"></string> + <string name="help_url_bluetooth" translatable="false">http://support.google.com/mobile/?p=settings_bluetooth</string> <!-- Help URL, Data usage [DO NOT TRANSLATE] --> - <string name="help_url_data_usage" translatable="false"></string> + <string name="help_url_data_usage" translatable="false">http://support.google.com/mobile/?p=settings_data</string> <!-- Help URL, More [DO NOT TRANSLATE] --> - <string name="help_url_more_networks" translatable="false"></string> + <string name="help_url_more_networks" translatable="false">http://support.google.com/mobile/?p=settings_wireless</string> <!-- Help URL, Vpn [DO NOT TRANSLATE] --> - <string name="help_url_vpn" translatable="false"></string> + <string name="help_url_vpn" translatable="false">http://support.google.com/mobile/?p=settings_vpn</string> <!-- Help URL, Sound [DO NOT TRANSLATE] --> - <string name="help_url_sound" translatable="false"></string> + <string name="help_url_sound" translatable="false">http://support.google.com/mobile/?p=settings_sound</string> <!-- Help URL, Battery [DO NOT TRANSLATE] --> - <string name="help_url_battery" translatable="false"></string> + <string name="help_url_battery" translatable="false">http://support.google.com/mobile/?p=settings_battery</string> <!-- Help URL, Accounts [DO NOT TRANSLATE] --> - <string name="help_url_accounts" translatable="false"></string> + <string name="help_url_accounts" translatable="false">http://support.google.com/mobile/?p=settings_accounts</string> <!-- Help URL, Choose lockscreen [DO NOT TRANSLATE] --> - <string name="help_url_choose_lockscreen" translatable="false"></string> + <string name="help_url_choose_lockscreen" translatable="false">http://support.google.com/mobile/?p=settings_screenlock</string> <!-- Help URL, Backup & reset [DO NOT TRANSLATE] --> - <string name="help_url_backup_reset" translatable="false"></string> + <string name="help_url_backup_reset" translatable="false">http://support.google.com/mobile/?p=settings_backup</string> <!-- Help URL, Tethering [DO NOT TRANSLATE] --> - <string name="help_url_tether" translatable="false"></string> + <string name="help_url_tether" translatable="false">http://support.google.com/mobile/?p=settings_tether</string> <!-- Help URL, Dreams [DO NOT TRANSLATE] --> - <string name="help_url_dreams" translatable="false"></string> + <string name="help_url_dreams" translatable="false">http://support.google.com/mobile/?p=settings_dreams</string> <!-- Help URL, User settings [DO NOT TRANSLATE] --> - <string name="help_url_users" translatable="false"></string> + <string name="help_url_users" translatable="false">http://support.google.com/mobile/?p=settings_users</string> <!-- Help URL, Location access [DO NOT TRANSLATE] --> - <string name="help_url_location_access" translatable="false"></string> + <string name="help_url_location_access" translatable="false">http://support.google.com/mobile/?p=settings_location</string> <!-- Help URL, Security settings [DO NOT TRANSLATE] --> - <string name="help_url_security" translatable="false"></string> + <string name="help_url_security" translatable="false">http://support.google.com/mobile/?p=settings_security</string> <!-- User account title [CHAR LIMIT=30] --> <string name="user_account_title">Account for content</string> @@ -4380,4 +4421,727 @@ <string name="cell_broadcast_settings">Cell broadcasts</string> <!-- Cell Broadcast settings description [CHAR LIMIT=100] --> <string name="cell_broadcast_settings_summary">Select the types of emergency alerts to display.</string> + + <!-- **** CYANOGENMOD ADDITIONS START **** --> + + <string name="ok">OK</string> + + <!-- Quiet hours --> + <string name="quiet_hours_title">Quiet hours</string> + <string name="quiet_hours_summary">Configure the hours the device should be quiet</string> + <string name="quiet_hours_note_title">Note</string> + <string name="quiet_hours_note_summary">Incoming calls will behave like usual during quiet hours</string> + <string name="quiet_hours_enabled">Enable quiet hours</string> + <string name="quiet_hours_enabled_on">Quiet hours will be enforced</string> + <string name="quiet_hours_enabled_off">Notifications will function as normal</string> + <string name="quiet_hours_start">Start of quiet hours</string> + <string name="quiet_hours_start_summary">When to start enforcing quiet hours</string> + <string name="quiet_hours_end">End of quiet hours</string> + <string name="quiet_hours_end_summary">When to stop enforcing quiet hours</string> + <string name="quiet_hours_mute">Mute notifications</string> + <string name="quiet_hours_mute_on">No sounds will be played</string> + <string name="quiet_hours_mute_off">Sounds will play like normal</string> + <string name="quiet_hours_still">Disable vibrations</string> + <string name="quiet_hours_still_on">Device will not vibrate</string> + <string name="quiet_hours_still_off">Device will vibrate normally</string> + <string name="quiet_hours_dim">Disable notification light</string> + <string name="quiet_hours_dim_on">Notification light will be disabled</string> + <string name="quiet_hours_dim_off">Notification light will function as normal</string> + <string name="quiet_hours_haptic">Disable haptic feedback</string> + <string name="quiet_hours_haptic_on">Haptic feedback will be disabled</string> + <string name="quiet_hours_haptic_off">Haptic feedback will function as normal</string> + <string name="quiet_hours_active_from">Active from</string> + <string name="quiet_hours_active_to">to</string> + + <!-- time range preference --> + <string name="start_time_title">Start</string> + <string name="end_time_title">End</string> + + <!-- convert sound to vibration toggle --> + <string name="notification_convert_sound_to_vibration_title">Vibrate on notification</string> + <string name="notification_convert_sound_to_vibration_summary">In vibrate mode, all notifications will vibrate regardless of individual app settings</string> + + <!-- Hostname setting --> + <string name="device_hostname">Device hostname</string> + + <!-- About phone screen, setting option name--> + <string name="mod_version">CyanogenMod version</string> + <string name="mod_version_default">Unknown</string> + <!-- About phone screen, build date of ROM --> + <string name="build_date">Build date</string> + <string name="build_date_default">2012-01-01-0000</string> + <!-- About device screen, Cpu info. --> + <string name="cpu_info">CPU</string> + <!-- About phone screen, Free memory info --> + <string name="mem_info">Memory</string> + <!-- About phone screen, status item label --> + + <!-- Anonymous Statistics #CM --> + <!-- About device screen, list item title. Takes the user to the screen about opting in or out of anonymous statistics. --> + <string name="anonymous_statistics_title">CyanogenMod statistics</string> + <string name="anonymous_statistics_summary">Help make CyanogenMod better by opting into anonymous statistics reporting</string> + <string name="anonymous_statistics_warning_title">About</string> + <string name="anonymous_statistics_warning">Opting into CyanogenMod Statistics will allow non-personal data to be submitted to the + developers of CyanogenMod to track unique installations across devices. The information submitted includes an unique identifier, + which does not compromise your privacy or personal data. The data is submitted during each boot.\n\nFor an example of the data that is submitted, tap on Preview Data.</string> + <string name="enable_reporting_title">Enable reporting</string> + <string name="preview_data_title">Preview data</string> + <string name="preview_data_summary">%s</string> + <string name="view_stats_title">View stats</string> + <string name="anonymous_learn_more">Learn more</string> + + <!-- Anonymous Statistics - Notification --> + <string name="anonymous_notification_desc">Enable or Disable CyanogenMod Statistics</string> + + <!-- Anonymous Statistics - Preview --> + <string name="preview_id_title">Unique ID</string> + <string name="preview_device_title">Device</string> + <string name="preview_version_title">Version</string> + <string name="preview_country_title">Country</string> + <string name="preview_carrier_title">Carrier</string> + + <!-- INTERFACE Settings --> + <!-- Settings main menu category heading. Interface (Launcher, Themes, System). [CHAR LIMIT=40] --> + <string name="header_category_interface">INTERFACE</string> + + <!-- Launcher settings --> + <string name="launcher_settings_title">Launcher</string> + + <!-- Themes settings --> + <string name="themes_settings_title">Themes</string> + + <!-- System Interface settings --> + <string name="system_settings_title">System</string> + <string name="system_interface_title">System interface</string> + + <!-- Notification Drawer --> + <string name="notification_drawer_title">Notification drawer</string> + + <string name="lock_screen_title">Lock screen</string> + + <!-- Lock Screen Shortcuts --> + <string name="lockscreen_target_info">Drag the slider to targets to assign shortcuts</string> + <string name="lockscreen_target_title">Slider shortcuts</string> + <string name="lockscreen_target_summary">View or change custom lock screen shortcuts</string> + <string name="lockscreen_target_reset">Lock screen shortcuts reset to default</string> + <string name="lockscreen_target_save">Lock screen shortcuts saved</string> + <string name="lockscreen_target_reset_title">Reset</string> + <string name="lockscreen_target_reset_message">Delete all user created lock screen shortcuts and restore to default?</string> + <string name="lockscreen_target_empty">Empty</string> + <string name="lockscreen_target_edit_title">Edit shortcut and icon</string> + <string name="lockscreen_target_edit_msg">Select or change the desired application or activity and the associated icon</string> + + <!-- Lock screen vibrate settings --> + <string name="lockscreen_vibrate_enabled_title">Vibrate</string> + <string name="lockscreen_vibrate_enabled_head">Vibrate when unlocking</string> + + <!-- Lock screen misc. settings --> + <string name="lockscreen_battery_status_title">Battery status</string> + <string name="lockscreen_battery_status_charging">Only when charging</string> + <string name="lockscreen_battery_status_alwayson">Always on</string> + + <!-- Profiles settings --> + <string name="profiles_settings_title">Profiles</string> + <string name="profiles_general_title">General</string> + <string name="profiles_add">Add</string> + <string name="profile_menu_delete">Delete</string> + <string name="profile_settings_title">Profile</string> + <string name="profile_empty_list_profiles_off">To configure and use System profiles, turn Profiles on.</string> + + <!-- Add Profile --> + <string name="add_profile_dialog_title">Create new profile</string> + <string name="profile_name_title">Name</string> + <string name="profile_profile_name_prompt">Enter a name for the new profile</string> + <string name="menu_new_profile">New profile</string> + <string name="menu_new_profile_summary">Add and configure a new profile</string> + <string name="new_profile_name"><new profile></string> + + <!-- Rename Dialog --> + <string name="rename_dialog_title">Rename</string> + <string name="rename_dialog_message">Enter a new name</string> + <string name="duplicate_profile_name">Duplicate profile name!</string> + <string name="duplicate_appgroup_name">Duplicate application group name!</string> + + <!-- Reset Profiles --> + <string name="profile_reset_title">Reset</string> + <string name="profile_reset_message">Delete all user created profiles and application groups and restore them to default?</string> + + <!-- Delete confimation messages --> + <string name="profile_delete_confirm">Delete this profile?</string> + <string name="profile_app_delete_confirm">Remove this application?</string> + <string name="profile_cannot_delete">An active profile cannot be deleted</string> + + <!-- Profile Config screen PreferenceGroup titles --> + <string name="profile_connectionoverrides_title">Connection overrides</string> + <string name="profile_volumeoverrides_title">Volume overrides</string> + <string name="profile_vibratoroverrides_title">Vibrator overrides</string> + <string name="connection_state_disabled">Disable</string> + <string name="connection_state_enabled">Enable</string> + <string name="volume_override_summary">Set to</string> + <string name="vibrator_state_disabled">Disable</string> + <string name="vibrator_state_enabled">Enable</string> + <string name="vibrator_state_silent">Only when silent</string> + + <!-- Menu item for managing profiles --> + <string name="profile_profiles_manage">Profiles</string> + <string name="profile_profile_manage">Manage profile</string> + <string name="profile_applist_manage">Application list</string> + <string name="profile_appgroups_manage">Application groups</string> + <string name="profile_appgroup_manage">Manage application group</string> + + <!-- Profile settings screen, section header for settings related to notification profiles --> + <string name="profile_settings">Profile settings</string> + <string name="profile_name">Name</string> + + <!-- Profile Settings sound modes labels --> + <string name="sound_mode">Notification mode</string> + <string name="ringer_mode">Ring mode</string> + <string name="lights_mode">Lights mode</string> + <string name="vibrate_mode">Vibrate mode</string> + <string name="choose_soundtone">Choose notification tone</string> + <string name="choose_ringtone">Choose ringtone</string> + + <!-- Sound settings screen, setting option name to pick ringtone (a list dialog comes up)--> + <string name="soundtone_title">Notification tone</string> + <string name="soundtone_summary">""</string> + + <!-- Title for application group setting screen --> + <string name="profile_appgroups_title">Application groups</string> + <string name="profile_applist_title">Applications</string> + <string name="profile_new_appgroup">New application group</string> + <string name="profile_delete_appgroup">Delete this application group?</string> + <string name="profile_appgroup_name_prompt">Enter a name for the new application group</string> + <string name="profile_appgroup_name_title">Name</string> + <string name="profile_add_app">Add application</string> + <string name="profile_delete_app">Remove application</string> + + <!-- Add application dialog box title --> + <string name="profile_choose_app">Choose application</string> + <string name="profile_settings_header">Profile settings</string> + + <!-- Profiles - system settings --> + <string name="profile_system_settings_title">System settings</string> + <string name="profile_lockmode_title">Lock screen mode</string> + <string name="profile_lockmode_default">Default</string> + <string name="profile_lockmode_insecure">Insecure</string> + <string name="profile_lockmode_disabled">Disabled</string> + <string name="profile_lockmode_default_summary">Use system default</string> + <string name="profile_lockmode_insecure_summary">Use insecure lock screen</string> + <string name="profile_lockmode_disabled_summary">Lock screen is disabled</string> + <string name="profile_airplanemode_title">Airplane mode</string> + <string name="profile_disable_screen_lock_summary">Disable lock screen security while this profile is active</string> + + <string name="vibrator_type_ringer">Calls</string> + <string name="vibrator_type_notification">Notifications</string> + + <!-- Connection override toggles (not all are used at this time ) --> + <string name="possibleButtons">Possible Buttons</string> + <string name="toggleWifi">Wi-Fi</string> + <string name="toggleWifiAp">Portable Wi-Fi hotspot</string> + <string name="toggleBluetooth">Bluetooth</string> + <string name="toggleGPS">GPS</string> + <string name="toggleData">Mobile Data</string> + <string name="toggleSync">Data Sync</string> + <string name="toggle2g3g">2G/3G</string> + <string name="toggleSound">Ring Mode</string> + <string name="toggleBrightness">Brightness</string> + <string name="toggleAutoRotate">Orientation</string> + <string name="toggleScreenTimeout">Screen Timeout</string> + <string name="toggleAirplane">Airplane</string> + <string name="toggleFlashlight">Flashlight</string> + <string name="toggleLockScreen">Lock Screen</string> + <string name="toggleWimax">WiMAX</string> + + <!-- Screen security - Screen security --> + <string name="screen_security_category">Screen security</string> + <string name="screen_security_title">Lock screen</string> + <string name="screen_security_summary">View or change lock screen security, delay and timeout settings</string> + <string name="additional_options_title">Additional options</string> + <string name="unlock_menu_unlock_title">Menu unlock</string> + <string name="unlock_menu_unlock_summary">Pressing the menu button unlocks the device</string> + <string name="unlock_home_unlock_title">Home unlock</string> + <string name="unlock_home_unlock_summary">Pressing the home button unlocks the device</string> + <string name="unlock_quick_unlock_control_title">Quick unlock</string> + <string name="unlock_quick_unlock_control_summary">Unlock automatically when the correct PIN/password is entered</string> + + <!-- Slide lock delay --> + <string name="delay_and_timeout_title">Lock delay</string> + <string name="slide_lock_delay_title">Delay screen lock</string> + <string name="slide_lock_timeout_delay_title">Delay after timeout</string> + <string name="slide_lock_screenoff_delay_title">Delay after turned off</string> + <string name="slide_lock_delay_none">None</string> + <string name="slide_lock_delay_1s">1 second</string> + <string name="slide_lock_delay_5s">5 seconds</string> + <string name="slide_lock_delay_10s">10 seconds</string> + <string name="slide_lock_delay_15s">15 seconds</string> + <string name="slide_lock_delay_30s">30 seconds</string> + <string name="slide_lock_delay_1m">1 minute</string> + <string name="slide_lock_delay_5m">5 minutes</string> + <string name="slide_lock_delay_10m">10 minutes</string> + <string name="slide_lock_delay_30m">30 minutes</string> + + <!-- Performance settings --> + <string name="performance_settings_title">Performance</string> + + <!-- Performance Settings : Warning dialog --> + <string name="performance_settings_warning_title">Proceed with Caution</string> + <string name="performance_settings_warning">These settings are included for experimentation and any changes made to them have the potential to cause instability, crashes, data loss or hardware failures.\n\nWe request you do not file bug reports if any of these settings have been changed from the defaults.</string> + + <!-- Performance Settings : Processor Settings --> + <!-- Performance Settings : Processor settings title --> + <string name="processor_title">Processor</string> + <!-- Performance Settings : Processor settings summary. --> + <string name="processor_summary">Change CPU governor and clock speed</string> + + <!-- Performance Settings : Processor settings sub items --> + <string name="cpu_cur_freq_title">Current CPU frequency</string> + <string name="cpu_governors_title">CPU governor</string> + <string name="cpu_governors_summary">%S</string> + <string name="cpu_min_freq_title">Minimum CPU frequency</string> + <string name="cpu_min_freq_summary">%s</string> + <string name="cpu_max_freq_title">Maximum CPU frequency</string> + <string name="cpu_max_freq_summary">%s</string> + <string name="cpu_set_on_boot">Set on boot</string> + <string name="cpu_set_on_boot_summary">Restore the processor settings on boot</string> + + <!-- Performance Settings : I/O scheduler settings title --> + <string name="io_scheds_title">I/O scheduler</string> + <!-- Performance Settings : I/O scheduler settings summary. --> + <string name="io_scheds_summary">Change I/O scheduler</string> + + <!-- Performance Settings : I/O scheduler settings sub items --> + <string name="io_sched_title">I/O scheduler</string> + <string name="io_sched_summary">%S</string> + <string name="io_sched_set_on_boot">Set on boot</string> + <string name="io_sched_set_on_boot_summary">Restore the I/O scheduler settings on boot</string> + + <!-- Memory Management --> + <string name="memory_management_title">Memory management</string> + <string name="memory_management_summary">Customize the usage of memory to alter system performance</string> + <!-- zRam --> + <string name="pref_zram_title">zRam</string> + <string name="pref_zram_summary">Compress memory for increased virtual capacity (requires reboot)</string> + <!-- KSM --> + <string name="pref_ksm_title">Kernel samepage merging</string> + <string name="pref_ksm_summary">KSM reduces physical memory requirements and improves performance</string> + <!-- Purgeable Assets --> + <string name="pref_purgeable_assets_title">Allow purging of assets</string> + <string name="pref_purgeable_assets_summary">Purging of bitmap memory assets allows the freeing of more RAM when needed (requires reboot)</string> + + <!-- Performance Settings : Dithering --> + <string name="pref_use_dithering_title">Surface improvement</string> + <string name="dithering_no_dither">Disable dithering</string> + <string name="dithering_color_banding">Fix color banding (default)</string> + <string name="dithering_blur_effect">Fix color banding and blur effect</string> + + <!-- Performance Settings : 16bpp Alpha --> + <string name="pref_use_16bpp_alpha_title">16bit transparency</string> + <string name="pref_use_16bpp_alpha_summary">Better graphics performance, but lower quality and may cause visual artifacts (requires reboot)</string> + + <!-- Display : Rotation --> + <string name="display_rotation_title">Rotation</string> + <string name="display_rotation_disabled">Disabled</string> + <string name="display_rotation_unit">degrees</string> + <string name="display_rotation_category_title">Rotation modes</string> + <string name="display_rotation_0_title">0 degrees</string> + <string name="display_rotation_90_title">90 degrees</string> + <string name="display_rotation_180_title">180 degrees</string> + <string name="display_rotation_270_title">270 degrees</string> + + <!-- Lock screen shortcuts --> + <string name="picker_activities">Activities</string> + <string name="select_custom_app_title">Select custom application</string> + <string name="select_custom_activity_title">Select custom activity</string> + <string name="icon_picker_choose_icon_title">Choose icon</string> + <string name="icon_picker_alarm">Alarm</string> + <string name="icon_picker_browser">Browser</string> + <string name="icon_picker_calendar">Calendar</string> + <string name="icon_picker_camera">Camera</string> + <string name="icon_picker_chrome">Chrome</string> + <string name="icon_picker_email">Email</string> + <string name="icon_picker_email2">Email Holo</string> + <string name="icon_picker_facebook">Facebook</string> + <string name="icon_picker_gallery">Gallery</string> + <string name="icon_picker_google_small">Google (small)</string> + <string name="icon_picker_googleplus">Google Plus</string> + <string name="icon_picker_googletalk">Google Talk</string> + <string name="icon_picker_maps">Maps</string> + <string name="icon_picker_movie">Movie</string> + <string name="icon_picker_music">Music</string> + <string name="icon_picker_nav_normal">Navigation</string> + <string name="icon_picker_phone">Phone</string> + <string name="icon_picker_podcast">Podcast</string> + <string name="icon_picker_rss">Rss</string> + <string name="icon_picker_search">Search</string> + <string name="icon_picker_sms">Messaging</string> + <string name="icon_picker_twitter">Twitter</string> + + <!-- String for IconPicker --> + <string name="icon_picker_title">Choose icon source</string> + <string name="icon_picker_system_icons_title">System icons</string> + <string name="icon_picker_gallery_title">Gallery</string> + <string name="icon_picker_pack_title">Icon pack</string> + + <string name="increasing_ring_title">Ascending ringtone</string> + <!-- Sound settings screen, the caption of the checkbox for making incoming calls increase in volume --> + <string name="checkbox_increasing_ring">Enable</string> + <!-- Sound settings screen, the title of the volume bar to adjust the minimum increasing ring volume --> + <string name="increasing_ring_min_volume_title">Ringing start volume</string> + <string name="increasing_ring_volume_notice">Notice:\nAs the start volume is set higher than the ringer volume, the ring tone will be played using the ringer volume.</string> + <string name="increasing_ring_interval_title">Increase interval</string> + <string name="increasing_ring_interval_eachring">On each ring</string> + <string name="increasing_ring_interval_half_second">0.5 seconds</string> + <string name="increasing_ring_interval_1second">1 second</string> + <string name="increasing_ring_interval_2seconds">2 seconds</string> + <string name="increasing_ring_interval_3seconds">3 seconds</string> + <string name="increasing_ring_interval_5seconds">5 seconds</string> + <string name="increasing_ring_interval_10seconds">10 seconds</string> + + <string name="profile_write_nfc_tag">Write to NFC tag</string> + <string name="profile_write_touch_tag">Touch tag to write</string> + <string name="profile_write_success">Tag successfully written</string> + <string name="profile_write_failed">Tag writing failed!</string> + <string name="profile_selected">Profile selected: %1$s</string> + <string name="profile_nfc_text">Writing a profile to a NFC tag allows for tapping the tag to select the profile. Tapping a second time will select the previously selected profile.</string> + <string name="profile_unknown_nfc_tag">Unknown profile</string> + <string name="profile_add_nfc_text">This NFC tag refers to an unknown profile. Attaching this NFC tag to an existing profile will allow for selecting the profile in the future.</string> + <string name="profile_select">Select profile</string> + + <string name="link_volume_ringtones">Link ringtone & notifications volumes</string> + <string name="link_volume_mutes">Silent mode affects notifications</string> + + <!-- Display settings screen, notification light settings --> + <string name="notification_pulse_title">Notification light</string> + <string name="notification_light_general_title">General</string> + <string name="notification_light_applist_title">Applications</string> + <string name="notification_light_phonelist_title">Phone</string> + <string name="notification_light_use_custom">Use custom values</string> + <string name="notification_light_enabled">Enabled</string> + <string name="notification_light_disabled">Disabled</string> + <string name="notification_light_default_value">Default</string> + <string name="notification_light_missed_call_title">Missed call</string> + <string name="notification_light_voicemail_title">Voicemail</string> + + <!-- Notification light dialogs --> + <string name="edit_light_settings">Edit light settings</string> + <string name="pulse_speed_title">Pulse length and speed</string> + <string name="picker_arrow">→</string> + <string name="default_time">Normal</string> + <string name="custom_time">Custom</string> + <string name="dialog_test">Test</string> + <string name="dialog_delete_title">Delete</string> + <string name="dialog_delete_message">Remove selected item?</string> + <string name="dialog_test_message">Turn the screen off to see the selected notification in action or dismiss this dialog to stop the test</string> + <string name="dialog_test_button">Dismiss</string> + + <!-- Values for the notification light pulse spinners --> + <string name="pulse_length_always_on">Always on</string> + <string name="pulse_length_very_short">Very short</string> + <string name="pulse_length_short">Short</string> + <string name="pulse_length_normal">Normal</string> + <string name="pulse_length_long">Long</string> + <string name="pulse_length_very_long">Very long</string> + <string name="pulse_speed_very_fast">Very fast</string> + <string name="pulse_speed_fast">Fast</string> + <string name="pulse_speed_normal">Normal</string> + <string name="pulse_speed_slow">Slow</string> + <string name="pulse_speed_very_slow">Very slow</string> + + <!-- Battery light settings --> + <string name="battery_light_title">Battery light</string> + <string name="battery_low_pulse_title">Pulse if battery low</string> + <string name="battery_light_list_title">Colors</string> + <string name="battery_light_low_color_title">Battery low</string> + <string name="battery_light_medium_color_title">Charging</string> + <string name="battery_light_full_color_title">Fully charged</string> + + <!-- Sound settings screen --> + <string name="volume_overlay_title">Volume panel style</string> + <string name="volbtn_music_controls_title">Volume rocker music controls</string> + <string name="volbtn_music_controls_summary">When screen off, long-pressing the volume rockers will seek music tracks</string> + <string name="headset_connect_player_title">Launch music app on connect</string> + <string name="volume_ring_only_description">Ringtone</string> + <string name="ring_mode_title">Ring mode</string> + <string name="ring_mode_normal">Normal</string> + <string name="ring_mode_vibrate">Vibrate</string> + <string name="ring_mode_mute">Mute</string> + + <!-- Hardware keys --> + <string name="hardware_keys_title">Hardware keys</string> + <string name="hardware_keys_bindings_title">Key actions</string> + <string name="hardware_keys_enable_custom_title">Enable custom actions</string> + <string name="hardware_keys_home_long_press_title">Home key (long press)</string> + <string name="hardware_keys_menu_press_title">Menu key</string> + <string name="hardware_keys_menu_long_press_title">Menu key (long press)</string> + <string name="hardware_keys_assist_press_title">Search key</string> + <string name="hardware_keys_assist_long_press_title">Search key (long press)</string> + <string name="hardware_keys_app_switch_press_title">App switch key</string> + <string name="hardware_keys_app_switch_long_press_title">App switch key (long press)</string> + <string name="hardware_keys_show_overflow_title">Show action overflow</string> + <string name="hardware_keys_show_overflow_summary">Display the 3-dot overflow menu button within apps</string> + <string name="hardware_keys_show_overflow_toast_enable">The action overflow button may not be visible until apps are restarted</string> + <string name="hardware_keys_show_overflow_toast_disable">The action overflow button may not be hidden until apps are restarted</string> + <string name="hardware_keys_action_nothing">No action</string> + <string name="hardware_keys_action_menu">Open/close menu</string> + <string name="hardware_keys_action_app_switch">Recent apps switcher</string> + <string name="hardware_keys_action_search">Search assistant</string> + <string name="hardware_keys_action_voice_search">Voice search</string> + <string name="hardware_keys_action_in_app_search">In-app search</string> + + <!-- Navigation Bar #CM --> + <string name="navigation_bar_title">Navigation bar</string> + <string name="navigation_bar_help_text">1 - To begin editing, tap the lock icon\n\n2 - Tap any button to assign or change functionality\n\n3 - Long press any button to rearrange the order\n\n4 - To save, tap the lock icon again\n\n5 - To restore system default, tap the reset button\n\n</string> + <string name="navigation_bar_tips">• Actions can only be assigned to one button at a time\n\n• The home button cannot be re-assigned\n\n• Side buttons cannot be rearranged</string> + <string name="navigation_bar_tips_title">Quick tips</string> + <string name="navigation_bar_reset_message">Delete current settings and restore to default?</string> + <string name="navigation_bar_save_message">Navigation bar settings saved</string> + <string name="navigation_bar_reset_toast">Navigation bar reset to default</string> + <string name="navigation_bar_menu_editable">Editable</string> + <string name="navigation_bar_menu_locked">Locked</string> + + <!-- Power Widget --> + <string name="power_widget_title">Power widget</string> + <string name="title_expanded_widget">Power widget</string> + <string name="power_widget_behavior">Widget behavior</string> + <string name="title_expanded_hide_onchange">Close drawer on change</string> + <string name="title_expanded_hide_indicator">Hide indicators</string> + <string name="title_expanded_hide_scrollbar">Hide scrollbar</string> + <string name="title_widget_picker">Widget buttons</string> + <string name="summary_widget_picker">View or change the displayed buttons</string> + <string name="title_widget_order">Widget button order</string> + <string name="summary_widget_order">View or change the order of the buttons</string> + <string name="title_buttons">Buttons</string> + <string name="title_toggle_wifi">Toggle Wi-Fi</string> + <string name="title_toggle_bluetooth">Toggle Bluetooth</string> + <string name="title_toggle_gps">Toggle GPS</string> + <string name="title_toggle_sound">Toggle Sound</string> + <string name="title_toggle_brightness">Toggle Brightness</string> + <string name="title_toggle_sync">Toggle Sync</string> + <string name="title_toggle_wifiap">Toggle Wi-Fi AP</string> + <string name="title_toggle_screentimeout">Toggle Screen timeout</string> + <string name="title_toggle_mobiledata">Toggle Mobile data</string> + <string name="title_toggle_lockscreen">Toggle Lock screen</string> + <string name="title_toggle_networkmode">Toggle network mode</string> + <string name="title_toggle_autorotate">Toggle Orientation</string> + <string name="title_toggle_airplane">Toggle Airplane mode</string> + <string name="title_toggle_flashlight">Toggle LED flashlight</string> + <string name="title_toggle_sleep">Go to sleep</string> + <string name="title_toggle_media_play_pause">Media: Toggle Play/Pause</string> + <string name="title_toggle_media_previous">Media: Skip to Previous</string> + <string name="title_toggle_media_next">Media: Skip to Next</string> + <string name="title_toggle_lte">Toggle LTE</string> + <string name="title_toggle_wimax">Toggle WiMAX</string> + <string name="title_button_modes">Button modes</string> + <string name="pref_brightness_mode_title">Brightness modes</string> + <string name="pref_brightness_mode_summary">View or change the Brightness button modes</string> + <string name="cm_brightness_mode_auto">Auto</string> + <string name="cm_brightness_mode_dim">Dim</string> + <string name="pref_network_mode_title">Network modes</string> + <string name="pref_screentimeout_mode_title">Screen timeout modes</string> + <string name="pref_ring_mode_title">Sound modes</string> + <string name="pref_ring_mode_summary">View or change the Sound button modes</string> + <string name="cm_sound_mode_silent">Silent</string> + <string name="cm_sound_mode_vibrate">Vibrate</string> + <string name="cm_sound_mode_sound">Sound</string> + <string name="cm_sound_mode_soundVibrate">Sound & Vibrate</string> + <string name="pref_flash_mode_title">Flash mode</string> + <string name="expanded_haptic_feedback_title">Haptic feedback</string> + + <!-- Kill app long-press back --> + <string name="kill_app_longpress_back">Kill app back button</string> + <string name="kill_app_longpress_back_summary">Kill the foreground app by long-pressing the back key</string> + + <!-- Change Log strings --> + <string name="changelog_title">View changelog</string> + <string name="changelog_loading">Loading changelog\u2026</string> + <string name="changelog_error">Unable to load changelog</string> + <string name="changelog_unknown">Unknown</string> + <string name="changelog_version">Version</string> + + <!-- Power menu enable disable --> + <string name="power_menu_title">Power menu</string> + <string name="power_menu_reboot_title">Reboot menu</string> + <string name="power_menu_screenshot_title">Screenshot</string> + <string name="power_menu_expanded_desktop">Expanded desktop</string> + <string name="summary_expanded_desktop">%1$s</string> + <string name="expanded_desktop_summary_status_bar">Status bar visible</string> + <string name="expanded_desktop_summary_no_status_bar">Status bar hidden</string> + <string name="expanded_desktop_disabled">Off</string> + <string name="expanded_desktop_status_bar">Status bar visible</string> + <string name="expanded_desktop_no_status_bar">Status bar hidden</string> + <string name="power_menu_profiles_title">Profile switcher</string> + <string name="power_menu_airplane_title">Airplane mode</string> + <string name="power_menu_user_title">User switcher</string> + <string name="power_menu_sound_title">Sound panel</string> + + <!-- CM Updater --> + <string name="cmupdate_settings_title">CyanogenMod updates</string> + <string name="cmupdate_settings_summary">Check for, view or install available updates</string> + + <!-- Advanced, Device specific (DeviceParts) settings --> + <string name="advanced_settings_title">Advanced</string> + + <!-- Whether to display IME switcher notifcation --> + <string name="ime_switcher_notify">Selector notification</string> + <string name="ime_switcher_notify_summary">Display input method selector notification</string> + + <!-- Status bar --> + <string name="status_bar_title">Status bar</string> + <string name="status_bar_clock_title">Clock</string> + <string name="status_bar_general_title">General</string> + <string name="status_bar_show_clock_title">Show clock</string> + <string name="status_bar_am_pm_title">AM/PM style</string> + <string name="status_bar_am_pm_info">24-hour clock is enabled</string> + <string name="status_bar_battery_title">Battery status style</string> + <string name="status_bar_toggle_brightness">Brightness control</string> + <string name="status_bar_toggle_brightness_summary">Adjust brightness by sliding across status bar</string> + <string name="status_bar_toggle_info">Automatic brightness is enabled</string> + <string name="status_bar_signal_text_title">Signal status style</string> + <string name="status_bar_style_icon">Icon</string> + <string name="status_bar_style_hidden">Hidden</string> + <string name="status_bar_signal_text_show_text">Text</string> + <string name="status_bar_battery_status_percentage">Percentage</string> + <string name="status_bar_battery_status_circle">Circle</string> + <string name="status_bar_battery_status_circle_percentage">Circle with percentage</string> + + <!-- Status bar notification count --> + <string name="status_bar_notif_count_title">Show notification count</string> + <string name="status_bar_notif_count_summary">Display number of pending notifications</string> + + <!-- Wakeup options --> + <string name="display_category_wakeup_options_title">Wakeup options</string> + <string name="pref_volume_wake_title">Volume rocker wake</string> + <string name="pref_volume_wake_summary">Pressing the volume rocker up/down will wake the device</string> + + <!-- Setting checkbox summary for displaying USB debugging notification --> + <string name="adb_notify">USB debugging notify</string> + <string name="adb_notify_summary">Display a notification when USB debugging is connected</string> + + <!-- Launches Dev Tools --> + <string name="development_tools_title">Launch Tools</string> + + <!-- USB Mass Storage --> + <string name="usb_mass_storage_title">Mass storage</string> + <string name="usb_mass_storage_summary">Enable USB mass storage</string> + + <!-- Android debugging over WiFi --> + <string name="adb_over_network">ADB over network</string> + <string name="adb_over_network_summary">Enable TCP/IP debugging over network interfaces (Wi-Fi, USB networks). This setting is reset on reboot</string> + <!-- Warning for Adb over Network --> + <string name="adb_over_network_warning">WARNING: When ADB over network is enabled, your phone is open for intrusions on all connected networks, including GSM data network!\n\nOnly use this feature when you are connected on trusted networks.\n\nDo you really want to enable this function?</string> + + <string name="lockscreen_buttons_title">Button actions</string> + <string name="lockscreen_buttons_summary">View or change lock screen button actions</string> + <string name="lockscreen_long_press_back_title">Long press Back button</string> + <string name="lockscreen_long_press_home_title">Long press Home button</string> + <string name="lockscreen_long_press_menu_title">Long press Menu button</string> + <string name="lockscreen_buttons_no_action">No action</string> + <string name="lockscreen_buttons_flashlight">Flashlight</string> + <string name="lockscreen_buttons_next">Next song</string> + <string name="lockscreen_buttons_previous">Previous song</string> + <string name="lockscreen_buttons_playpause">Play/Pause music</string> + <string name="lockscreen_buttons_toggle_sound">Toggle sound</string> + + <!-- Quick settings panel --> + <string name="quick_settings_panel_title">Quick Settings panel</string> + <string name="quick_settings_title">Quick Settings</string> + <string name="title_static_tiles">Static tiles</string> + <string name="tile_picker_title">Tiles and layout</string> + <string name="tile_picker_summary">View, select or change the layout of the displayed tiles</string> + <string name="tile_choose_title">Choose a tile</string> + + <string name="title_tile_airplane">Airplane mode</string> + <string name="title_tile_battery">Battery stats</string> + <string name="title_tile_bluetooth">Bluetooth</string> + <string name="title_tile_brightness">Brightness</string> + <string name="title_tile_sleep">Go to sleep</string> + <string name="title_tile_gps">GPS</string> + <string name="title_tile_torch">Torch</string> + <string name="title_tile_lockscreen">Lock screen</string> + <string name="title_tile_lte">LTE</string> + <string name="title_tile_mobiledata">Mobile data</string> + <string name="title_tile_profile">Profile</string> + <string name="title_tile_autorotate">Orientation</string> + <string name="title_tile_settings">Settings</string> + <string name="title_tile_sound">Sound</string> + <string name="title_tile_sync">Sync</string> + <string name="title_tile_wifiap">Wi-Fi AP</string> + <string name="title_tile_wifi">Wi-Fi</string> + <string name="title_tile_wimax">WiMAX</string> + <string name="title_tile_user">User switcher</string> + <string name="title_tile_networkmode">Network mode</string> + <string name="title_tile_nfc">NFC</string> + <string name="title_tile_screen_timeout">Screen timeout</string> + <string name="title_tile_usb_tether">USB Tether</string> + <string name="title_tile_quiet_hours">Quiet hours</string> + + <string name="title_dynamic_tiles">Dynamic tiles</string> + <string name="dynamic_tiles_note_title">Note</string> + <string name="dynamic_tiles_note_summary">Dynamic tiles are not always visible and will only show up if triggered by a system event</string> + <string name="title_dynamic_alarm">Alarm clock</string> + <string name="title_dynamic_bugreport">Bug report</string> + <string name="title_dynamic_ime">IME changer</string> + <string name="title_dynamic_usbtether">USB Tether</string> + <string name="title_dynamic_wifi">Wi-Fi display</string> + + <string name="title_general">General</string> + <string name="title_quick_pulldown">Quick pulldown</string> + <string name="summary_quick_pulldown">%1$s edge of the status bar pulls down Quick Settings</string> + <string name="quick_pulldown_summary_left">Left</string> + <string name="quick_pulldown_summary_right">Right</string> + <string name="quick_pulldown_off">Off</string> + <string name="quick_pulldown_left">Left</string> + <string name="quick_pulldown_right">Right</string> + <string name="title_collapse_panel">Auto close panel</string> + <string name="summary_collapse_panel">Close the Quick Settings panel upon toggle</string> + + <!-- Reset tiles --> + <string name="tiles_reset_title">Reset</string> + <string name="tiles_reset_message">Restore the default displayed tiles and layout?</string> + + <!--- Volume key cursor control --> + <string name="volume_key_cursor_control_title">Volume key cursor control</string> + <string name="volume_key_cursor_control_off">Disabled</string> + <string name="volume_key_cursor_control_on">Volume up/down moves cursor left/right</string> + <string name="volume_key_cursor_control_on_reverse">Volume up/down moves cursor right/left</string> + + <!-- Wireless display --> + <string name="pref_wifi_disable_hdcp_title">Skip HDCP negotiation</string> + <string name="pref_wifi_disable_hdcp_summary">Try this option if you can connect but don\'t get any output</string> + + <!--- Sms security limit --> + <string name="app_security_title">App security</string> + <string name="sms_security_check_limit_title">SMS message limit</string> + <string name="sms_security_check_limit_summary">Apps can send %d messages in 30 minutes before requiring confirmation</string> + <string name="sms_security_check_limit_default">30 (Default)</string> + + <!--- Lock clock --> + <string name="lock_clock_title">Clock widget</string> + <string name="lock_clock_summary">View or change how the \'cLock\' Home and Lock screen widgets will display</string> + + <!-- Stylus Icon --> + <string name="stylus_icon_enabled_title">Show icon when using stylus</string> + <string name="stylus_icon_enabled_summary">Show the pointer icon when hovering or drawing with the stylus</string> + + <string name="lockscreen_maximize_widgets_title">Maximize widgets</string> + <string name="lockscreen_maximize_widgets_summary">Show widgets maximized and the unlock minimized when the screen is turned on</string> + + <!-- Custom lock screen background --> + <string name="lockscreen_custom_background_title">Background</string> + <string name="lockscreen_custom_background_dialog_title">Choose color</string> + <string name="lockscreen_background_result_successful">Background changed successfully</string> + <string name="lockscreen_background_result_not_successful">Background could not be changed</string> + <string name="lockscreen_background_color_fill">Color fill</string> + <string name="lockscreen_background_custom_image">Custom image</string> + <string name="lockscreen_background_default_wallpaper">Default wallpaper</string> + + <!-- Safe headset volume restore checkbox --> + <string name="safe_headset_volume_title">Safe headset volume</string> + <string name="safe_headset_volume_summary">Prevent loud volume levels when headset is first plugged in</string> + + <!-- Waiver --> + <string name="cyanogenmod_waiver_title">Waiver</string> + <string name="cyanogenmod_waiver_body">Changing this setting may be against your state or government laws.\n\nIn selecting \'OK\' below, you acknowledge this warning and waive, indemnify and hold harmless CyanogenMod and its contributors from all legal liabilities.</string> + + <!-- **** CYANOGENMOD ADDITIONS END **** --> </resources> diff --git a/res/values/styles.xml b/res/values/styles.xml index dda22d9..4d7eb9f 100644 --- a/res/values/styles.xml +++ b/res/values/styles.xml @@ -195,4 +195,10 @@ <style name="KeyguardAppWidgetItem"> <item name="android:textSize">18sp</item> </style> + + <style name="ProfilesPreferenceStyle"> + <item name="android:layout">@layout/preference_profiles</item> + <item name="android:widgetLayout">@layout/preference_profiles_widget</item> + </style> + </resources> diff --git a/res/xml-de/timezones.xml b/res/xml-de/timezones.xml index 6f0661d..223501d 100644 --- a/res/xml-de/timezones.xml +++ b/res/xml-de/timezones.xml @@ -30,7 +30,7 @@ <timezone id="Africa/Casablanca">Casablanca</timezone> <timezone id="Europe/London">London</timezone> <timezone id="Europe/Amsterdam">Mitteleuropäische Zeit (Amsterdam)</timezone> - <timezone id="Europe/Belgrade">Mitteleuropäische Zeit (Belgrade)</timezone> + <timezone id="Europe/Belgrade">Mitteleuropäische Zeit (Belgrad)</timezone> <timezone id="Europe/Brussels">Mitteleuropäische Zeit (Brüssel)</timezone> <timezone id="Europe/Sarajevo">Mitteleuropäische Zeit (Sarajevo)</timezone> <timezone id="Africa/Windhoek">Windhoek</timezone> @@ -50,20 +50,20 @@ <timezone id="Asia/Tehran">Teheran</timezone> <timezone id="Asia/Baku">Baku</timezone> <timezone id="Asia/Tbilisi">Tiflis</timezone> - <timezone id="Asia/Yerevan">Erivan</timezone> + <timezone id="Asia/Yerevan">Jerewan</timezone> <timezone id="Asia/Dubai">Dubai</timezone> <timezone id="Asia/Kabul">Afghanistan-Zeit (Kabul)</timezone> - <timezone id="Asia/Karachi">Karachi</timezone> + <timezone id="Asia/Karachi">Karatschi</timezone> <timezone id="Asia/Oral">Oral</timezone> <timezone id="Asia/Yekaterinburg">Jekaterinburg</timezone> - <timezone id="Asia/Calcutta">Calcutta</timezone> + <timezone id="Asia/Calcutta">Kalkutta</timezone> <timezone id="Asia/Colombo">Colombo</timezone> - <timezone id="Asia/Katmandu">Katmandu</timezone> + <timezone id="Asia/Katmandu">Kathmandu</timezone> <timezone id="Asia/Almaty">Almaty</timezone> - <timezone id="Asia/Rangoon">Rangoon</timezone> + <timezone id="Asia/Rangoon">Rangun</timezone> <timezone id="Asia/Krasnoyarsk">Krasnojarsk</timezone> <timezone id="Asia/Bangkok">Bangkok</timezone> - <timezone id="Asia/Shanghai">Beijing</timezone> + <timezone id="Asia/Shanghai">Peking, Shanghai</timezone> <timezone id="Asia/Hong_Kong">Hongkong</timezone> <timezone id="Asia/Irkutsk">Irkutsk</timezone> <timezone id="Asia/Kuala_Lumpur">Kuala Lumpur</timezone> diff --git a/res/xml/accessibility_settings.xml b/res/xml/accessibility_settings.xml index 15b5b2e..960d1e5 100644 --- a/res/xml/accessibility_settings.xml +++ b/res/xml/accessibility_settings.xml @@ -43,6 +43,11 @@ android:persistent="false"/> <CheckBoxPreference + android:key="toggle_home_button_answers_call_preference" + android:title="@string/accessibility_home_button_answers_call_prerefence_title" + android:persistent="false"/> + + <CheckBoxPreference android:key="toggle_lock_screen_rotation_preference" android:title="@string/accelerometer_title" android:persistent="false"/> diff --git a/res/xml/anonymous_stats.xml b/res/xml/anonymous_stats.xml new file mode 100644 index 0000000..6c4621e --- /dev/null +++ b/res/xml/anonymous_stats.xml @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2012 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. +--> + +<PreferenceScreen + xmlns:android="http://schemas.android.com/apk/res/android" + android:title="@string/anonymous_statistics_title" + xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"> + + <CheckBoxPreference + android:key="pref_anonymous_opt_in" + android:defaultValue="true" + android:title="@string/enable_reporting_title" /> + + <PreferenceScreen + android:title="@string/preview_data_title" + android:fragment="com.android.settings.cmstats.PreviewData" /> + + <Preference + android:key="pref_view_stats" + android:title="@string/view_stats_title" /> + +</PreferenceScreen> diff --git a/res/xml/appgroup_list.xml b/res/xml/appgroup_list.xml new file mode 100644 index 0000000..a578a19 --- /dev/null +++ b/res/xml/appgroup_list.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2008 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<PreferenceScreen + xmlns:android="http://schemas.android.com/apk/res/android" + android:key="profile_appgroups_list" + xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"> + +</PreferenceScreen> diff --git a/res/xml/application_list.xml b/res/xml/application_list.xml new file mode 100644 index 0000000..da8c201 --- /dev/null +++ b/res/xml/application_list.xml @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2008 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"> + + <PreferenceCategory + android:key="general_section" + android:title="@string/profile_appgroup_name_title"> + </PreferenceCategory> + + <PreferenceCategory + android:key="applications_list" + android:title="@string/profile_applist_title" > + </PreferenceCategory> + +</PreferenceScreen> diff --git a/res/xml/battery_light_settings.xml b/res/xml/battery_light_settings.xml new file mode 100644 index 0000000..8269fd7 --- /dev/null +++ b/res/xml/battery_light_settings.xml @@ -0,0 +1,57 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2012 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. +--> + +<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"> + + <PreferenceCategory + android:key="general_section" + android:title="@string/notification_light_general_title"> + + <CheckBoxPreference + android:key="battery_light" + android:title="@string/battery_light_title" + android:persistent="false" /> + + <CheckBoxPreference + android:key="battery_low_pulse" + android:title="@string/battery_low_pulse_title" + android:persistent="false" /> + + </PreferenceCategory> + + <PreferenceCategory + android:key="colors_list" + android:title="@string/battery_light_list_title" > + + <com.android.settings.notificationlight.ApplicationLightPreference + android:key="low_color" + android:title="@string/battery_light_low_color_title" + android:persistent="false" /> + + <com.android.settings.notificationlight.ApplicationLightPreference + android:key="medium_color" + android:title="@string/battery_light_medium_color_title" + android:persistent="false" /> + + <com.android.settings.notificationlight.ApplicationLightPreference + android:key="full_color" + android:title="@string/battery_light_full_color_title" + android:persistent="false" /> + + </PreferenceCategory> + +</PreferenceScreen> diff --git a/res/xml/development_prefs.xml b/res/xml/development_prefs.xml index e67aad1..f36b891 100644 --- a/res/xml/development_prefs.xml +++ b/res/xml/development_prefs.xml @@ -4,9 +4,9 @@ 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. @@ -16,6 +16,17 @@ <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" android:title="@string/development_settings_title"> + + <PreferenceScreen + android:key="development_tools" + android:title="@string/development_tools_title" + android:persistent="false" > + <intent + android:action="android.settings.development.LAUNCH_TOOLS" + android:targetPackage="com.android.development" + android:targetClass="com.android.development.Development" /> + </PreferenceScreen> + <com.android.settings.BugreportPreference android:key="bugreport" android:title="@*android:string/bugreport_title" @@ -32,9 +43,9 @@ android:targetClass="com.android.settings.SetFullBackupPassword" /> </PreferenceScreen> - <CheckBoxPreference - android:key="keep_screen_on" - android:title="@string/keep_screen_on" + <CheckBoxPreference + android:key="keep_screen_on" + android:title="@string/keep_screen_on" android:summary="@string/keep_screen_on_summary"/> <ListPreference @@ -49,6 +60,13 @@ android:title="@string/enforce_read_external_title" android:summary="@string/enforce_read_external_summary" /> + <ListPreference + android:key="root_access" + android:title="@string/root_access" + android:persistent="false" + android:entries="@array/root_access_entries" + android:entryValues="@array/root_access_values" /> + <PreferenceCategory android:key="debug_debugging_category" android:title="@string/debug_debugging_category"> @@ -58,6 +76,29 @@ android:summary="@string/enable_adb_summary"/> <CheckBoxPreference + android:key="adb_notify" + android:title="@string/adb_notify" + android:summary="@string/adb_notify_summary" + android:dependency="enable_adb"/> + + <CheckBoxPreference + android:key="adb_over_network" + android:title="@string/adb_over_network" + android:summary="@string/adb_over_network_summary" + android:dependency="enable_adb"/> + + <com.android.settings.HostnamePreference + android:key="device_hostname" + android:title="@string/device_hostname" + android:dialogTitle="@string/device_hostname" + android:positiveButtonText="@string/wifi_save" + android:negativeButtonText="@string/wifi_cancel" + android:selectAllOnFocus="true" + android:imeOptions="actionDone" + android:inputType="textNoSuggestions" + android:persistent="false" /> + + <CheckBoxPreference android:key="bugreport_in_power" android:title="@string/bugreport_in_power" android:summary="@string/bugreport_in_power_summary"/> @@ -222,6 +263,11 @@ android:title="@string/show_all_anrs" android:summary="@string/show_all_anrs_summary"/> - </PreferenceCategory> + <CheckBoxPreference + android:key="kill_app_longpress_back" + android:title="@string/kill_app_longpress_back" + android:summary="@string/kill_app_longpress_back_summary"/> + + </PreferenceCategory> </PreferenceScreen> diff --git a/res/xml/device_info_settings.xml b/res/xml/device_info_settings.xml index 03f1e78..955c153 100644 --- a/res/xml/device_info_settings.xml +++ b/res/xml/device_info_settings.xml @@ -18,12 +18,11 @@ android:title="@string/about_settings"> <!-- System update settings - launches activity --> - <PreferenceScreen android:key="system_update_settings" + <!-- <PreferenceScreen android:key="system_update_settings" android:title="@string/system_update_settings_list_item_title" android:summary="@string/system_update_settings_list_item_summary"> <intent android:action="android.settings.SYSTEM_UPDATE_SETTINGS" /> - </PreferenceScreen> - + </PreferenceScreen> --> <PreferenceScreen android:key="additional_system_update_settings" android:title="@string/additional_system_update_settings_list_item_title"> @@ -41,6 +40,29 @@ android:targetClass="com.android.settings.deviceinfo.Status" /> </PreferenceScreen> + <!-- CyanogenMod Updates --> + <PreferenceScreen android:key="cm_updates" + android:title="@string/cmupdate_settings_title" + android:summary="@string/cmupdate_settings_summary"> + <intent android:action="android.intent.action.MAIN" + android:targetPackage="com.cyanogenmod.updater" + android:targetClass="com.cyanogenmod.updater.UpdatesSettings" /> + </PreferenceScreen> + + <!-- Anonymous statistics - (CMStats) --> + <PreferenceScreen + android:key="cmstats" + android:title="@string/anonymous_statistics_title" + android:summary="@string/anonymous_statistics_summary" + android:fragment="com.android.settings.cmstats.AnonymousStats" > + </PreferenceScreen> + + <!-- Change Log --> + <PreferenceScreen android:key="changelog" + android:title="@string/changelog_title" + android:fragment="com.android.settings.cyanogenmod.ChangeLog" > + </PreferenceScreen> + <!-- Legal Information --> <PreferenceScreen android:key="container" @@ -122,6 +144,30 @@ android:title="@string/kernel_version" android:summary="@string/device_info_default"/> + <!-- Device cpu info --> + <Preference android:key="device_cpu" + style="?android:preferenceInformationStyle" + android:title="@string/cpu_info" + android:summary="@string/device_info_default"/> + + <!-- Device mem info --> + <Preference android:key="device_memory" + style="?android:preferenceInformationStyle" + android:title="@string/mem_info" + android:summary="@string/device_info_default"/> + + <!-- Mod version --> + <Preference android:key="mod_version" + style="?android:preferenceInformationStyle" + android:title="@string/mod_version" + android:summary="@string/mod_version_default" /> + + <!-- Mod build date --> + <Preference android:key="build_date" + style="?android:preferenceInformationStyle" + android:title="@string/build_date" + android:summary="@string/build_date_default" /> + <!-- Detailed build version --> <Preference android:key="build_number" style="?android:preferenceInformationStyle" diff --git a/res/xml/display_rotation.xml b/res/xml/display_rotation.xml new file mode 100644 index 0000000..fa6b3fe --- /dev/null +++ b/res/xml/display_rotation.xml @@ -0,0 +1,48 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2010 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" + android:title="@string/display_rotation_title" + xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"> + + <CheckBoxPreference + android:key="accelerometer" + android:title="@string/accelerometer_title" /> + <PreferenceCategory + android:key="display_rotation_category" + android:title="@string/display_rotation_category_title" /> + <CheckBoxPreference + android:key="display_rotation_0" + android:title="@string/display_rotation_0_title" + android:layout="?android:attr/preferenceLayoutChild" + android:dependency="accelerometer" /> + <CheckBoxPreference + android:key="display_rotation_90" + android:title="@string/display_rotation_90_title" + android:layout="?android:attr/preferenceLayoutChild" + android:dependency="accelerometer" /> + <CheckBoxPreference + android:key="display_rotation_180" + android:title="@string/display_rotation_180_title" + android:layout="?android:attr/preferenceLayoutChild" + android:dependency="accelerometer" /> + <CheckBoxPreference + android:key="display_rotation_270" + android:title="@string/display_rotation_270_title" + android:layout="?android:attr/preferenceLayoutChild" + android:dependency="accelerometer" /> + +</PreferenceScreen> diff --git a/res/xml/display_settings.xml b/res/xml/display_settings.xml index d14446c..ed88399 100644 --- a/res/xml/display_settings.xml +++ b/res/xml/display_settings.xml @@ -28,9 +28,10 @@ android:title="@string/wallpaper_settings_title" android:fragment="com.android.settings.WallpaperTypeSettings" /> - <CheckBoxPreference - android:key="accelerometer" - android:title="@string/accelerometer_title"/> + <PreferenceScreen + android:key="display_rotation" + android:fragment="com.android.settings.cyanogenmod.DisplayRotation" + android:title="@string/display_rotation_title" /> <ListPreference android:key="screen_timeout" @@ -53,14 +54,19 @@ android:entryValues="@array/entryvalues_font_size" android:dialogTitle="@string/dialog_title_font_size" /> - <CheckBoxPreference - android:key="notification_pulse" - android:title="@string/notification_pulse_title" - android:persistent="false" /> - <PreferenceScreen android:key="wifi_display" android:title="@string/wifi_display_settings_title" android:fragment="com.android.settings.wfd.WifiDisplaySettings" /> + <PreferenceCategory + android:key="category_wakeup_options" + android:title="@string/display_category_wakeup_options_title"/> + + <CheckBoxPreference + android:key="pref_volume_wake" + android:title="@string/pref_volume_wake_title" + android:summary="@string/pref_volume_wake_summary" + android:defaultValue="false" /> + </PreferenceScreen> diff --git a/res/xml/hardware_keys.xml b/res/xml/hardware_keys.xml new file mode 100644 index 0000000..29b3c58 --- /dev/null +++ b/res/xml/hardware_keys.xml @@ -0,0 +1,108 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Copyright (C) 2012 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. +--> + +<PreferenceScreen + xmlns:android="http://schemas.android.com/apk/res/android" + android:title="@string/hardware_keys_title"> + + <PreferenceCategory + android:key="hardware_keys_bindings" + android:title="@string/hardware_keys_bindings_title"> + + <CheckBoxPreference + android:key="hardware_keys_enable_custom" + android:title="@string/hardware_keys_enable_custom_title" + android:defaultValue="false" + android:persistent="false" /> + + <ListPreference + android:key="hardware_keys_home_long_press" + android:dialogTitle="@string/hardware_keys_home_long_press_title" + android:title="@string/hardware_keys_home_long_press_title" + android:entries="@array/hardware_keys_action_entries" + android:entryValues="@array/hardware_keys_action_values" + android:persistent="false" + android:dependency="hardware_keys_enable_custom" /> + + <ListPreference + android:key="hardware_keys_menu_press" + android:dialogTitle="@string/hardware_keys_menu_press_title" + android:title="@string/hardware_keys_menu_press_title" + android:entries="@array/hardware_keys_action_entries" + android:entryValues="@array/hardware_keys_action_values" + android:persistent="false" + android:dependency="hardware_keys_enable_custom" /> + + <ListPreference + android:key="hardware_keys_menu_long_press" + android:dialogTitle="@string/hardware_keys_menu_long_press_title" + android:title="@string/hardware_keys_menu_long_press_title" + android:entries="@array/hardware_keys_action_entries" + android:entryValues="@array/hardware_keys_action_values" + android:persistent="false" + android:dependency="hardware_keys_enable_custom" /> + + <ListPreference + android:key="hardware_keys_assist_press" + android:dialogTitle="@string/hardware_keys_assist_press_title" + android:title="@string/hardware_keys_assist_press_title" + android:entries="@array/hardware_keys_action_entries" + android:entryValues="@array/hardware_keys_action_values" + android:persistent="false" + android:dependency="hardware_keys_enable_custom" /> + + <ListPreference + android:key="hardware_keys_assist_long_press" + android:dialogTitle="@string/hardware_keys_assist_long_press_title" + android:title="@string/hardware_keys_assist_long_press_title" + android:entries="@array/hardware_keys_action_entries" + android:entryValues="@array/hardware_keys_action_values" + android:persistent="false" + android:dependency="hardware_keys_enable_custom" /> + + <ListPreference + android:key="hardware_keys_app_switch_press" + android:dialogTitle="@string/hardware_keys_app_switch_press_title" + android:title="@string/hardware_keys_app_switch_press_title" + android:entries="@array/hardware_keys_action_entries" + android:entryValues="@array/hardware_keys_action_values" + android:persistent="false" + android:dependency="hardware_keys_enable_custom" /> + + <ListPreference + android:key="hardware_keys_app_switch_long_press" + android:dialogTitle="@string/hardware_keys_app_switch_long_press_title" + android:title="@string/hardware_keys_app_switch_long_press_title" + android:entries="@array/hardware_keys_action_entries" + android:entryValues="@array/hardware_keys_action_values" + android:persistent="false" + android:dependency="hardware_keys_enable_custom" /> + + </PreferenceCategory> + + <PreferenceCategory + android:title="@string/additional_options_title"> + + <CheckBoxPreference + android:key="hardware_keys_show_overflow" + android:title="@string/hardware_keys_show_overflow_title" + android:summary="@string/hardware_keys_show_overflow_summary" + android:persistent="false" + android:defaultValue="false" /> + + </PreferenceCategory> + +</PreferenceScreen> diff --git a/res/xml/ioscheduler_settings.xml b/res/xml/ioscheduler_settings.xml new file mode 100644 index 0000000..e8eb267 --- /dev/null +++ b/res/xml/ioscheduler_settings.xml @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2012 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. +--> + +<PreferenceScreen + xmlns:android="http://schemas.android.com/apk/res/android" + android:title="@string/io_scheds_title" + xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"> + + <ListPreference + android:key="pref_io_sched" + android:dialogTitle="@string/io_sched_title" + android:title="@string/io_sched_title" /> + + <CheckBoxPreference + android:key="pref_io_sched_set_on_boot" + android:title="@string/io_sched_set_on_boot" + android:summary="@string/io_sched_set_on_boot_summary"/> + +</PreferenceScreen> diff --git a/res/xml/language_settings.xml b/res/xml/language_settings.xml index f001486..fafca6d 100644 --- a/res/xml/language_settings.xml +++ b/res/xml/language_settings.xml @@ -67,6 +67,20 @@ android:persistent="false"/> </PreferenceCategory> + <CheckBoxPreference + android:key="status_bar_ime_switcher" + android:title="@string/ime_switcher_notify" + android:summary="@string/ime_switcher_notify_summary" + android:defaultValue="true" + android:persistent="false" /> + <ListPreference + android:key="volume_key_cursor_control" + android:persistent="false" + android:dialogTitle="@string/volume_key_cursor_control_title" + android:title="@string/volume_key_cursor_control_title" + android:entries="@array/volume_key_cursor_control_entries" + android:entryValues="@array/volume_key_cursor_control_values" /> + <PreferenceCategory android:key="voice_category" android:title="@string/voice_category" > @@ -93,6 +107,12 @@ android:dialogTitle="@string/pointer_speed" /> </PreferenceCategory> + <CheckBoxPreference android:key="stylus_icon_enabled" + android:title="@string/stylus_icon_enabled_title" + android:summary="@string/stylus_icon_enabled_summary" + android:defaultValue="false" + android:persistent="false" /> + <PreferenceCategory android:key="game_controller_settings_category" android:title="@string/game_controller_settings_category"> <CheckBoxPreference diff --git a/res/xml/lockscreen_buttons_settings.xml b/res/xml/lockscreen_buttons_settings.xml new file mode 100644 index 0000000..3fa2548 --- /dev/null +++ b/res/xml/lockscreen_buttons_settings.xml @@ -0,0 +1,38 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2012 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. +--> +<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:settings="http://schemas.android.com/apk/res/com.android.settings" + android:title="@string/lockscreen_buttons_title" > + + <ListPreference android:key="lockscreen_long_press_back" + android:title="@string/lockscreen_long_press_back_title" + android:persistent="false" + android:entries="@array/lockscreen_long_key_press_entries" + android:entryValues="@array/lockscreen_long_key_press_values"/> + + <ListPreference android:key="lockscreen_long_press_home" + android:title="@string/lockscreen_long_press_home_title" + android:persistent="false" + android:entries="@array/lockscreen_long_key_press_entries" + android:entryValues="@array/lockscreen_long_key_press_values"/> + + <ListPreference android:key="lockscreen_long_press_menu" + android:title="@string/lockscreen_long_press_menu_title" + android:persistent="false" + android:entries="@array/lockscreen_long_key_press_entries" + android:entryValues="@array/lockscreen_long_key_press_values"/> + +</PreferenceScreen> diff --git a/res/xml/lockscreen_interface_settings.xml b/res/xml/lockscreen_interface_settings.xml new file mode 100644 index 0000000..8877c53 --- /dev/null +++ b/res/xml/lockscreen_interface_settings.xml @@ -0,0 +1,63 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2012 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. +--> +<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:settings="http://schemas.android.com/apk/res/com.android.settings" + android:title="@string/themes_settings_title" > + + <PreferenceScreen + android:key="screen_security" + android:fragment="com.android.settings.SecuritySettings" + android:title="@string/screen_security_category" + android:summary="@string/screen_security_summary"> + <extra android:name="cm_security" android:value="true" /> + </PreferenceScreen> + + <ListPreference + android:key="lockscreen_background" + android:persistent="false" + android:dialogTitle="@string/lockscreen_custom_background_title" + android:title="@string/lockscreen_custom_background_title" + android:entries="@array/lockscreen_background_entries" + android:entryValues="@array/lockscreen_background_values" /> + + <ListPreference + android:key="lockscreen_battery_status" + android:persistent="false" + android:dialogTitle="@string/lockscreen_battery_status_title" + android:title="@string/lockscreen_battery_status_title" + android:entries="@array/lockscreen_battery_status_entries" + android:entryValues="@array/lockscreen_battery_status_values" + android:defaultValue="0" /> + + <CheckBoxPreference + android:key="lockscreen_maximize_widgets" + android:persistent="false" + android:title="@string/lockscreen_maximize_widgets_title" + android:summary="@string/lockscreen_maximize_widgets_summary" /> + + <Preference + android:fragment="com.android.settings.cyanogenmod.LockscreenTargets" + android:key="lockscreen_targets" + android:summary="@string/lockscreen_target_summary" + android:title="@string/lockscreen_target_title" /> + + <PreferenceScreen + android:fragment="com.android.settings.cyanogenmod.LockscreenButtons" + android:key="lockscreen_buttons" + android:title="@string/lockscreen_buttons_title" + android:summary="@string/lockscreen_buttons_summary" /> + +</PreferenceScreen> diff --git a/res/xml/memory_management.xml b/res/xml/memory_management.xml new file mode 100644 index 0000000..187c815 --- /dev/null +++ b/res/xml/memory_management.xml @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2012 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. +--> + +<PreferenceScreen + xmlns:android="http://schemas.android.com/apk/res/android" + android:title="@string/memory_management_title" + xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"> + + <ListPreference + android:key="pref_zram_size" + android:dialogTitle="@string/pref_zram_title" + android:title="@string/pref_zram_title" + android:summary="@string/pref_zram_summary" + android:entries="@array/pref_zram_size_entries" + android:entryValues="@array/pref_zram_size_values" /> + + <CheckBoxPreference + android:key="pref_purgeable_assets" + android:title="@string/pref_purgeable_assets_title" + android:summary="@string/pref_purgeable_assets_summary" /> + + <CheckBoxPreference + android:key="pref_ksm" + android:title="@string/pref_ksm_title" + android:summary="@string/pref_ksm_summary" /> + +</PreferenceScreen> diff --git a/res/xml/notification_light_settings.xml b/res/xml/notification_light_settings.xml new file mode 100644 index 0000000..6b55036 --- /dev/null +++ b/res/xml/notification_light_settings.xml @@ -0,0 +1,60 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2012 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. +--> + +<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"> + + <PreferenceCategory + android:key="general_section" + android:title="@string/notification_light_general_title"> + + <CheckBoxPreference + android:key="pulse_enabled" + android:title="@string/notification_pulse_title" /> + + <com.android.settings.notificationlight.ApplicationLightPreference + android:key="default" + android:title="@string/notification_light_default_value" + android:persistent="false" /> + + <CheckBoxPreference + android:key="custom_enabled" + android:title="@string/notification_light_use_custom" /> + + </PreferenceCategory> + + <PreferenceCategory + android:key="phone_list" + android:title="@string/notification_light_phonelist_title" > + + <com.android.settings.notificationlight.ApplicationLightPreference + android:key="missed_call" + android:title="@string/notification_light_missed_call_title" + android:persistent="false" /> + + <com.android.settings.notificationlight.ApplicationLightPreference + android:key="voicemail" + android:title="@string/notification_light_voicemail_title" + android:persistent="false" /> + + </PreferenceCategory> + + <PreferenceCategory + android:key="applications_list" + android:title="@string/notification_light_applist_title" > + </PreferenceCategory> + +</PreferenceScreen> diff --git a/res/xml/performance_settings.xml b/res/xml/performance_settings.xml new file mode 100644 index 0000000..8644a70 --- /dev/null +++ b/res/xml/performance_settings.xml @@ -0,0 +1,53 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2012 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. +--> + +<PreferenceScreen + xmlns:android="http://schemas.android.com/apk/res/android" + android:title="@string/performance_settings_title" + xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"> + + <PreferenceScreen + android:key="processor" + android:fragment="com.android.settings.cyanogenmod.Processor" + android:title="@string/processor_title" + android:summary="@string/processor_summary" /> + + <PreferenceScreen + android:key="ioscheduler" + android:fragment="com.android.settings.cyanogenmod.IOScheduler" + android:title="@string/io_scheds_title" + android:summary="@string/io_scheds_summary" /> + + <PreferenceScreen + android:key="memory_management" + android:fragment="com.android.settings.cyanogenmod.MemoryManagement" + android:title="@string/memory_management_title" + android:summary="@string/memory_management_summary" /> + + <CheckBoxPreference + android:key="pref_use_16bpp_alpha" + android:title="@string/pref_use_16bpp_alpha_title" + android:summary="@string/pref_use_16bpp_alpha_summary" /> + + <ListPreference + android:key="pref_use_dithering" + android:persistent="false" + android:dialogTitle="@string/pref_use_dithering_title" + android:title="@string/pref_use_dithering_title" + android:entries="@array/dithering_entries" + android:entryValues="@array/dithering_values"/> + +</PreferenceScreen> diff --git a/res/xml/power_menu_settings.xml b/res/xml/power_menu_settings.xml new file mode 100644 index 0000000..89c7e7f --- /dev/null +++ b/res/xml/power_menu_settings.xml @@ -0,0 +1,59 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2012 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. +--> + +<PreferenceScreen + xmlns:android="http://schemas.android.com/apk/res/android" + android:title="@string/power_menu_title" + xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"> + + <CheckBoxPreference + android:key="power_menu_reboot" + android:title="@string/power_menu_reboot_title" + android:defaultValue="true" /> + + <CheckBoxPreference + android:key="power_menu_screenshot" + android:title="@string/power_menu_screenshot_title" + android:defaultValue="false" /> + + <ListPreference + android:key="power_menu_expanded_desktop" + android:title="@string/power_menu_expanded_desktop" + android:entries="@array/expanded_desktop_entries" + android:entryValues="@array/expanded_desktop_values" + android:persistent="false" /> + + <CheckBoxPreference + android:key="power_menu_profiles" + android:title="@string/power_menu_profiles_title" + android:defaultValue="true" /> + + <CheckBoxPreference + android:key="power_menu_airplane" + android:title="@string/power_menu_airplane_title" + android:defaultValue="true" /> + + <CheckBoxPreference + android:key="power_menu_user" + android:title="@string/power_menu_user_title" + android:defaultValue="false" /> + + <CheckBoxPreference + android:key="power_menu_sound" + android:title="@string/power_menu_sound_title" + android:defaultValue="true" /> + +</PreferenceScreen> diff --git a/res/xml/power_widget.xml b/res/xml/power_widget.xml new file mode 100644 index 0000000..b900e85 --- /dev/null +++ b/res/xml/power_widget.xml @@ -0,0 +1,68 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Copyright (C) 2012 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. +--> + +<PreferenceScreen + xmlns:android="http://schemas.android.com/apk/res/android"> + + <PreferenceCategory + android:key="pref_buttons" + android:title="@string/title_buttons" /> + + <PreferenceCategory + android:key="pref_buttons_modes" + android:title="@string/title_button_modes"> + + <MultiSelectListPreference + android:key="pref_brightness_mode" + android:dialogTitle="@string/pref_brightness_mode_title" + android:title="@string/pref_brightness_mode_title" + android:summary="@string/pref_brightness_mode_summary" + android:entries="@array/entries_brightness_widget" + android:entryValues="@array/values_brightness_widget" + android:persistent="false" /> + + <ListPreference + android:key="pref_network_mode" + android:dialogTitle="@string/pref_network_mode_title" + android:title="@string/pref_network_mode_title" + android:entries="@array/entries_network_widget" + android:entryValues="@array/values_network_widget" /> + + <ListPreference + android:key="pref_screentimeout_mode" + android:dialogTitle="@string/pref_screentimeout_mode_title" + android:title="@string/pref_screentimeout_mode_title" + android:entries="@array/entries_screentimeout_widget" + android:entryValues="@array/values_screentimeout_widget" /> + + <MultiSelectListPreference + android:key="pref_ring_mode" + android:dialogTitle="@string/pref_ring_mode_title" + android:title="@string/pref_ring_mode_title" + android:summary="@string/pref_ring_mode_summary" + android:entries="@array/entries_ring_widget" + android:entryValues="@array/values_ring_widget" + android:persistent="false" /> + + <ListPreference + android:key="pref_flash_mode" + android:dialogTitle="@string/pref_flash_mode_title" + android:title="@string/pref_flash_mode_title" + android:entries="@array/entries_flash_widget" + android:entryValues="@array/values_flash_widget" /> + </PreferenceCategory> + +</PreferenceScreen> diff --git a/res/xml/power_widget_settings.xml b/res/xml/power_widget_settings.xml new file mode 100644 index 0000000..7b464d3 --- /dev/null +++ b/res/xml/power_widget_settings.xml @@ -0,0 +1,72 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2012 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. +--> + +<PreferenceScreen + xmlns:android="http://schemas.android.com/apk/res/android"> + + <!-- Notification drawer Power Widget --> + <PreferenceCategory + android:title="@string/power_widget_title"> + + <CheckBoxPreference + android:key="expanded_widget" + android:title="@string/title_expanded_widget" + android:defaultValue="false" /> + + <PreferenceScreen + android:key="widget_picker" + android:title="@string/title_widget_picker" + android:summary="@string/summary_widget_picker" + android:dependency="expanded_widget" + android:fragment="com.android.settings.cyanogenmod.PowerWidget$PowerWidgetChooser"> + </PreferenceScreen> + + <PreferenceScreen + android:key="widget_order" + android:title="@string/title_widget_order" + android:summary="@string/summary_widget_order" + android:dependency="expanded_widget" + android:fragment="com.android.settings.cyanogenmod.PowerWidget$PowerWidgetOrder"> + </PreferenceScreen> + + </PreferenceCategory> + + <PreferenceCategory + android:title="@string/power_widget_behavior"> + + <CheckBoxPreference + android:key="expanded_hide_onchange" + android:title="@string/title_expanded_hide_onchange" + android:defaultValue="false" + android:dependency="expanded_widget" /> + + <CheckBoxPreference + android:key="expanded_hide_scrollbar" + android:title="@string/title_expanded_hide_scrollbar" + android:defaultValue="false" + android:dependency="expanded_widget" /> + + <ListPreference + android:key="expanded_haptic_feedback" + android:dialogTitle="@string/expanded_haptic_feedback_title" + android:title="@string/expanded_haptic_feedback_title" + android:entries="@array/haptic_feedback_entries" + android:entryValues="@array/haptic_feedback_values" + android:dependency="expanded_widget" /> + + </PreferenceCategory> + +</PreferenceScreen>
\ No newline at end of file diff --git a/res/xml/preview_data.xml b/res/xml/preview_data.xml new file mode 100644 index 0000000..966e501 --- /dev/null +++ b/res/xml/preview_data.xml @@ -0,0 +1,53 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2012 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. +--> + +<PreferenceScreen + xmlns:android="http://schemas.android.com/apk/res/android" + android:title="@string/preview_data_title" + xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"> + + <Preference + android:key="preview_id" + style="?android:preferenceInformationStyle" + android:title="@string/preview_id_title" + android:summary="%s" /> + + <Preference + android:key="preview_device" + style="?android:preferenceInformationStyle" + android:title="@string/preview_device_title" + android:summary="%s" /> + + <Preference + android:key="preview_version" + style="?android:preferenceInformationStyle" + android:title="@string/preview_version_title" + android:summary="%s" /> + + <Preference + android:key="preview_country" + style="?android:preferenceInformationStyle" + android:title="@string/preview_country_title" + android:summary="%s" /> + + <Preference + android:key="preview_carrier" + style="?android:preferenceInformationStyle" + android:title="@string/preview_carrier_title" + android:summary="%s" /> + +</PreferenceScreen> + diff --git a/res/xml/processor_settings.xml b/res/xml/processor_settings.xml new file mode 100644 index 0000000..7d0b0ee --- /dev/null +++ b/res/xml/processor_settings.xml @@ -0,0 +1,48 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2012 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. +--> + +<PreferenceScreen + xmlns:android="http://schemas.android.com/apk/res/android" + android:title="@string/processor_title" + xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"> + + <Preference + android:key="pref_cpu_freq_cur" + style="?android:preferenceInformationStyle" + android:title="@string/cpu_cur_freq_title" + android:selectable="false" /> + + <ListPreference + android:key="pref_cpu_gov" + android:dialogTitle="@string/cpu_governors_title" + android:title="@string/cpu_governors_title" /> + + <ListPreference + android:key="pref_cpu_freq_min" + android:dialogTitle="@string/cpu_min_freq_title" + android:title="@string/cpu_min_freq_title" /> + + <ListPreference + android:key="pref_cpu_freq_max" + android:dialogTitle="@string/cpu_max_freq_title" + android:title="@string/cpu_max_freq_title" /> + + <CheckBoxPreference + android:key="pref_cpu_set_on_boot" + android:title="@string/cpu_set_on_boot" + android:summary="@string/cpu_set_on_boot_summary"/> + +</PreferenceScreen> diff --git a/res/xml/profile_config.xml b/res/xml/profile_config.xml new file mode 100644 index 0000000..6777a30 --- /dev/null +++ b/res/xml/profile_config.xml @@ -0,0 +1,42 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2012 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. +--> + +<PreferenceScreen + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"> + + <PreferenceCategory + android:key="profile_general_section" + android:title="@string/profile_name_title"> + </PreferenceCategory> + + <PreferenceCategory + android:key="profile_connectionoverrides" + android:title="@string/profile_connectionoverrides_title" /> + + <PreferenceCategory + android:key="profile_volumeoverrides" + android:title="@string/profile_volumeoverrides_title" /> + + <PreferenceCategory + android:key="profile_system_settings" + android:title="@string/profile_system_settings_title" /> + + <PreferenceCategory + android:key="profile_appgroups" + android:title="@string/profile_appgroups_title" /> + +</PreferenceScreen> diff --git a/res/xml/profile_settings.xml b/res/xml/profile_settings.xml new file mode 100644 index 0000000..8bce716 --- /dev/null +++ b/res/xml/profile_settings.xml @@ -0,0 +1,71 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2012 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. +--> + +<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" + android:title="@string/profile_settings" + android:key="profile_settings" + xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"> + + <ListPreference + android:key="sound_mode" + android:title="@string/sound_mode" + android:summary="@string/sound_mode" + android:entries="@array/profile_entries" + android:persistent="false" + android:entryValues="@array/profile_values" /> + + <com.android.settings.profiles.ProfileRingtonePreference + android:key="soundtone" + android:title="@string/soundtone_title" + android:summary="@string/soundtone_summary" + android:dialogTitle="@string/soundtone_title" + android:persistent="false" + android:ringtoneType="notification" /> + + <ListPreference + android:key="ringer_mode" + android:title="@string/ringer_mode" + android:summary="@string/ringer_mode" + android:entries="@array/profile_entries" + android:persistent="false" + android:entryValues="@array/profile_values" /> + + <com.android.settings.profiles.ProfileRingtonePreference + android:key="ringtone" + android:title="@string/ringtone_title" + android:summary="@string/ringtone_summary" + android:dialogTitle="@string/ringtone_title" + android:persistent="false" + android:ringtoneType="ringtone" /> + + <ListPreference + android:key="vibrate_mode" + android:title="@string/vibrate_mode" + android:summary="@string/sound_mode" + android:entries="@array/profile_entries" + android:persistent="false" + android:entryValues="@array/profile_values" /> + + <ListPreference + android:key="lights_mode" + android:title="@string/lights_mode" + android:summary="@string/sound_mode" + android:entries="@array/profile_entries" + android:persistent="false" + android:entryValues="@array/profile_values" /> + + +</PreferenceScreen> diff --git a/res/xml/profiles_settings.xml b/res/xml/profiles_settings.xml new file mode 100644 index 0000000..d3c477c --- /dev/null +++ b/res/xml/profiles_settings.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2012 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. +--> + +<PreferenceScreen + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:settings="http://schemas.android.com/apk/res/com.android.settings" + android:key="profiles_list" /> diff --git a/res/xml/quick_settings_panel_settings.xml b/res/xml/quick_settings_panel_settings.xml new file mode 100644 index 0000000..cb06cb2 --- /dev/null +++ b/res/xml/quick_settings_panel_settings.xml @@ -0,0 +1,105 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2012 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. +--> + +<PreferenceScreen + xmlns:android="http://schemas.android.com/apk/res/android" + android:title="@string/quick_settings_title"> + + <PreferenceCategory + android:key="pref_general_settings" + android:title="@string/title_general" > + + <ListPreference + android:key="quick_pulldown" + android:title="@string/title_quick_pulldown" + android:entries="@array/quick_pulldown_entries" + android:entryValues="@array/quick_pulldown_values" + android:persistent="false" /> + + <CheckBoxPreference + android:key="collapse_panel" + android:title="@string/title_collapse_panel" + android:summary="@string/summary_collapse_panel" /> + + </PreferenceCategory> + + <PreferenceCategory + android:key="static_tiles" + android:title="@string/title_static_tiles" > + + <PreferenceScreen + android:key="tile_picker" + android:title="@string/tile_picker_title" + android:summary="@string/tile_picker_summary" + android:fragment="com.android.settings.cyanogenmod.QuickSettingsTiles" /> + + <MultiSelectListPreference + android:key="pref_ring_mode" + android:dialogTitle="@string/pref_ring_mode_title" + android:title="@string/pref_ring_mode_title" + android:summary="@string/pref_ring_mode_summary" + android:entries="@array/entries_ring_widget" + android:entryValues="@array/values_ring_widget" /> + + <ListPreference + android:key="pref_network_mode" + android:dialogTitle="@string/pref_network_mode_title" + android:title="@string/pref_network_mode_title" + android:entries="@array/entries_network_widget" + android:entryValues="@array/values_network_widget" /> + + <ListPreference + android:key="pref_screentimeout_mode" + android:dialogTitle="@string/pref_screentimeout_mode_title" + android:title="@string/pref_screentimeout_mode_title" + android:entries="@array/entries_screentimeout_widget" + android:entryValues="@array/values_screentimeout_widget" /> + + </PreferenceCategory> + + <PreferenceCategory + android:key="pref_dynamic_tiles" + android:title="@string/title_dynamic_tiles" > + + <Preference + style="?android:preferenceInformationStyle" + android:title="@string/dynamic_tiles_note_title" + android:summary="@string/dynamic_tiles_note_summary" + android:selectable="false" /> + + <CheckBoxPreference + android:key="dynamic_alarm" + android:title="@string/title_dynamic_alarm" /> + + <CheckBoxPreference + android:key="dynamic_bugreport" + android:title="@string/title_dynamic_bugreport" /> + + <CheckBoxPreference + android:key="dynamic_ime" + android:title="@string/title_dynamic_ime" /> + + <CheckBoxPreference + android:key="dynamic_usbtether" + android:title="@string/title_dynamic_usbtether" /> + + <CheckBoxPreference + android:key="dynamic_wifi" + android:title="@string/title_dynamic_wifi" /> + + </PreferenceCategory> + +</PreferenceScreen> diff --git a/res/xml/quiet_hours_settings.xml b/res/xml/quiet_hours_settings.xml new file mode 100644 index 0000000..8a859b0 --- /dev/null +++ b/res/xml/quiet_hours_settings.xml @@ -0,0 +1,68 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Copyright (C) 2012 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. +--> + +<PreferenceScreen + xmlns:android="http://schemas.android.com/apk/res/android" + android:title="@string/quiet_hours_title" + xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"> + + <Preference + android:key="quiet_hours_note" + style="?android:preferenceInformationStyle" + android:title="@string/quiet_hours_note_title" + android:summary="@string/quiet_hours_note_summary" + android:selectable="false" /> + + <CheckBoxPreference + android:key="quiet_hours_enabled" + android:title="@string/quiet_hours_enabled" + android:summaryOn="@string/quiet_hours_enabled_on" + android:summaryOff="@string/quiet_hours_enabled_off" + android:defaultValue="false" /> + + <com.android.settings.cyanogenmod.TimeRangePreference + android:key="quiet_hours_timerange" + android:dependency="quiet_hours_enabled" /> + + <CheckBoxPreference + android:key="quiet_hours_mute" + android:title="@string/quiet_hours_mute" + android:summaryOn="@string/quiet_hours_mute_on" + android:summaryOff="@string/quiet_hours_mute_off" + android:dependency="quiet_hours_enabled" /> + + <CheckBoxPreference + android:key="quiet_hours_haptic" + android:title="@string/quiet_hours_haptic" + android:summaryOn="@string/quiet_hours_haptic_on" + android:summaryOff="@string/quiet_hours_haptic_off" + android:dependency="quiet_hours_enabled" /> + + <CheckBoxPreference + android:key="quiet_hours_still" + android:title="@string/quiet_hours_still" + android:summaryOn="@string/quiet_hours_still_on" + android:summaryOff="@string/quiet_hours_still_off" + android:dependency="quiet_hours_enabled" /> + + <CheckBoxPreference + android:key="quiet_hours_dim" + android:title="@string/quiet_hours_dim" + android:summaryOn="@string/quiet_hours_dim_on" + android:summaryOff="@string/quiet_hours_dim_off" + android:dependency="quiet_hours_enabled" /> + +</PreferenceScreen>
\ No newline at end of file diff --git a/res/xml/security_settings.xml b/res/xml/security_settings.xml index 228b7f1..abdfe23 100644 --- a/res/xml/security_settings.xml +++ b/res/xml/security_settings.xml @@ -14,7 +14,8 @@ limitations under the License. --> -<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" +<PreferenceScreen + xmlns:android="http://schemas.android.com/apk/res/android" android:title="@string/security_settings_title"> </PreferenceScreen> diff --git a/res/xml/security_settings_app_cyanogenmod.xml b/res/xml/security_settings_app_cyanogenmod.xml new file mode 100644 index 0000000..8aaddcd --- /dev/null +++ b/res/xml/security_settings_app_cyanogenmod.xml @@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2012 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. +--> + +<PreferenceScreen + xmlns:android="http://schemas.android.com/apk/res/android"> + + <PreferenceCategory + android:key="app_security" + android:title="@string/app_security_title"> + + <ListPreference + android:key="sms_security_check_limit" + android:dialogTitle="@string/sms_security_check_limit_title" + android:title="@string/sms_security_check_limit_title" + android:entries="@array/sms_security_check_limit_entries" + android:entryValues="@array/sms_security_check_limit_values" + android:defaultValue="30" /> + + </PreferenceCategory> + +</PreferenceScreen> diff --git a/res/xml/security_settings_cyanogenmod.xml b/res/xml/security_settings_cyanogenmod.xml new file mode 100644 index 0000000..56a2c60 --- /dev/null +++ b/res/xml/security_settings_cyanogenmod.xml @@ -0,0 +1,47 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2012 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. +--> + +<PreferenceScreen + xmlns:android="http://schemas.android.com/apk/res/android"> + + <PreferenceCategory + android:key="additional_options" + android:title="@string/additional_options_title"> + + <CheckBoxPreference + android:key="menu_unlock" + android:title="@string/unlock_menu_unlock_title" + android:summary="@string/unlock_menu_unlock_summary" /> + + <CheckBoxPreference + android:key="home_unlock" + android:title="@string/unlock_home_unlock_title" + android:summary="@string/unlock_home_unlock_summary" /> + + <CheckBoxPreference + android:key="quick_unlock_control" + android:title="@string/unlock_quick_unlock_control_title" + android:summary="@string/unlock_quick_unlock_control_summary" /> + + <CheckBoxPreference + android:key="lockscreen_vibrate" + android:persistent="false" + android:title="@string/lockscreen_vibrate_enabled_title" + android:summary="@string/lockscreen_vibrate_enabled_head"/> + + </PreferenceCategory> + +</PreferenceScreen> diff --git a/res/xml/security_settings_pattern_size.xml b/res/xml/security_settings_pattern_size.xml new file mode 100644 index 0000000..458efb6 --- /dev/null +++ b/res/xml/security_settings_pattern_size.xml @@ -0,0 +1,36 @@ +<!-- Copyright (C) 2012 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. +--> + +<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> + <PreferenceScreen + android:key="lock_pattern_size_3" + android:title="@string/lock_pattern_size_3" + android:persistent="false"/> + + <PreferenceScreen + android:key="lock_pattern_size_4" + android:title="@string/lock_pattern_size_4" + android:persistent="false"/> + + <PreferenceScreen + android:key="lock_pattern_size_5" + android:title="@string/lock_pattern_size_5" + android:persistent="false"/> + + <PreferenceScreen + android:key="lock_pattern_size_6" + android:title="@string/lock_pattern_size_6" + android:persistent="false"/> +</PreferenceScreen> diff --git a/res/xml/security_settings_slide_delay_cyanogenmod.xml b/res/xml/security_settings_slide_delay_cyanogenmod.xml new file mode 100644 index 0000000..5051f45 --- /dev/null +++ b/res/xml/security_settings_slide_delay_cyanogenmod.xml @@ -0,0 +1,46 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2012 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. +--> + +<PreferenceScreen + xmlns:android="http://schemas.android.com/apk/res/android"> + + <PreferenceCategory + android:key="delay_and_timeout" + android:title="@string/delay_and_timeout_title"> + + <CheckBoxPreference + android:key="slide_lock_delay_toggle" + android:title="@string/slide_lock_delay_title" /> + + <ListPreference + android:key="slide_lock_timeout_delay" + android:dialogTitle="@string/slide_lock_timeout_delay_title" + android:title="@string/slide_lock_timeout_delay_title" + android:entries="@array/lockscreen_delay_entries" + android:entryValues="@array/lockscreen_delay_values" + android:dependency="slide_lock_delay_toggle" /> + + <ListPreference + android:key="slide_lock_screenoff_delay" + android:dialogTitle="@string/slide_lock_screenoff_delay_title" + android:title="@string/slide_lock_screenoff_delay_title" + android:entries="@array/lockscreen_delay_entries" + android:entryValues="@array/lockscreen_delay_values" + android:dependency="slide_lock_delay_toggle" /> + + </PreferenceCategory> + +</PreferenceScreen> diff --git a/res/xml/settings_headers.xml b/res/xml/settings_headers.xml index 05fa31f..156d63f 100644 --- a/res/xml/settings_headers.xml +++ b/res/xml/settings_headers.xml @@ -58,6 +58,41 @@ android:fragment="com.android.settings.WirelessSettings" android:icon="@drawable/empty_icon" /> + <!-- INTERFACE --> + <header android:id="@+id/interface_section" + android:title="@string/header_category_interface" /> + + <!-- Launcher --> + <header + android:id="@+id/launcher_settings" + android:title="@string/launcher_settings_title" + android:icon="@drawable/ic_settings_cmlauncher" /> + + <!-- Lock screen --> + <header + android:id="@+id/lock_screen_settings" + android:fragment="com.android.settings.cyanogenmod.LockscreenInterface" + android:title="@string/lock_screen_title" + android:icon="@drawable/ic_settings_lockscreen" /> + + <!-- Themes --> + <header + android:id="@+id/themes_settings" + android:icon="@drawable/ic_settings_themes" + android:title="@string/themes_settings_title"> + <intent + android:action="android.intent.action.MAIN" + android:targetPackage="com.tmobile.themechooser" + android:targetClass="com.tmobile.themechooser.ThemeChooser" /> + </header> + + <!-- System --> + <header + android:id="@+id/system_settings" + android:icon="@drawable/ic_settings_system" + android:fragment="com.android.settings.cyanogenmod.SystemSettings" + android:title="@string/system_settings_title" /> + <!-- DEVICE --> <header android:id="@+id/device_section" android:title="@string/header_category_device" /> @@ -111,11 +146,28 @@ <intent android:action="com.android.settings.MANUFACTURER_APPLICATION_SETTING" /> </header> + <!-- DeviceParts Device Specific settings --> + <header + android:id="@+id/advanced_settings" + android:title="@string/advanced_settings_title" + android:icon="@drawable/ic_settings_advanced"> + <intent + android:action="com.cyanogenmod.action.LAUNCH_DEVICE_SETTINGS" + android:targetPackage="com.cyanogenmod.settings.device" + android:targetClass="com.cyanogenmod.settings.device.DeviceSettings" /> + </header> <!-- PERSONAL --> <header android:id="@+id/personal_section" android:title="@string/header_category_personal" /> + <!-- Profiles --> + <header + android:id="@+id/profiles_settings" + android:icon="@drawable/ic_settings_profiles" + android:fragment="com.android.settings.profiles.ProfilesSettings" + android:title="@string/profiles_settings_title" /> + <!-- Location --> <header android:fragment="com.android.settings.LocationSettings" @@ -182,6 +234,13 @@ android:icon="@drawable/ic_settings_development" android:title="@string/development_settings_title" /> + <!-- Performance --> + <header + android:id="@+id/performance_settings" + android:fragment="com.android.settings.cyanogenmod.PerformanceSettings" + android:icon="@drawable/ic_settings_performance" + android:title="@string/performance_settings_title" /> + <!-- About Device --> <header android:id="@+id/about_settings" diff --git a/res/xml/sound_settings.xml b/res/xml/sound_settings.xml index 26e2e20..ba75c25 100644 --- a/res/xml/sound_settings.xml +++ b/res/xml/sound_settings.xml @@ -26,12 +26,27 @@ android:persistent="false" android:streamType="ring" /> + <ListPreference + android:key="ring_mode" + android:title="@string/ring_mode_title" + android:entries="@array/ring_mode_entries" + android:entryValues="@array/ring_mode_values" /> + + <ListPreference + android:key="volume_overlay" + android:title="@string/volume_overlay_title" + android:entries="@array/volume_overlay_entries" + android:entryValues="@array/volume_overlay_values" /> + <Preference android:key="musicfx" - android:title="@string/musicfx_title"> - <intent android:targetPackage="com.android.musicfx" - android:targetClass="com.android.musicfx.ControlPanelPicker" /> - </Preference> + android:title="@string/musicfx_title" /> + + <!-- Quiet hours --> + <PreferenceScreen + android:key="quiet_hours" + android:fragment="com.android.settings.cyanogenmod.QuietHours" + android:title="@string/quiet_hours_title" /> <PreferenceCategory android:key="category_calls_and_notification" @@ -50,6 +65,13 @@ android:title="@string/vibrate_when_ringing_title" android:persistent="false" /> + <com.android.settings.IncreasingRingPreference + android:key="increasing_ring" + android:title="@string/increasing_ring_title" + android:dialogTitle="@string/increasing_ring_title" + android:persistent="false" + android:streamType="ring" /> + <PreferenceCategory android:title="@string/sound_category_system_title"/> @@ -82,12 +104,24 @@ android:title="@string/haptic_feedback_enable_title" android:defaultValue="true" /> + <CheckBoxPreference + android:key="volbtn_music_controls" + android:title="@string/volbtn_music_controls_title" + android:summary="@string/volbtn_music_controls_summary" + android:persistent="false" /> + <ListPreference android:key="emergency_tone" android:title="@string/emergency_tone_title" android:entries="@array/emergency_tone_entries" android:entryValues="@array/emergency_tone_values" /> + <CheckBoxPreference + android:key="notification_convert_sound_to_vibration" + android:title="@string/notification_convert_sound_to_vibration_title" + android:summary="@string/notification_convert_sound_to_vibration_summary" + android:defaultValue="true" /> + <!-- Dock --> <PreferenceCategory android:key="dock_category" @@ -109,4 +143,18 @@ android:title="@string/dock_sounds_enable_title" android:defaultValue="false" /> + <PreferenceCategory + android:title="@string/headset_category_title"/> + + <CheckBoxPreference + android:key="headset_connect_player" + android:title="@string/headset_connect_player_title" + android:persistent="false" /> + + <CheckBoxPreference + android:key="safe_headset_volume" + android:title="@string/safe_headset_volume_title" + android:summary="@string/safe_headset_volume_summary" + android:defaultValue="true" /> + </PreferenceScreen> diff --git a/res/xml/status_bar.xml b/res/xml/status_bar.xml new file mode 100644 index 0000000..b996c6f --- /dev/null +++ b/res/xml/status_bar.xml @@ -0,0 +1,70 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Copyright (C) 2012 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. +--> + +<PreferenceScreen + xmlns:android="http://schemas.android.com/apk/res/android" + android:title="@string/status_bar_title"> + + <!-- Status bar tweaks --> + <PreferenceCategory + android:title="@string/status_bar_clock_title"> + + <CheckBoxPreference + android:key="status_bar_show_clock" + android:title="@string/status_bar_show_clock_title" + android:defaultValue="true" /> + + <ListPreference + android:key="status_bar_am_pm" + android:dialogTitle="@string/status_bar_am_pm_title" + android:title="@string/status_bar_am_pm_title" + android:entries="@array/entries_status_bar_am_pm" + android:entryValues="@array/values_status_bar_am_pm" /> + + </PreferenceCategory> + + <PreferenceCategory + android:key="status_bar_general" + android:title="@string/status_bar_general_title"> + + <ListPreference + android:key="status_bar_battery" + android:dialogTitle="@string/status_bar_battery_title" + android:title="@string/status_bar_battery_title" + android:entries="@array/entries_status_bar_battery" + android:entryValues="@array/values_status_bar_battery" /> + + <ListPreference + android:key="status_bar_signal" + android:dialogTitle="@string/status_bar_signal_text_title" + android:title="@string/status_bar_signal_text_title" + android:entries="@array/entries_status_bar_signal" + android:entryValues="@array/values_status_bar_signal" /> + + <CheckBoxPreference + android:key="status_bar_brightness_control" + android:title="@string/status_bar_toggle_brightness" + android:summary="@string/status_bar_toggle_brightness_summary" + android:defaultValue="false" /> + + <CheckBoxPreference + android:key="status_bar_notif_count" + android:title="@string/status_bar_notif_count_title" + android:summary="@string/status_bar_notif_count_summary" + android:defaultValue="false" /> + </PreferenceCategory> + +</PreferenceScreen> diff --git a/res/xml/system_settings.xml b/res/xml/system_settings.xml new file mode 100644 index 0000000..f20f190 --- /dev/null +++ b/res/xml/system_settings.xml @@ -0,0 +1,72 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2012 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. +--> + +<PreferenceScreen + xmlns:android="http://schemas.android.com/apk/res/android" + android:title="@string/system_interface_title" + xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"> + + <PreferenceScreen + android:key="status_bar" + android:fragment="com.android.settings.cyanogenmod.StatusBar" + android:title="@string/status_bar_title" /> + + <PreferenceScreen + android:key="quick_settings_panel" + android:fragment="com.android.settings.cyanogenmod.QuickSettings" + android:title="@string/quick_settings_panel_title" /> + + <PreferenceScreen + android:key="notification_drawer" + android:fragment="com.android.settings.cyanogenmod.PowerWidget" + android:title="@string/notification_drawer_title" /> + + <PreferenceScreen + android:key="power_menu" + android:title="@string/power_menu_title" + android:fragment="com.android.settings.cyanogenmod.PowerMenu" /> + + <!-- Lock clock --> + <PreferenceScreen + android:key="lock_clock" + android:title="@string/lock_clock_title" + android:summary="@string/lock_clock_summary"> + <intent android:action="android.intent.action.MAIN" + android:targetPackage="com.cyanogenmod.lockclock" + android:targetClass="com.cyanogenmod.lockclock.preference.Preferences" /> + </PreferenceScreen> + + <PreferenceScreen + android:key="navigation_bar" + android:fragment="com.android.settings.cyanogenmod.NavBar" + android:title="@string/navigation_bar_title" /> + + <PreferenceScreen + android:key="notification_pulse" + android:title="@string/notification_pulse_title" + android:fragment="com.android.settings.notificationlight.NotificationLightSettings" /> + + <PreferenceScreen + android:key="battery_light" + android:title="@string/battery_light_title" + android:fragment="com.android.settings.notificationlight.BatteryLightSettings" /> + + <PreferenceScreen + android:key="hardware_keys" + android:fragment="com.android.settings.cyanogenmod.HardwareKeys" + android:title="@string/hardware_keys_title" /> + +</PreferenceScreen> diff --git a/res/xml/usb_settings.xml b/res/xml/usb_settings.xml index 4d6ccc9..d81dbc2 100644 --- a/res/xml/usb_settings.xml +++ b/res/xml/usb_settings.xml @@ -32,4 +32,10 @@ android:summary="@string/usb_ptp_summary" /> + <CheckBoxPreference + android:key="usb_mass_storage" + android:title="@string/usb_mass_storage_title" + android:summary="@string/usb_mass_storage_summary" + /> + </PreferenceScreen> diff --git a/res/xml/wifi_advanced_settings.xml b/res/xml/wifi_advanced_settings.xml index 10eab29..083942b 100644 --- a/res/xml/wifi_advanced_settings.xml +++ b/res/xml/wifi_advanced_settings.xml @@ -48,6 +48,23 @@ android:entryValues="@array/wifi_frequency_band_values" /> + <ListPreference + android:key="wifi_countrycode" + android:title="@string/wifi_setting_countrycode_title" + android:summary="@string/wifi_setting_countrycode_summary" + android:persistent="false" + android:entries="@array/wifi_countrycode_entries" + android:entryValues="@array/wifi_countrycode_values" + /> + + <PreferenceScreen + android:key="wifi_priority" + android:title="@string/wifi_setting_priority_title" + android:summary="@string/wifi_setting_priority_summary" + android:persistent="false" + android:fragment="com.android.settings.wifi.WifiPriority" + /> + <CheckBoxPreference android:key="suspend_optimizations" android:title="@string/wifi_suspend_optimizations" diff --git a/src/com/android/settings/AccessibilitySettings.java b/src/com/android/settings/AccessibilitySettings.java index b6556a9..dd382e0 100644 --- a/src/com/android/settings/AccessibilitySettings.java +++ b/src/com/android/settings/AccessibilitySettings.java @@ -102,6 +102,8 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements "toggle_large_text_preference"; private static final String TOGGLE_POWER_BUTTON_ENDS_CALL_PREFERENCE = "toggle_power_button_ends_call_preference"; + private static final String TOGGLE_HOME_BUTTON_ANSWERS_CALL_PREFERENCE = + "toggle_home_button_answers_call_preference"; private static final String TOGGLE_LOCK_SCREEN_ROTATION_PREFERENCE = "toggle_lock_screen_rotation_preference"; private static final String TOGGLE_SPEAK_PASSWORD_PREFERENCE = @@ -176,6 +178,7 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements private CheckBoxPreference mToggleLargeTextPreference; private CheckBoxPreference mTogglePowerButtonEndsCallPreference; + private CheckBoxPreference mToggleHomeButtonAnswersCallPreference; private CheckBoxPreference mToggleLockScreenRotationPreference; private CheckBoxPreference mToggleSpeakPasswordPreference; private ListPreference mSelectLongPressTimeoutPreference; @@ -236,6 +239,9 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements } else if (mTogglePowerButtonEndsCallPreference == preference) { handleTogglePowerButtonEndsCallPreferenceClick(); return true; + } else if (mToggleHomeButtonAnswersCallPreference == preference) { + handleToggleHomeButtonAnswersCallPreferenceClick(); + return true; } else if (mToggleLockScreenRotationPreference == preference) { handleLockScreenRotationPreferenceClick(); return true; @@ -269,6 +275,14 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements : Settings.Secure.INCALL_POWER_BUTTON_BEHAVIOR_SCREEN_OFF)); } + private void handleToggleHomeButtonAnswersCallPreferenceClick() { + Settings.Secure.putInt(getContentResolver(), + Settings.Secure.RING_HOME_BUTTON_BEHAVIOR, + (mToggleHomeButtonAnswersCallPreference.isChecked() + ? Settings.Secure.RING_HOME_BUTTON_BEHAVIOR_ANSWER + : Settings.Secure.RING_HOME_BUTTON_BEHAVIOR_DO_NOTHING)); + } + private void handleLockScreenRotationPreferenceClick() { RotationPolicy.setRotationLockForAccessibility(getActivity(), !mToggleLockScreenRotationPreference.isChecked()); @@ -320,6 +334,14 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements mSystemsCategory.removePreference(mTogglePowerButtonEndsCallPreference); } + // Home button answers calls. + mToggleHomeButtonAnswersCallPreference = + (CheckBoxPreference) findPreference(TOGGLE_HOME_BUTTON_ANSWERS_CALL_PREFERENCE); + if (!KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_HOME) + || !Utils.isVoiceCapable(getActivity())) { + mSystemsCategory.removePreference(mToggleHomeButtonAnswersCallPreference); + } + // Lock screen rotation. mToggleLockScreenRotationPreference = (CheckBoxPreference) findPreference(TOGGLE_LOCK_SCREEN_ROTATION_PREFERENCE); @@ -489,6 +511,17 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements mTogglePowerButtonEndsCallPreference.setChecked(powerButtonEndsCall); } + // Home button answers calls. + if (KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_HOME) + && Utils.isVoiceCapable(getActivity())) { + final int incallHomeBehavior = Settings.Secure.getInt(getContentResolver(), + Settings.Secure.RING_HOME_BUTTON_BEHAVIOR, + Settings.Secure.RING_HOME_BUTTON_BEHAVIOR_DEFAULT); + final boolean homeButtonAnswersCall = + (incallHomeBehavior == Settings.Secure.RING_HOME_BUTTON_BEHAVIOR_ANSWER); + mToggleHomeButtonAnswersCallPreference.setChecked(homeButtonAnswersCall); + } + // Auto-rotate screen updateLockScreenRotationCheckbox(); @@ -1024,7 +1057,7 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements ToggleSwitch toggleSwitch = new ToggleSwitch(activity); final int padding = activity.getResources().getDimensionPixelSize( R.dimen.action_bar_switch_padding); - toggleSwitch.setPadding(0, 0, padding, 0); + toggleSwitch.setPaddingRelative(0, 0, padding, 0); activity.getActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM, ActionBar.DISPLAY_SHOW_CUSTOM); activity.getActionBar().setCustomView(toggleSwitch, diff --git a/src/com/android/settings/ApnEditor.java b/src/com/android/settings/ApnEditor.java index 79b6d15..30ba54e 100644 --- a/src/com/android/settings/ApnEditor.java +++ b/src/com/android/settings/ApnEditor.java @@ -16,10 +16,12 @@ package com.android.settings; +import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; import android.content.ContentUris; import android.content.ContentValues; +import android.content.CursorLoader; import android.content.Intent; import android.content.SharedPreferences; import android.content.res.Resources; @@ -27,16 +29,15 @@ import android.database.Cursor; import android.net.Uri; import android.os.Bundle; import android.os.SystemProperties; +import android.preference.CheckBoxPreference; import android.preference.EditTextPreference; import android.preference.ListPreference; -import android.preference.CheckBoxPreference; import android.preference.Preference; -import android.preference.PreferenceActivity; import android.provider.Telephony; import android.telephony.TelephonyManager; import android.util.Log; -import android.view.KeyEvent; import android.view.Menu; +import android.view.MenuInflater; import android.view.MenuItem; import com.android.internal.telephony.Phone; @@ -45,7 +46,7 @@ import com.android.internal.telephony.RILConstants; import com.android.internal.telephony.TelephonyProperties; -public class ApnEditor extends PreferenceActivity +public class ApnEditor extends SettingsPreferenceFragment implements SharedPreferences.OnSharedPreferenceChangeListener, Preference.OnPreferenceChangeListener { @@ -57,6 +58,8 @@ public class ApnEditor extends PreferenceActivity private final static String KEY_ROAMING_PROTOCOL = "apn_roaming_protocol"; private final static String KEY_CARRIER_ENABLED = "carrier_enabled"; private final static String KEY_BEARER = "bearer"; + protected static final String EDIT_ACTION = "edit_action"; + protected static final String EDIT_DATA = "edit_data"; private static final int MENU_DELETE = Menu.FIRST; private static final int MENU_SAVE = Menu.FIRST + 1; @@ -140,7 +143,7 @@ public class ApnEditor extends PreferenceActivity @Override - protected void onCreate(Bundle icicle) { + public void onCreate(Bundle icicle) { super.onCreate(icicle); addPreferencesFromResource(R.xml.apn_editor); @@ -176,16 +179,22 @@ public class ApnEditor extends PreferenceActivity mRes = getResources(); - final Intent intent = getIntent(); - final String action = intent.getAction(); + final Intent intent = getActivity().getIntent(); + String action = intent.getAction(); + Bundle fragArgs = getArguments(); + + if (fragArgs != null && fragArgs.containsKey(EDIT_ACTION)) { + mUri = Uri.parse(fragArgs.getString(EDIT_DATA)); + action = fragArgs.getString(EDIT_ACTION); + } else { + mUri = intent.getData(); + } mFirstTime = icicle == null; - if (action.equals(Intent.ACTION_EDIT)) { - mUri = intent.getData(); - } else if (action.equals(Intent.ACTION_INSERT)) { + if (action.equals(Intent.ACTION_INSERT)) { if (mFirstTime || icicle.getInt(SAVED_POS) == 0) { - mUri = getContentResolver().insert(intent.getData(), new ContentValues()); + mUri = getContentResolver().insert(mUri, new ContentValues()); } else { mUri = ContentUris.withAppendedId(Telephony.Carriers.CONTENT_URI, icicle.getInt(SAVED_POS)); @@ -196,24 +205,26 @@ public class ApnEditor extends PreferenceActivity // original activity if they requested a result. if (mUri == null) { Log.w(TAG, "Failed to insert new telephony provider into " - + getIntent().getData()); + + getActivity().getIntent().getData()); finish(); return; } // The new entry was created, so assume all will end well and // set the result to be returned. - setResult(RESULT_OK, (new Intent()).setAction(mUri.toString())); + getActivity().setResult(Activity.RESULT_OK, (new Intent()).setAction(mUri.toString())); - } else { + } else if (!action.equals(Intent.ACTION_EDIT)) { finish(); return; } - mCursor = managedQuery(mUri, sProjection, null, null); + CursorLoader qCursor = new CursorLoader(getActivity(), mUri, sProjection, null, null, null); + mCursor = qCursor.loadInBackground(); mCursor.moveToFirst(); fillUi(); + setHasOptionsMenu(true); } @Override @@ -381,8 +392,8 @@ public class ApnEditor extends PreferenceActivity } @Override - public boolean onCreateOptionsMenu(Menu menu) { - super.onCreateOptionsMenu(menu); + public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { + super.onCreateOptionsMenu(menu, inflater); // If it's a new APN, then cancel will delete the new entry in onPause if (!mNewApn) { menu.add(0, MENU_DELETE, 0, R.string.menu_delete) @@ -392,7 +403,6 @@ public class ApnEditor extends PreferenceActivity .setIcon(android.R.drawable.ic_menu_save); menu.add(0, MENU_CANCEL, 0, R.string.menu_cancel) .setIcon(android.R.drawable.ic_menu_close_clear_cancel); - return true; } @Override @@ -417,20 +427,7 @@ public class ApnEditor extends PreferenceActivity } @Override - public boolean onKeyDown(int keyCode, KeyEvent event) { - switch (keyCode) { - case KeyEvent.KEYCODE_BACK: { - if (validateAndSave(false)) { - finish(); - } - return true; - } - } - return super.onKeyDown(keyCode, event); - } - - @Override - protected void onSaveInstanceState(Bundle icicle) { + public void onSaveInstanceState(Bundle icicle) { super.onSaveInstanceState(icicle); if (validateAndSave(true)) { icicle.putInt(SAVED_POS, mCursor.getInt(ID_INDEX)); @@ -535,12 +532,12 @@ public class ApnEditor extends PreferenceActivity } @Override - protected Dialog onCreateDialog(int id) { + public Dialog onCreateDialog(int id) { if (id == ERROR_DIALOG_ID) { String msg = getErrorMsg(); - return new AlertDialog.Builder(this) + return new AlertDialog.Builder(getActivity()) .setTitle(R.string.error_title) .setPositiveButton(android.R.string.ok, null) .setMessage(msg) @@ -550,19 +547,6 @@ public class ApnEditor extends PreferenceActivity return super.onCreateDialog(id); } - @Override - protected void onPrepareDialog(int id, Dialog dialog) { - super.onPrepareDialog(id, dialog); - - if (id == ERROR_DIALOG_ID) { - String msg = getErrorMsg(); - - if (msg != null) { - ((AlertDialog)dialog).setMessage(msg); - } - } - } - private void deleteApn() { getContentResolver().delete(mUri, null, null); finish(); diff --git a/src/com/android/settings/ApnPreference.java b/src/com/android/settings/ApnPreference.java index 710eda2..ff24d29 100644 --- a/src/com/android/settings/ApnPreference.java +++ b/src/com/android/settings/ApnPreference.java @@ -16,23 +16,17 @@ package com.android.settings; -import android.content.ContentUris; import android.content.Context; -import android.content.Intent; -import android.net.Uri; import android.preference.Preference; -import android.provider.Telephony; import android.util.AttributeSet; import android.util.Log; import android.view.View; import android.view.ViewGroup; -import android.view.View.OnClickListener; import android.widget.CompoundButton; import android.widget.RadioButton; -import android.widget.RelativeLayout; public class ApnPreference extends Preference implements - CompoundButton.OnCheckedChangeListener, OnClickListener { + CompoundButton.OnCheckedChangeListener { final static String TAG = "ApnPreference"; /** @@ -71,9 +65,10 @@ public class ApnPreference extends Preference implements public View getView(View convertView, ViewGroup parent) { View view = super.getView(convertView, parent); - View widget = view.findViewById(R.id.apn_radiobutton); + View widget = view.findViewById(android.R.id.checkbox); if ((widget != null) && widget instanceof RadioButton) { RadioButton rb = (RadioButton) widget; + rb.setClickable(true); if (mSelectable) { rb.setOnCheckedChangeListener(this); @@ -91,16 +86,11 @@ public class ApnPreference extends Preference implements } } - View textLayout = view.findViewById(R.id.text_layout); - if ((textLayout != null) && textLayout instanceof RelativeLayout) { - textLayout.setOnClickListener(this); - } - return view; } private void init() { - setLayoutResource(R.layout.apn_preference_layout); + setWidgetLayoutResource(R.layout.preference_profiles_widget); } public boolean isChecked() { @@ -130,17 +120,6 @@ public class ApnPreference extends Preference implements } } - public void onClick(android.view.View v) { - if ((v != null) && (R.id.text_layout == v.getId())) { - Context context = getContext(); - if (context != null) { - int pos = Integer.parseInt(getKey()); - Uri url = ContentUris.withAppendedId(Telephony.Carriers.CONTENT_URI, pos); - context.startActivity(new Intent(Intent.ACTION_EDIT, url)); - } - } - } - public void setSelectable(boolean selectable) { mSelectable = selectable; } diff --git a/src/com/android/settings/ApnSettings.java b/src/com/android/settings/ApnSettings.java index 56ee7a9..9784b2f 100644 --- a/src/com/android/settings/ApnSettings.java +++ b/src/com/android/settings/ApnSettings.java @@ -16,6 +16,8 @@ package com.android.settings; +import java.util.ArrayList; + import android.app.Dialog; import android.app.ProgressDialog; import android.content.BroadcastReceiver; @@ -39,6 +41,7 @@ import android.preference.PreferenceScreen; import android.provider.Telephony; import android.util.Log; import android.view.Menu; +import android.view.MenuInflater; import android.view.MenuItem; import android.widget.Toast; @@ -47,9 +50,7 @@ import com.android.internal.telephony.PhoneConstants; import com.android.internal.telephony.TelephonyIntents; import com.android.internal.telephony.TelephonyProperties; -import java.util.ArrayList; - -public class ApnSettings extends PreferenceActivity implements +public class ApnSettings extends SettingsPreferenceFragment implements Preference.OnPreferenceChangeListener { static final String TAG = "ApnSettings"; @@ -116,21 +117,20 @@ public class ApnSettings extends PreferenceActivity implements } @Override - protected void onCreate(Bundle icicle) { + public void onCreate(Bundle icicle) { super.onCreate(icicle); - addPreferencesFromResource(R.xml.apn_settings); - getListView().setItemsCanFocus(true); mMobileStateFilter = new IntentFilter( TelephonyIntents.ACTION_ANY_DATA_CONNECTION_STATE_CHANGED); + setHasOptionsMenu(true); } @Override - protected void onResume() { + public void onResume() { super.onResume(); - registerReceiver(mMobileStateReceiver, mMobileStateFilter); + getActivity().registerReceiver(mMobileStateReceiver, mMobileStateFilter); if (!mRestoreDefaultApnMode) { fillList(); @@ -140,14 +140,13 @@ public class ApnSettings extends PreferenceActivity implements } @Override - protected void onPause() { + public void onPause() { super.onPause(); - - unregisterReceiver(mMobileStateReceiver); + getActivity().unregisterReceiver(mMobileStateReceiver); } @Override - protected void onDestroy() { + public void onDestroy() { super.onDestroy(); if (mRestoreDefaultApnThread != null) { @@ -164,7 +163,7 @@ public class ApnSettings extends PreferenceActivity implements "_id", "name", "apn", "type"}, where, null, Telephony.Carriers.DEFAULT_SORT_ORDER); - PreferenceGroup apnList = (PreferenceGroup) findPreference("apn_list"); + PreferenceGroup apnList = (PreferenceGroup) getPreferenceScreen().findPreference("apn_list"); apnList.removeAll(); ArrayList<Preference> mmsApnList = new ArrayList<Preference>(); @@ -177,7 +176,7 @@ public class ApnSettings extends PreferenceActivity implements String key = cursor.getString(ID_INDEX); String type = cursor.getString(TYPES_INDEX); - ApnPreference pref = new ApnPreference(this); + ApnPreference pref = new ApnPreference(getActivity()); pref.setKey(key); pref.setTitle(name); @@ -205,15 +204,15 @@ public class ApnSettings extends PreferenceActivity implements } @Override - public boolean onCreateOptionsMenu(Menu menu) { - super.onCreateOptionsMenu(menu); + public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { + super.onCreateOptionsMenu(menu, inflater); menu.add(0, MENU_NEW, 0, getResources().getString(R.string.menu_new)) - .setIcon(android.R.drawable.ic_menu_add); + .setIcon(android.R.drawable.ic_menu_add) + .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); menu.add(0, MENU_RESTORE, 0, getResources().getString(R.string.menu_restore)) .setIcon(android.R.drawable.ic_menu_upload); - return true; } @Override @@ -231,14 +230,22 @@ public class ApnSettings extends PreferenceActivity implements } private void addNewApn() { - startActivity(new Intent(Intent.ACTION_INSERT, Telephony.Carriers.CONTENT_URI)); + Bundle editBundle = new Bundle(); + editBundle.putString(ApnEditor.EDIT_ACTION, Intent.ACTION_INSERT); + editBundle.putString(ApnEditor.EDIT_DATA, Telephony.Carriers.CONTENT_URI.toSafeString()); + ((PreferenceActivity) getActivity()).startPreferencePanel(ApnEditor.class.getName(), editBundle, + R.string.apn_edit, null, null, 0); } @Override public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) { int pos = Integer.parseInt(preference.getKey()); Uri url = ContentUris.withAppendedId(Telephony.Carriers.CONTENT_URI, pos); - startActivity(new Intent(Intent.ACTION_EDIT, url)); + Bundle editBundle = new Bundle(); + editBundle.putString(ApnEditor.EDIT_ACTION, Intent.ACTION_EDIT); + editBundle.putString(ApnEditor.EDIT_DATA, url.toSafeString()); + ((PreferenceActivity) getActivity()).startPreferencePanel(ApnEditor.class.getName(), editBundle, + R.string.apn_edit, null, null, 0); return true; } @@ -275,6 +282,12 @@ public class ApnSettings extends PreferenceActivity implements return key; } + @Override + protected void showDialog(int dialogId) { + removeDialog(dialogId); + super.showDialog(dialogId); + } + private boolean restoreDefaultApn() { showDialog(DIALOG_RESTORE_DEFAULTAPN); mRestoreDefaultApnMode = true; @@ -305,9 +318,9 @@ public class ApnSettings extends PreferenceActivity implements fillList(); getPreferenceScreen().setEnabled(true); mRestoreDefaultApnMode = false; - dismissDialog(DIALOG_RESTORE_DEFAULTAPN); + removeDialog(DIALOG_RESTORE_DEFAULTAPN); Toast.makeText( - ApnSettings.this, + getActivity(), getResources().getString( R.string.restore_default_apn_completed), Toast.LENGTH_LONG).show(); @@ -329,7 +342,7 @@ public class ApnSettings extends PreferenceActivity implements switch (msg.what) { case EVENT_RESTORE_DEFAULTAPN_START: ContentResolver resolver = getContentResolver(); - resolver.delete(DEFAULTAPN_URI, null, null); + resolver.delete(DEFAULTAPN_URI, null, null); mRestoreApnUiHandler .sendEmptyMessage(EVENT_RESTORE_DEFAULTAPN_COMPLETE); break; @@ -338,20 +351,16 @@ public class ApnSettings extends PreferenceActivity implements } @Override - protected Dialog onCreateDialog(int id) { + public Dialog onCreateDialog(int id) { if (id == DIALOG_RESTORE_DEFAULTAPN) { - ProgressDialog dialog = new ProgressDialog(this); + ProgressDialog dialog = new ProgressDialog(getActivity()); dialog.setMessage(getResources().getString(R.string.restore_default_apn)); dialog.setCancelable(false); + dialog.setCanceledOnTouchOutside(false); + getPreferenceScreen().setEnabled(false); return dialog; } return null; } - @Override - protected void onPrepareDialog(int id, Dialog dialog) { - if (id == DIALOG_RESTORE_DEFAULTAPN) { - getPreferenceScreen().setEnabled(false); - } - } } diff --git a/src/com/android/settings/BrightnessPreference.java b/src/com/android/settings/BrightnessPreference.java index 2cf6b43..e4c6e90 100644 --- a/src/com/android/settings/BrightnessPreference.java +++ b/src/com/android/settings/BrightnessPreference.java @@ -120,6 +120,7 @@ public class BrightnessPreference extends SeekBarDialogPreference implements mCheckBox.setChecked(mAutomaticMode); mSeekBar.setEnabled(!mAutomaticMode || USE_SCREEN_AUTO_BRIGHTNESS_ADJUSTMENT); } else { + mCheckBox.setEnabled(false); mSeekBar.setEnabled(true); } mSeekBar.setOnSeekBarChangeListener(this); diff --git a/src/com/android/settings/ChooseLockGeneric.java b/src/com/android/settings/ChooseLockGeneric.java index 14671d1..f67213c 100644 --- a/src/com/android/settings/ChooseLockGeneric.java +++ b/src/com/android/settings/ChooseLockGeneric.java @@ -383,7 +383,7 @@ public class ChooseLockGeneric extends PreferenceActivity { startActivity(intent); } } else if (quality == DevicePolicyManager.PASSWORD_QUALITY_SOMETHING) { - Intent intent = new Intent(getActivity(), ChooseLockPattern.class); + Intent intent = new Intent(getActivity(), ChooseLockPatternSize.class); intent.putExtra("key_lock_method", "pattern"); intent.putExtra(CONFIRM_CREDENTIALS, false); intent.putExtra(LockPatternUtils.LOCKSCREEN_BIOMETRIC_WEAK_FALLBACK, diff --git a/src/com/android/settings/ChooseLockPattern.java b/src/com/android/settings/ChooseLockPattern.java index f9c01b6..b7c14dd 100644 --- a/src/com/android/settings/ChooseLockPattern.java +++ b/src/com/android/settings/ChooseLockPattern.java @@ -103,16 +103,12 @@ public class ChooseLockPattern extends PreferenceActivity { private TextView mFooterRightButton; protected List<LockPatternView.Cell> mChosenPattern = null; + private byte mPatternSize = LockPatternUtils.PATTERN_SIZE_DEFAULT; + /** * The patten used during the help screen to show how to draw a pattern. */ - private final List<LockPatternView.Cell> mAnimatePattern = - Collections.unmodifiableList(Lists.newArrayList( - LockPatternView.Cell.of(0, 0), - LockPatternView.Cell.of(0, 1), - LockPatternView.Cell.of(1, 1), - LockPatternView.Cell.of(2, 1) - )); + private List<LockPatternView.Cell> mAnimatePattern; @Override public void onActivityResult(int requestCode, int resultCode, @@ -307,6 +303,15 @@ public class ChooseLockPattern extends PreferenceActivity { public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + mPatternSize = getActivity().getIntent().getByteExtra("pattern_size", LockPatternUtils.PATTERN_SIZE_DEFAULT); + LockPatternView.Cell.updateSize(mPatternSize); + mAnimatePattern = Collections.unmodifiableList(Lists.newArrayList( + LockPatternView.Cell.of(0, 0, mPatternSize), + LockPatternView.Cell.of(0, 1, mPatternSize), + LockPatternView.Cell.of(1, 1, mPatternSize), + LockPatternView.Cell.of(2, 1, mPatternSize) + )); + // setupViews() View view = inflater.inflate(R.layout.choose_lock_pattern, null); mHeaderText = (TextView) view.findViewById(R.id.headerText); @@ -314,6 +319,7 @@ public class ChooseLockPattern extends PreferenceActivity { mLockPatternView.setOnPatternListener(mChooseNewLockPatternListener); mLockPatternView.setTactileFeedbackEnabled( mChooseLockSettingsHelper.utils().isTactileFeedbackEnabled()); + mLockPatternView.setLockPatternSize(mPatternSize); mFooterText = (TextView) view.findViewById(R.id.footerText); @@ -351,7 +357,8 @@ public class ChooseLockPattern extends PreferenceActivity { // restore from previous state final String patternString = savedInstanceState.getString(KEY_PATTERN_CHOICE); if (patternString != null) { - mChosenPattern = LockPatternUtils.stringToPattern(patternString); + LockPatternUtils utils = mChooseLockSettingsHelper.utils(); + mChosenPattern = utils.stringToPattern(patternString); } updateStage(Stage.values()[savedInstanceState.getInt(KEY_UI_STAGE)]); } @@ -417,8 +424,9 @@ public class ChooseLockPattern extends PreferenceActivity { outState.putInt(KEY_UI_STAGE, mUiStage.ordinal()); if (mChosenPattern != null) { + LockPatternUtils utils = mChooseLockSettingsHelper.utils(); outState.putString(KEY_PATTERN_CHOICE, - LockPatternUtils.patternToString(mChosenPattern)); + utils.patternToString(mChosenPattern)); } } @@ -516,6 +524,7 @@ public class ChooseLockPattern extends PreferenceActivity { final boolean isFallback = getActivity().getIntent() .getBooleanExtra(LockPatternUtils.LOCKSCREEN_BIOMETRIC_WEAK_FALLBACK, false); + utils.setLockPatternSize(mPatternSize); utils.saveLockPattern(mChosenPattern, isFallback); utils.setLockPatternEnabled(true); diff --git a/src/com/android/settings/ChooseLockPatternSize.java b/src/com/android/settings/ChooseLockPatternSize.java new file mode 100644 index 0000000..cc5834b --- /dev/null +++ b/src/com/android/settings/ChooseLockPatternSize.java @@ -0,0 +1,79 @@ +/* + * Copyright (C) 2012 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.android.settings; + +import android.content.Intent; +import android.os.Bundle; +import android.preference.Preference; +import android.preference.PreferenceActivity; +import android.preference.PreferenceScreen; + +import com.android.internal.widget.LockPatternUtils; + +public class ChooseLockPatternSize extends PreferenceActivity { + + @Override + public Intent getIntent() { + Intent modIntent = new Intent(super.getIntent()); + modIntent.putExtra(EXTRA_SHOW_FRAGMENT, ChooseLockPatternSizeFragment.class.getName()); + modIntent.putExtra(EXTRA_NO_HEADERS, true); + return modIntent; + } + + public static class ChooseLockPatternSizeFragment extends SettingsPreferenceFragment { + private ChooseLockSettingsHelper mChooseLockSettingsHelper; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + mChooseLockSettingsHelper = new ChooseLockSettingsHelper(this.getActivity()); + addPreferencesFromResource(R.xml.security_settings_pattern_size); + } + + @Override + public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, + Preference preference) { + final String key = preference.getKey(); + + byte patternSize; + if ("lock_pattern_size_4".equals(key)) { + patternSize = 4; + } else if ("lock_pattern_size_5".equals(key)) { + patternSize = 5; + } else if ("lock_pattern_size_6".equals(key)) { + patternSize = 6; + } else { + patternSize = 3; + } + + final boolean isFallback = getActivity().getIntent() + .getBooleanExtra(LockPatternUtils.LOCKSCREEN_BIOMETRIC_WEAK_FALLBACK, false); + + Intent intent = new Intent(getActivity(), ChooseLockPatternSize.class); + intent.putExtra("pattern_size", patternSize); + intent.putExtra("key_lock_method", "pattern"); + intent.putExtra("confirm_credentials", false); + intent.putExtra(LockPatternUtils.LOCKSCREEN_BIOMETRIC_WEAK_FALLBACK, + isFallback); + intent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT); + startActivity(intent); + + finish(); + return true; + } + } +} diff --git a/src/com/android/settings/ConfirmLockPattern.java b/src/com/android/settings/ConfirmLockPattern.java index dd375cc..b2cd568 100644 --- a/src/com/android/settings/ConfirmLockPattern.java +++ b/src/com/android/settings/ConfirmLockPattern.java @@ -131,6 +131,7 @@ public class ConfirmLockPattern extends PreferenceActivity { } mLockPatternView.setTactileFeedbackEnabled(mLockPatternUtils.isTactileFeedbackEnabled()); + mLockPatternView.setLockPatternSize(mLockPatternUtils.getLockPatternSize()); mLockPatternView.setOnPatternListener(mConfirmExistingLockPatternListener); updateStage(Stage.NeedToUnlock); @@ -262,7 +263,7 @@ public class ConfirmLockPattern extends PreferenceActivity { Intent intent = new Intent(); intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_PASSWORD, - LockPatternUtils.patternToString(pattern)); + mLockPatternUtils.patternToString(pattern)); getActivity().setResult(Activity.RESULT_OK, intent); getActivity().finish(); diff --git a/src/com/android/settings/DataUsageSummary.java b/src/com/android/settings/DataUsageSummary.java index ae67d3a..0f76179 100644 --- a/src/com/android/settings/DataUsageSummary.java +++ b/src/com/android/settings/DataUsageSummary.java @@ -1183,8 +1183,8 @@ public class DataUsageSummary extends Fragment { final String rangePhrase = formatDateRange(context, start, end); final int summaryRes; - if (TAB_MOBILE.equals(mCurrentTab) || TAB_3G.equals(mCurrentApp) - || TAB_4G.equals(mCurrentApp)) { + if (TAB_MOBILE.equals(mCurrentTab) || TAB_3G.equals(mCurrentTab) + || TAB_4G.equals(mCurrentTab)) { summaryRes = R.string.data_usage_total_during_range_mobile; } else { summaryRes = R.string.data_usage_total_during_range; diff --git a/src/com/android/settings/DevelopmentSettings.java b/src/com/android/settings/DevelopmentSettings.java index 5e7573f..5ebc287 100644 --- a/src/com/android/settings/DevelopmentSettings.java +++ b/src/com/android/settings/DevelopmentSettings.java @@ -1,5 +1,6 @@ /* * Copyright (C) 2008 The Android Open Source Project + * Portions 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. @@ -35,6 +36,9 @@ import android.content.Intent; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; +import android.net.NetworkUtils; +import android.net.wifi.IWifiManager; +import android.net.wifi.WifiInfo; import android.os.AsyncTask; import android.os.BatteryManager; import android.os.Build; @@ -75,6 +79,7 @@ import java.util.List; public class DevelopmentSettings extends PreferenceFragment implements DialogInterface.OnClickListener, DialogInterface.OnDismissListener, OnPreferenceChangeListener, CompoundButton.OnCheckedChangeListener { + private static final String TAG = "DevelopmentSettings"; /** * Preference file were development settings prefs are stored. @@ -87,6 +92,8 @@ public class DevelopmentSettings extends PreferenceFragment public static final String PREF_SHOW = "show"; private static final String ENABLE_ADB = "enable_adb"; + private static final String ADB_NOTIFY = "adb_notify"; + private static final String ADB_TCPIP = "adb_over_network"; private static final String KEEP_SCREEN_ON = "keep_screen_on"; private static final String ALLOW_MOCK_LOCATION = "allow_mock_location"; private static final String HDCP_CHECKING_KEY = "hdcp_checking"; @@ -122,18 +129,25 @@ public class DevelopmentSettings extends PreferenceFragment private static final String DEBUG_DEBUGGING_CATEGORY_KEY = "debug_debugging_category"; private static final String OPENGL_TRACES_KEY = "enable_opengl_traces"; + private static final String ROOT_ACCESS_KEY = "root_access"; + private static final String ROOT_ACCESS_PROPERTY = "persist.sys.root_access"; + private static final String ENABLE_TRACES_KEY = "enable_traces"; private static final String IMMEDIATELY_DESTROY_ACTIVITIES_KEY = "immediately_destroy_activities"; private static final String APP_PROCESS_LIMIT_KEY = "app_process_limit"; + private static final String KILL_APP_LONGPRESS_BACK = "kill_app_longpress_back"; + private static final String SHOW_ALL_ANRS_KEY = "show_all_anrs"; private static final String TAG_CONFIRM_ENFORCE = "confirm_enforce"; private static final String PACKAGE_MIME_TYPE = "application/vnd.android.package-archive"; + private static final String DEVELOPMENT_TOOLS = "development_tools"; + private static final int RESULT_DEBUG_APP = 1000; private IWindowManager mWindowManager; @@ -146,8 +160,10 @@ public class DevelopmentSettings extends PreferenceFragment private boolean mDontPokeProperties; private CheckBoxPreference mEnableAdb; + private CheckBoxPreference mAdbNotify; private Preference mBugreport; private CheckBoxPreference mBugreportInPower; + private CheckBoxPreference mAdbOverNetwork; private CheckBoxPreference mKeepScreenOn; private CheckBoxPreference mEnforceReadExternal; private CheckBoxPreference mAllowMockLocation; @@ -182,6 +198,11 @@ public class DevelopmentSettings extends PreferenceFragment private ListPreference mAppProcessLimit; private CheckBoxPreference mShowAllANRs; + private CheckBoxPreference mKillAppLongpressBack; + + private ListPreference mRootAccess; + private Object mSelectedRootValue; + private PreferenceScreen mDevelopmentTools; private final ArrayList<Preference> mAllPrefs = new ArrayList<Preference>(); private final ArrayList<CheckBoxPreference> mResetCbPrefs @@ -193,6 +214,8 @@ public class DevelopmentSettings extends PreferenceFragment private boolean mDialogClicked; private Dialog mEnableDialog; private Dialog mAdbDialog; + private Dialog mAdbTcpDialog; + private Dialog mRootDialog; @Override public void onCreate(Bundle icicle) { @@ -206,8 +229,10 @@ public class DevelopmentSettings extends PreferenceFragment addPreferencesFromResource(R.xml.development_prefs); mEnableAdb = findAndInitCheckboxPref(ENABLE_ADB); + mAdbNotify = findAndInitCheckboxPref(ADB_NOTIFY); mBugreport = findPreference(BUGREPORT); mBugreportInPower = findAndInitCheckboxPref(BUGREPORT_IN_POWER_KEY); + mAdbOverNetwork = findAndInitCheckboxPref(ADB_TCPIP); mKeepScreenOn = findAndInitCheckboxPref(KEEP_SCREEN_ON); mEnforceReadExternal = findAndInitCheckboxPref(ENFORCE_READ_EXTERNAL); mAllowMockLocation = findAndInitCheckboxPref(ALLOW_MOCK_LOCATION); @@ -283,11 +308,22 @@ public class DevelopmentSettings extends PreferenceFragment mAllPrefs.add(mShowAllANRs); mResetCbPrefs.add(mShowAllANRs); + mKillAppLongpressBack = findAndInitCheckboxPref(KILL_APP_LONGPRESS_BACK); + Preference hdcpChecking = findPreference(HDCP_CHECKING_KEY); if (hdcpChecking != null) { mAllPrefs.add(hdcpChecking); } removeHdcpOptionsForProduction(); + + mRootAccess = (ListPreference) findPreference(ROOT_ACCESS_KEY); + mRootAccess.setOnPreferenceChangeListener(this); + if (!removeRootOptionsIfRequired()) { + mAllPrefs.add(mRootAccess); + } + + mDevelopmentTools = (PreferenceScreen) findPreference(DEVELOPMENT_TOOLS); + mAllPrefs.add(mDevelopmentTools); } private void disableForUser(Preference pref) { @@ -307,6 +343,18 @@ public class DevelopmentSettings extends PreferenceFragment return pref; } + private boolean removeRootOptionsIfRequired() { + // user builds don't get root, and eng always gets root + if (!Build.IS_DEBUGGABLE || "eng".equals(Build.TYPE)) { + if (mRootAccess != null) { + getPreferenceScreen().removePreference(mRootAccess); + return true; + } + } + + return false; + } + @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); @@ -316,7 +364,7 @@ public class DevelopmentSettings extends PreferenceFragment final int padding = activity.getResources().getDimensionPixelSize( R.dimen.action_bar_switch_padding); - mEnabledSwitch.setPadding(0, 0, padding, 0); + mEnabledSwitch.setPaddingRelative(0, 0, padding, 0); mEnabledSwitch.setOnCheckedChangeListener(this); } @@ -390,6 +438,8 @@ public class DevelopmentSettings extends PreferenceFragment mEnabledSwitch.setChecked(mLastEnabledState); setPrefsEnabledState(mLastEnabledState); } + + updateKillAppLongpressBackOptions(); } void updateCheckBox(CheckBoxPreference checkBox, boolean value) { @@ -403,11 +453,14 @@ public class DevelopmentSettings extends PreferenceFragment mHaveDebugSettings = false; updateCheckBox(mEnableAdb, Settings.Global.getInt(cr, Settings.Global.ADB_ENABLED, 0) != 0); + mAdbNotify.setChecked(Settings.Secure.getInt(cr, + Settings.Secure.ADB_NOTIFY, 1) != 0); updateCheckBox(mBugreportInPower, Settings.Secure.getInt(cr, Settings.Secure.BUGREPORT_IN_POWER_MENU, 0) != 0); updateCheckBox(mKeepScreenOn, Settings.Global.getInt(cr, Settings.Global.STAY_ON_WHILE_PLUGGED_IN, 0) != 0); updateCheckBox(mEnforceReadExternal, isPermissionEnforced(READ_EXTERNAL_STORAGE)); + updateAdbOverNetwork(); updateCheckBox(mAllowMockLocation, Settings.Secure.getInt(cr, Settings.Secure.ALLOW_MOCK_LOCATION, 0) != 0); updateHdcpValues(); @@ -434,6 +487,35 @@ public class DevelopmentSettings extends PreferenceFragment updateShowAllANRsOptions(); updateVerifyAppsOverUsbOptions(); updateBugreportOptions(); + updateRootAccessOptions(); + } + + private void updateAdbOverNetwork() { + int port = Settings.Secure.getInt(getActivity().getContentResolver(), + Settings.Secure.ADB_PORT, 0); + boolean enabled = port > 0; + + updateCheckBox(mAdbOverNetwork, enabled); + + WifiInfo wifiInfo = null; + + if (enabled) { + IWifiManager wifiManager = IWifiManager.Stub.asInterface( + ServiceManager.getService(Context.WIFI_SERVICE)); + try { + wifiInfo = wifiManager.getConnectionInfo(); + } catch (RemoteException e) { + Log.e(TAG, "wifiManager, getConnectionInfo()", e); + } + } + + if (wifiInfo != null) { + String hostAddress = NetworkUtils.intToInetAddress( + wifiInfo.getIpAddress()).getHostAddress(); + mAdbOverNetwork.setSummary(hostAddress + ":" + String.valueOf(port)); + } else { + mAdbOverNetwork.setSummary(R.string.adb_over_network_summary); + } } private void resetDangerousOptions() { @@ -446,6 +528,7 @@ public class DevelopmentSettings extends PreferenceFragment } } resetDebuggerOptions(); + resetRootAccessOptions(); writeAnimationScaleOption(0, mWindowAnimationScale, null); writeAnimationScaleOption(1, mTransitionAnimationScale, null); writeAnimationScaleOption(2, mAnimatorDurationScale, null); @@ -458,6 +541,40 @@ public class DevelopmentSettings extends PreferenceFragment pokeSystemProperties(); } + private void updateRootAccessOptions() { + String value = SystemProperties.get(ROOT_ACCESS_PROPERTY, "1"); + mRootAccess.setValue(value); + mRootAccess.setSummary(getResources() + .getStringArray(R.array.root_access_entries)[Integer.valueOf(value)]); + } + + private void writeRootAccessOptions(Object newValue) { + String oldValue = SystemProperties.get(ROOT_ACCESS_PROPERTY, "1"); + SystemProperties.set(ROOT_ACCESS_PROPERTY, newValue.toString()); + if (Integer.valueOf(newValue.toString()) < 2 && !oldValue.equals(newValue) + && "1".equals(SystemProperties.get("service.adb.root", "0"))) { + SystemProperties.set("service.adb.root", "0"); + Settings.Secure.putInt(getActivity().getContentResolver(), + Settings.Secure.ADB_ENABLED, 0); + Settings.Secure.putInt(getActivity().getContentResolver(), + Settings.Secure.ADB_ENABLED, 1); + } + updateRootAccessOptions(); + } + + private void resetRootAccessOptions() { + String oldValue = SystemProperties.get(ROOT_ACCESS_PROPERTY, "1"); + SystemProperties.set(ROOT_ACCESS_PROPERTY, "1"); + if (!oldValue.equals("1") && "1".equals(SystemProperties.get("service.adb.root", "0"))) { + SystemProperties.set("service.adb.root", "0"); + Settings.Secure.putInt(getActivity().getContentResolver(), + Settings.Secure.ADB_ENABLED, 0); + Settings.Secure.putInt(getActivity().getContentResolver(), + Settings.Secure.ADB_ENABLED, 1); + } + updateRootAccessOptions(); + } + private void updateHdcpValues() { int index = 1; // Defaults to drm-only. Needs to match with R.array.hdcp_checking_values ListPreference hdcpChecking = (ListPreference) findPreference(HDCP_CHECKING_KEY); @@ -477,6 +594,17 @@ public class DevelopmentSettings extends PreferenceFragment } } + private void writeKillAppLongpressBackOptions() { + Settings.Secure.putInt(getActivity().getContentResolver(), + Settings.Secure.KILL_APP_LONGPRESS_BACK, + mKillAppLongpressBack.isChecked() ? 1 : 0); + } + + private void updateKillAppLongpressBackOptions() { + mKillAppLongpressBack.setChecked(Settings.Secure.getInt( + getActivity().getContentResolver(), Settings.Secure.KILL_APP_LONGPRESS_BACK, 0) != 0); + } + private void updatePasswordSummary() { try { if (mBackupManager.hasBackupPassword()) { @@ -692,7 +820,7 @@ public class DevelopmentSettings extends PreferenceFragment private void updateHardwareUiOptions() { updateCheckBox(mForceHardwareUi, SystemProperties.getBoolean(HARDWARE_UI_PROPERTY, false)); } - + private void writeHardwareUiOptions() { SystemProperties.set(HARDWARE_UI_PROPERTY, mForceHardwareUi.isChecked() ? "true" : "false"); pokeSystemProperties(); @@ -766,7 +894,7 @@ public class DevelopmentSettings extends PreferenceFragment updateCheckBox(mShowCpuUsage, Settings.Global.getInt(getActivity().getContentResolver(), Settings.Global.SHOW_PROCESSES, 0) != 0); } - + private void writeCpuUsageOptions() { boolean value = mShowCpuUsage.isChecked(); Settings.Global.putInt(getActivity().getContentResolver(), @@ -966,7 +1094,9 @@ public class DevelopmentSettings extends PreferenceFragment if (isChecked != mLastEnabledState) { if (isChecked) { mDialogClicked = false; - if (mEnableDialog != null) dismissDialogs(); + if (mEnableDialog != null) { + dismissDialogs(); + } mEnableDialog = new AlertDialog.Builder(getActivity()).setMessage( getActivity().getResources().getString( R.string.dev_settings_warning_message)) @@ -982,6 +1112,11 @@ public class DevelopmentSettings extends PreferenceFragment Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 0); mLastEnabledState = isChecked; setPrefsEnabledState(mLastEnabledState); + + // Hide development settings from the Settings menu (Android 4.2 behaviour) + getActivity().getSharedPreferences(PREF_FILE, Context.MODE_PRIVATE).edit() + .putBoolean(PREF_SHOW, false) + .apply(); } } } @@ -1010,7 +1145,9 @@ public class DevelopmentSettings extends PreferenceFragment if (preference == mEnableAdb) { if (mEnableAdb.isChecked()) { mDialogClicked = false; - if (mAdbDialog != null) dismissDialogs(); + if (mAdbDialog != null) { + dismissDialogs(); + } mAdbDialog = new AlertDialog.Builder(getActivity()).setMessage( getActivity().getResources().getString(R.string.adb_warning_message)) .setTitle(R.string.adb_warning_title) @@ -1030,6 +1167,28 @@ public class DevelopmentSettings extends PreferenceFragment Settings.Secure.putInt(getActivity().getContentResolver(), Settings.Secure.BUGREPORT_IN_POWER_MENU, mBugreportInPower.isChecked() ? 1 : 0); + } else if (preference == mAdbNotify) { + Settings.Secure.putInt(getActivity().getContentResolver(), + Settings.Secure.ADB_NOTIFY, + mAdbNotify.isChecked() ? 1 : 0); + } else if (preference == mAdbOverNetwork) { + if (mAdbOverNetwork.isChecked()) { + if (mAdbTcpDialog != null) { + dismissDialogs(); + } + mAdbTcpDialog = new AlertDialog.Builder(getActivity()).setMessage( + getResources().getString(R.string.adb_over_network_warning)) + .setTitle(R.string.adb_over_network) + .setIconAttribute(android.R.attr.alertDialogIcon) + .setPositiveButton(android.R.string.yes, this) + .setNegativeButton(android.R.string.no, this) + .show(); + mAdbTcpDialog.setOnDismissListener(this); + } else { + Settings.Secure.putInt(getActivity().getContentResolver(), + Settings.Secure.ADB_PORT, -1); + updateAdbOverNetwork(); + } } else if (preference == mKeepScreenOn) { Settings.Global.putInt(getActivity().getContentResolver(), Settings.Global.STAY_ON_WHILE_PLUGGED_IN, @@ -1081,6 +1240,8 @@ public class DevelopmentSettings extends PreferenceFragment writeShowHwOverdrawOptions(); } else if (preference == mDebugLayout) { writeDebugLayoutOptions(); + } else if (preference == mKillAppLongpressBack) { + writeKillAppLongpressBackOptions(); } return false; @@ -1114,6 +1275,25 @@ public class DevelopmentSettings extends PreferenceFragment } else if (preference == mAppProcessLimit) { writeAppProcessLimitOptions(newValue); return true; + } else if (preference == mRootAccess) { + if ("0".equals(SystemProperties.get(ROOT_ACCESS_PROPERTY, "1")) + && !"0".equals(newValue)) { + mSelectedRootValue = newValue; + mDialogClicked = false; + if (mRootDialog != null) { + dismissDialogs(); + } + mRootDialog = new AlertDialog.Builder(getActivity()) + .setMessage(getResources().getString(R.string.root_access_warning_message)) + .setTitle(R.string.root_access_warning_title) + .setIconAttribute(android.R.attr.alertDialogIcon) + .setPositiveButton(android.R.string.yes, this) + .setNegativeButton(android.R.string.no, this).show(); + mRootDialog.setOnDismissListener(this); + } else { + writeRootAccessOptions(newValue); + } + return true; } return false; } @@ -1123,10 +1303,18 @@ public class DevelopmentSettings extends PreferenceFragment mAdbDialog.dismiss(); mAdbDialog = null; } + if (mAdbTcpDialog != null) { + mAdbTcpDialog.dismiss(); + mAdbTcpDialog = null; + } if (mEnableDialog != null) { mEnableDialog.dismiss(); mEnableDialog = null; } + if (mRootDialog != null) { + mRootDialog.dismiss(); + mRootDialog = null; + } } public void onClick(DialogInterface dialog, int which) { @@ -1138,9 +1326,11 @@ public class DevelopmentSettings extends PreferenceFragment mVerifyAppsOverUsb.setEnabled(true); updateVerifyAppsOverUsbOptions(); updateBugreportOptions(); - } else { - // Reset the toggle - mEnableAdb.setChecked(false); + } + } else if (dialog == mAdbTcpDialog) { + if (which == DialogInterface.BUTTON_POSITIVE) { + Settings.Secure.putInt(getActivity().getContentResolver(), + Settings.Secure.ADB_PORT, 5555); } } else if (dialog == mEnableDialog) { if (which == DialogInterface.BUTTON_POSITIVE) { @@ -1149,9 +1339,20 @@ public class DevelopmentSettings extends PreferenceFragment Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 1); mLastEnabledState = true; setPrefsEnabledState(mLastEnabledState); + + // Make sure the development settings is visible in the main Settings menu + // This is needed since we may have just turned off dev settings and want to + // turn it on again + getActivity().getSharedPreferences(PREF_FILE, Context.MODE_PRIVATE).edit() + .putBoolean(PREF_SHOW, true) + .apply(); + } + } else if (dialog == mRootDialog) { + if (which == DialogInterface.BUTTON_POSITIVE) { + writeRootAccessOptions(mSelectedRootValue); } else { - // Reset the toggle - mEnabledSwitch.setChecked(false); + // Reset the option + writeRootAccessOptions("0"); } } } @@ -1163,6 +1364,11 @@ public class DevelopmentSettings extends PreferenceFragment mEnableAdb.setChecked(false); } mAdbDialog = null; + + } else if (dialog == mAdbTcpDialog) { + updateAdbOverNetwork(); + mAdbTcpDialog = null; + } else if (dialog == mEnableDialog) { if (!mDialogClicked) { mEnabledSwitch.setChecked(false); diff --git a/src/com/android/settings/DeviceInfoSettings.java b/src/com/android/settings/DeviceInfoSettings.java index d2ff6db..c3683f0 100644 --- a/src/com/android/settings/DeviceInfoSettings.java +++ b/src/com/android/settings/DeviceInfoSettings.java @@ -19,6 +19,7 @@ package com.android.settings; import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.content.pm.PackageManager.NameNotFoundException; import android.os.Build; import android.os.Bundle; import android.os.SELinux; @@ -43,6 +44,8 @@ public class DeviceInfoSettings extends SettingsPreferenceFragment { private static final String FILENAME_PROC_VERSION = "/proc/version"; private static final String FILENAME_MSV = "/sys/board_properties/soc/msv"; + private static final String FILENAME_PROC_MEMINFO = "/proc/meminfo"; + private static final String FILENAME_PROC_CPUINFO = "/proc/cpuinfo"; private static final String KEY_CONTAINER = "container"; private static final String KEY_TEAM = "team"; @@ -63,9 +66,13 @@ public class DeviceInfoSettings extends SettingsPreferenceFragment { private static final String KEY_UPDATE_SETTING = "additional_system_update_settings"; private static final String KEY_EQUIPMENT_ID = "fcc_equipment_id"; private static final String PROPERTY_EQUIPMENT_ID = "ro.ril.fccid"; + private static final String KEY_MOD_VERSION = "mod_version"; + private static final String KEY_MOD_BUILD_DATE = "build_date"; + private static final String KEY_DEVICE_CPU = "device_cpu"; + private static final String KEY_DEVICE_MEMORY = "device_memory"; + private static final String KEY_CM_UPDATES = "cm_updates"; static final int TAPS_TO_BE_A_DEVELOPER = 7; - long[] mHits = new long[3]; int mDevHitCountdown; Toast mDevHitToast; @@ -85,6 +92,9 @@ public class DeviceInfoSettings extends SettingsPreferenceFragment { setStringSummary(KEY_BUILD_NUMBER, Build.DISPLAY); findPreference(KEY_BUILD_NUMBER).setEnabled(true); findPreference(KEY_KERNEL_VERSION).setSummary(getFormattedKernelVersion()); + setValueSummary(KEY_MOD_VERSION, "ro.cm.version"); + findPreference(KEY_MOD_VERSION).setEnabled(true); + setValueSummary(KEY_MOD_BUILD_DATE, "ro.build.date"); if (!SELinux.isSELinuxEnabled()) { String status = getResources().getString(R.string.selinux_status_disabled); @@ -98,6 +108,28 @@ public class DeviceInfoSettings extends SettingsPreferenceFragment { removePreferenceIfPropertyMissing(getPreferenceScreen(), KEY_SELINUX_STATUS, PROPERTY_SELINUX_STATUS); + String cpuInfo = getCPUInfo(); + String memInfo = getMemInfo(); + + // Only the owner should see the Updater settings, if it exists + if (UserHandle.myUserId() == UserHandle.USER_OWNER) { + removePreferenceIfPackageNotInstalled(findPreference(KEY_CM_UPDATES)); + } else { + getPreferenceScreen().removePreference(findPreference(KEY_CM_UPDATES)); + } + + if (cpuInfo != null) { + setStringSummary(KEY_DEVICE_CPU, cpuInfo); + } else { + getPreferenceScreen().removePreference(findPreference(KEY_DEVICE_CPU)); + } + + if (memInfo != null) { + setStringSummary(KEY_DEVICE_MEMORY, memInfo); + } else { + getPreferenceScreen().removePreference(findPreference(KEY_DEVICE_MEMORY)); + } + // Remove Safety information preference if PROPERTY_URL_SAFETYLEGAL is not set removePreferenceIfPropertyMissing(getPreferenceScreen(), "safetylegal", PROPERTY_URL_SAFETYLEGAL); @@ -174,35 +206,52 @@ public class DeviceInfoSettings extends SettingsPreferenceFragment { } } } else if (preference.getKey().equals(KEY_BUILD_NUMBER)) { - if (mDevHitCountdown > 0) { - mDevHitCountdown--; - if (mDevHitCountdown == 0) { - getActivity().getSharedPreferences(DevelopmentSettings.PREF_FILE, - Context.MODE_PRIVATE).edit().putBoolean( - DevelopmentSettings.PREF_SHOW, true).apply(); - if (mDevHitToast != null) { - mDevHitToast.cancel(); + // Only allow the owner of the device to turn on dev and performance options + if (UserHandle.myUserId() == UserHandle.USER_OWNER) { + if (mDevHitCountdown > 0) { + mDevHitCountdown--; + if (mDevHitCountdown == 0) { + getActivity().getSharedPreferences(DevelopmentSettings.PREF_FILE, + Context.MODE_PRIVATE).edit().putBoolean( + DevelopmentSettings.PREF_SHOW, true).apply(); + if (mDevHitToast != null) { + mDevHitToast.cancel(); + } + mDevHitToast = Toast.makeText(getActivity(), R.string.show_dev_on, + Toast.LENGTH_LONG); + mDevHitToast.show(); + } else if (mDevHitCountdown > 0 + && mDevHitCountdown < (TAPS_TO_BE_A_DEVELOPER-2)) { + if (mDevHitToast != null) { + mDevHitToast.cancel(); + } + mDevHitToast = Toast.makeText(getActivity(), getResources().getQuantityString( + R.plurals.show_dev_countdown, mDevHitCountdown, mDevHitCountdown), + Toast.LENGTH_SHORT); + mDevHitToast.show(); } - mDevHitToast = Toast.makeText(getActivity(), R.string.show_dev_on, - Toast.LENGTH_LONG); - mDevHitToast.show(); - } else if (mDevHitCountdown > 0 - && mDevHitCountdown < (TAPS_TO_BE_A_DEVELOPER-2)) { + } else if (mDevHitCountdown < 0) { if (mDevHitToast != null) { mDevHitToast.cancel(); } - mDevHitToast = Toast.makeText(getActivity(), getResources().getQuantityString( - R.plurals.show_dev_countdown, mDevHitCountdown, mDevHitCountdown), - Toast.LENGTH_SHORT); + mDevHitToast = Toast.makeText(getActivity(), R.string.show_dev_already, + Toast.LENGTH_LONG); mDevHitToast.show(); } - } else if (mDevHitCountdown < 0) { - if (mDevHitToast != null) { - mDevHitToast.cancel(); + } + } else if (preference.getKey().equals(KEY_MOD_VERSION)) { + System.arraycopy(mHits, 1, mHits, 0, mHits.length-1); + mHits[mHits.length-1] = SystemClock.uptimeMillis(); + if (mHits[0] >= (SystemClock.uptimeMillis()-500)) { + Intent intent = new Intent(Intent.ACTION_MAIN); + intent.putExtra("is_cid", true); + intent.setClassName("android", + com.android.internal.app.PlatLogoActivity.class.getName()); + try { + startActivity(intent); + } catch (Exception e) { + Log.e(LOG_TAG, "Unable to start activity " + intent.toString()); } - mDevHitToast = Toast.makeText(getActivity(), R.string.show_dev_already, - Toast.LENGTH_LONG); - mDevHitToast.show(); } } return super.onPreferenceTreeClick(preferenceScreen, preference); @@ -325,4 +374,62 @@ public class DeviceInfoSettings extends SettingsPreferenceFragment { } return ""; } + + private String getMemInfo() { + String result = null; + BufferedReader reader = null; + + try { + /* /proc/meminfo entries follow this format: + * MemTotal: 362096 kB + * MemFree: 29144 kB + * Buffers: 5236 kB + * Cached: 81652 kB + */ + String firstLine = readLine(FILENAME_PROC_MEMINFO); + if (firstLine != null) { + String parts[] = firstLine.split("\\s+"); + if (parts.length == 3) { + result = Long.parseLong(parts[1])/1024 + " MB"; + } + } + } catch (IOException e) {} + + return result; + } + + private String getCPUInfo() { + String result = null; + + try { + /* The expected /proc/cpuinfo output is as follows: + * Processor : ARMv7 Processor rev 2 (v7l) + * BogoMIPS : 272.62 + */ + String firstLine = readLine(FILENAME_PROC_CPUINFO); + if (firstLine != null) { + result = firstLine.split(":")[1].trim(); + } + } catch (IOException e) {} + + return result; + } + + private boolean removePreferenceIfPackageNotInstalled(Preference preference) { + String intentUri=((PreferenceScreen) preference).getIntent().toUri(1); + Pattern pattern = Pattern.compile("component=([^/]+)/"); + Matcher matcher = pattern.matcher(intentUri); + + String packageName=matcher.find()?matcher.group(1):null; + if(packageName != null) { + try { + getPackageManager().getPackageInfo(packageName, 0); + } catch (NameNotFoundException e) { + Log.e(LOG_TAG,"package "+packageName+" not installed, hiding preference."); + getPreferenceScreen().removePreference(preference); + return true; + } + } + return false; + } } diff --git a/src/com/android/settings/DisplaySettings.java b/src/com/android/settings/DisplaySettings.java index fb839a7..aeb1325 100644 --- a/src/com/android/settings/DisplaySettings.java +++ b/src/com/android/settings/DisplaySettings.java @@ -28,23 +28,23 @@ import android.content.Intent; import android.content.IntentFilter; import android.content.res.Configuration; import android.content.res.Resources; +import android.database.ContentObserver; import android.hardware.display.DisplayManager; -import android.hardware.display.WifiDisplay; import android.hardware.display.WifiDisplayStatus; import android.os.Bundle; +import android.os.Handler; import android.os.RemoteException; import android.preference.CheckBoxPreference; import android.preference.ListPreference; import android.preference.Preference; import android.preference.Preference.OnPreferenceClickListener; +import android.preference.PreferenceCategory; import android.preference.PreferenceScreen; import android.provider.Settings; -import android.provider.Settings.SettingNotFoundException; -import android.util.AttributeSet; import android.util.Log; import com.android.internal.view.RotationPolicy; -import com.android.settings.DreamSettings; +import com.android.settings.cyanogenmod.DisplayRotation; import java.util.ArrayList; @@ -52,37 +52,52 @@ public class DisplaySettings extends SettingsPreferenceFragment implements Preference.OnPreferenceChangeListener, OnPreferenceClickListener { private static final String TAG = "DisplaySettings"; - /** If there is no setting in the provider, use this. */ + // If there is no setting in the provider, use this private static final int FALLBACK_SCREEN_TIMEOUT_VALUE = 30000; private static final String KEY_SCREEN_TIMEOUT = "screen_timeout"; - private static final String KEY_ACCELEROMETER = "accelerometer"; private static final String KEY_FONT_SIZE = "font_size"; - private static final String KEY_NOTIFICATION_PULSE = "notification_pulse"; private static final String KEY_SCREEN_SAVER = "screensaver"; private static final String KEY_WIFI_DISPLAY = "wifi_display"; + private static final String KEY_DISPLAY_ROTATION = "display_rotation"; + private static final String KEY_WAKEUP_CATEGORY = "category_wakeup_options"; + private static final String KEY_VOLUME_WAKE = "pref_volume_wake"; + + // Strings used for building the summary + private static final String ROTATION_ANGLE_0 = "0"; + private static final String ROTATION_ANGLE_90 = "90"; + private static final String ROTATION_ANGLE_180 = "180"; + private static final String ROTATION_ANGLE_270 = "270"; private static final int DLG_GLOBAL_CHANGE_WARNING = 1; private DisplayManager mDisplayManager; - private CheckBoxPreference mAccelerometer; + private CheckBoxPreference mVolumeWake; + private PreferenceScreen mDisplayRotationPreference; private WarnedListPreference mFontSizePref; - private CheckBoxPreference mNotificationPulse; private final Configuration mCurConfig = new Configuration(); - + private ListPreference mScreenTimeoutPreference; private Preference mScreenSaverPreference; private WifiDisplayStatus mWifiDisplayStatus; private Preference mWifiDisplayPreference; + private ContentObserver mAccelerometerRotationObserver = + new ContentObserver(new Handler()) { + @Override + public void onChange(boolean selfChange) { + updateDisplayRotationPreferenceDescription(); + } + }; + private final RotationPolicy.RotationPolicyListener mRotationPolicyListener = new RotationPolicy.RotationPolicyListener() { @Override public void onChange() { - updateAccelerometerRotationCheckbox(); + updateDisplayRotationPreferenceDescription(); } }; @@ -93,13 +108,7 @@ public class DisplaySettings extends SettingsPreferenceFragment implements addPreferencesFromResource(R.xml.display_settings); - mAccelerometer = (CheckBoxPreference) findPreference(KEY_ACCELEROMETER); - mAccelerometer.setPersistent(false); - if (RotationPolicy.isRotationLockToggleSupported(getActivity())) { - // If rotation lock is supported, then we do not provide this option in - // Display settings. However, is still available in Accessibility settings. - getPreferenceScreen().removePreference(mAccelerometer); - } + mDisplayRotationPreference = (PreferenceScreen) findPreference(KEY_DISPLAY_ROTATION); mScreenSaverPreference = findPreference(KEY_SCREEN_SAVER); if (mScreenSaverPreference != null @@ -107,7 +116,7 @@ public class DisplaySettings extends SettingsPreferenceFragment implements com.android.internal.R.bool.config_dreamsSupported) == false) { getPreferenceScreen().removePreference(mScreenSaverPreference); } - + mScreenTimeoutPreference = (ListPreference) findPreference(KEY_SCREEN_TIMEOUT); final long currentTimeout = Settings.System.getLong(resolver, SCREEN_OFF_TIMEOUT, FALLBACK_SCREEN_TIMEOUT_VALUE); @@ -115,24 +124,11 @@ public class DisplaySettings extends SettingsPreferenceFragment implements mScreenTimeoutPreference.setOnPreferenceChangeListener(this); disableUnusableTimeouts(mScreenTimeoutPreference); updateTimeoutPreferenceDescription(currentTimeout); + updateDisplayRotationPreferenceDescription(); mFontSizePref = (WarnedListPreference) findPreference(KEY_FONT_SIZE); mFontSizePref.setOnPreferenceChangeListener(this); mFontSizePref.setOnPreferenceClickListener(this); - mNotificationPulse = (CheckBoxPreference) findPreference(KEY_NOTIFICATION_PULSE); - if (mNotificationPulse != null - && getResources().getBoolean( - com.android.internal.R.bool.config_intrusiveNotificationLed) == false) { - getPreferenceScreen().removePreference(mNotificationPulse); - } else { - try { - mNotificationPulse.setChecked(Settings.System.getInt(resolver, - Settings.System.NOTIFICATION_LIGHT_PULSE) == 1); - mNotificationPulse.setOnPreferenceChangeListener(this); - } catch (SettingNotFoundException snfe) { - Log.e(TAG, Settings.System.NOTIFICATION_LIGHT_PULSE + " not found"); - } - } mDisplayManager = (DisplayManager)getActivity().getSystemService( Context.DISPLAY_SERVICE); @@ -143,6 +139,62 @@ public class DisplaySettings extends SettingsPreferenceFragment implements getPreferenceScreen().removePreference(mWifiDisplayPreference); mWifiDisplayPreference = null; } + + mVolumeWake = (CheckBoxPreference) findPreference(KEY_VOLUME_WAKE); + if (mVolumeWake != null) { + if (!getResources().getBoolean(R.bool.config_show_volumeRockerWake)) { + getPreferenceScreen().removePreference(mVolumeWake); + getPreferenceScreen().removePreference((PreferenceCategory) findPreference(KEY_WAKEUP_CATEGORY)); + } else { + mVolumeWake.setChecked(Settings.System.getInt(resolver, + Settings.System.VOLUME_WAKE_SCREEN, 0) == 1); + } + } + + } + + private void updateDisplayRotationPreferenceDescription() { + if (mDisplayRotationPreference == null) { + // The preference was removed, do nothing + return; + } + + // We have a preference, lets update the summary + StringBuilder summary = new StringBuilder(); + Boolean rotationEnabled = Settings.System.getInt(getContentResolver(), + Settings.System.ACCELEROMETER_ROTATION, 0) != 0; + int mode = Settings.System.getInt(getContentResolver(), + Settings.System.ACCELEROMETER_ROTATION_ANGLES, + DisplayRotation.ROTATION_0_MODE|DisplayRotation.ROTATION_90_MODE|DisplayRotation.ROTATION_270_MODE); + + if (!rotationEnabled) { + summary.append(getString(R.string.display_rotation_disabled)); + } else { + ArrayList<String> rotationList = new ArrayList<String>(); + String delim = ""; + if ((mode & DisplayRotation.ROTATION_0_MODE) != 0) { + rotationList.add(ROTATION_ANGLE_0); + } + if ((mode & DisplayRotation.ROTATION_90_MODE) != 0) { + rotationList.add(ROTATION_ANGLE_90); + } + if ((mode & DisplayRotation.ROTATION_180_MODE) != 0) { + rotationList.add(ROTATION_ANGLE_180); + } + if ((mode & DisplayRotation.ROTATION_270_MODE) != 0) { + rotationList.add(ROTATION_ANGLE_270); + } + for (int i = 0; i < rotationList.size(); i++) { + summary.append(delim).append(rotationList.get(i)); + if ((rotationList.size() - i) > 2) { + delim = ", "; + } else { + delim = " & "; + } + } + summary.append(" " + getString(R.string.display_rotation_unit)); + } + mDisplayRotationPreference.setSummary(summary); } private void updateTimeoutPreferenceDescription(long currentTimeout) { @@ -210,14 +262,14 @@ public class DisplaySettings extends SettingsPreferenceFragment implements int floatToIndex(float val) { String[] indices = getResources().getStringArray(R.array.entryvalues_font_size); float lastVal = Float.parseFloat(indices[0]); - for (int i=1; i<indices.length; i++) { + for (int i = 1; i < indices.length; i++) { float thisVal = Float.parseFloat(indices[i]); if (val < (lastVal + (thisVal-lastVal)*.5f)) { - return i-1; + return i - 1; } lastVal = thisVal; } - return indices.length-1; + return indices.length - 1; } public void readFontSizePreference(ListPreference pref) { @@ -241,10 +293,16 @@ public class DisplaySettings extends SettingsPreferenceFragment implements @Override public void onResume() { super.onResume(); + updateDisplayRotationPreferenceDescription(); RotationPolicy.registerRotationPolicyListener(getActivity(), mRotationPolicyListener); + // Display rotation observer + getContentResolver().registerContentObserver( + Settings.System.getUriFor(Settings.System.ACCELEROMETER_ROTATION), true, + mAccelerometerRotationObserver); + if (mWifiDisplayPreference != null) { getActivity().registerReceiver(mReceiver, new IntentFilter( DisplayManager.ACTION_WIFI_DISPLAY_STATUS_CHANGED)); @@ -261,6 +319,9 @@ public class DisplaySettings extends SettingsPreferenceFragment implements RotationPolicy.unregisterRotationPolicyListener(getActivity(), mRotationPolicyListener); + // Display rotation observer + getContentResolver().unregisterContentObserver(mAccelerometerRotationObserver); + if (mWifiDisplayPreference != null) { getActivity().unregisterReceiver(mReceiver); } @@ -281,7 +342,6 @@ public class DisplaySettings extends SettingsPreferenceFragment implements } private void updateState() { - updateAccelerometerRotationCheckbox(); readFontSizePreference(mFontSizePref); updateScreenSaverSummary(); updateWifiDisplaySummary(); @@ -311,12 +371,6 @@ public class DisplaySettings extends SettingsPreferenceFragment implements } } - private void updateAccelerometerRotationCheckbox() { - if (getActivity() == null) return; - - mAccelerometer.setChecked(!RotationPolicy.isRotationLocked(getActivity())); - } - public void writeFontSizePreference(Object objValue) { try { mCurConfig.fontScale = Float.parseFloat(objValue.toString()); @@ -328,15 +382,12 @@ public class DisplaySettings extends SettingsPreferenceFragment implements @Override public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) { - if (preference == mAccelerometer) { - RotationPolicy.setRotationLockForAccessibility( - getActivity(), !mAccelerometer.isChecked()); - } else if (preference == mNotificationPulse) { - boolean value = mNotificationPulse.isChecked(); - Settings.System.putInt(getContentResolver(), Settings.System.NOTIFICATION_LIGHT_PULSE, - value ? 1 : 0); + if (preference == mVolumeWake) { + Settings.System.putInt(getContentResolver(), Settings.System.VOLUME_WAKE_SCREEN, + mVolumeWake.isChecked() ? 1 : 0); return true; } + return super.onPreferenceTreeClick(preferenceScreen, preference); } diff --git a/src/com/android/settings/DreamSettings.java b/src/com/android/settings/DreamSettings.java index 32328d9..6107954 100644 --- a/src/com/android/settings/DreamSettings.java +++ b/src/com/android/settings/DreamSettings.java @@ -99,7 +99,7 @@ public class DreamSettings extends SettingsPreferenceFragment { final int padding = activity.getResources().getDimensionPixelSize( R.dimen.action_bar_switch_padding); - mSwitch.setPadding(0, 0, padding, 0); + mSwitch.setPaddingRelative(0, 0, padding, 0); activity.getActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM, ActionBar.DISPLAY_SHOW_CUSTOM); activity.getActionBar().setCustomView(mSwitch, new ActionBar.LayoutParams( diff --git a/src/com/android/settings/HostnamePreference.java b/src/com/android/settings/HostnamePreference.java new file mode 100644 index 0000000..e44ea17 --- /dev/null +++ b/src/com/android/settings/HostnamePreference.java @@ -0,0 +1,111 @@ +package com.android.settings; + +import android.content.Context; +import android.os.SystemProperties; +import android.preference.EditTextPreference; +import android.provider.Settings; +import android.text.InputFilter; +import android.text.Spanned; +import android.util.AttributeSet; +import android.util.Log; + +public class HostnamePreference extends EditTextPreference { + + private static final String TAG = "HostnamePreference"; + + private static final String PROP_HOSTNAME = "net.hostname"; + + private final String DEFAULT_HOSTNAME; + + InputFilter mHostnameInputFilter = new InputFilter() { + @Override + public CharSequence filter(CharSequence source, int start, int end, + Spanned dest, int dstart, int dend) { + + if (source.length() == 0) + return null; + + // remove any character that is not alphanumeric, period, or hyphen + return source.subSequence(start, end).toString().replaceAll("[^-.a-zA-Z0-9]", ""); + } + }; + + public HostnamePreference(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + + // determine the default hostname + String id = Settings.Secure.getString(getContext().getContentResolver(), + Settings.Secure.ANDROID_ID); + if (id != null && id.length() > 0) { + DEFAULT_HOSTNAME = "android-".concat(id); + } else { + DEFAULT_HOSTNAME = ""; + } + + setSummary(getText()); + getEditText().setFilters(new InputFilter[] { mHostnameInputFilter }); + getEditText().setHint(DEFAULT_HOSTNAME); + } + + public HostnamePreference(Context context, AttributeSet attrs) { + this(context, attrs, com.android.internal.R.attr.editTextPreferenceStyle); + } + + public HostnamePreference(Context context) { + this(context, null); + } + + @Override + protected void onDialogClosed(boolean positiveResult) { + if (positiveResult) { + String hostname = getEditText().getText().toString(); + + // remove any preceding or succeeding periods or hyphens + hostname = hostname.replaceAll("(?:\\.|-)+$", ""); + hostname = hostname.replaceAll("^(?:\\.|-)+", ""); + + if (hostname.length() == 0) { + if (DEFAULT_HOSTNAME.length() != 0) { + // if no hostname is given, use the default + hostname = DEFAULT_HOSTNAME; + } else { + // if no other name can be determined + // fall back on the current hostname + hostname = getText(); + } + } + setText(hostname); + } + } + + @Override + public void setText(String text) { + if (text == null) { + Log.e(TAG, "tried to set null hostname, request ignored"); + return; + } else if (text.length() == 0) { + Log.w(TAG, "setting empty hostname"); + } else { + Log.i(TAG, "hostname has been set: " + text); + } + SystemProperties.set(PROP_HOSTNAME, text); + persistHostname(text); + setSummary(text); + } + + @Override + public String getText() { + return SystemProperties.get(PROP_HOSTNAME); + } + + @Override + public void onSetInitialValue(boolean restoreValue, Object defaultValue) { + String hostname = getText(); + persistHostname(hostname); + } + + public void persistHostname(String hostname) { + Settings.Secure.putString(getContext().getContentResolver(), + Settings.Secure.DEVICE_HOSTNAME, hostname); + } +} diff --git a/src/com/android/settings/IncreasingRingPreference.java b/src/com/android/settings/IncreasingRingPreference.java new file mode 100644 index 0000000..f05cd87 --- /dev/null +++ b/src/com/android/settings/IncreasingRingPreference.java @@ -0,0 +1,211 @@ +/* + * Copyright (C) 2008 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settings; + +import android.app.Dialog; +import android.content.Context; +import android.content.ContentResolver; +import android.media.AudioManager; +import android.os.Parcel; +import android.os.Parcelable; +import android.preference.VolumePreference; +import android.provider.Settings; +import android.util.AttributeSet; +import android.view.MotionEvent; +import android.view.View; +import android.widget.CheckBox; +import android.widget.CompoundButton; +import android.widget.SeekBar; +import android.widget.Spinner; +import android.widget.TextView; + +public class IncreasingRingPreference extends VolumePreference implements + CheckBox.OnCheckedChangeListener { + private static final String TAG = "IncreasingRingPreference"; + + private CheckBox mEnabledCheckbox; + + private TextView mMinVolumeTitle; + private SeekBar mMinVolumeSeekBar; + private TextView mRingVolumeNotice; + + private TextView mIntervalTitle; + private Spinner mInterval; + private int[] mIntervalValues; + + public IncreasingRingPreference(Context context, AttributeSet attrs) { + super(context, attrs); + + setStreamType(AudioManager.STREAM_RING); + + setDialogLayoutResource(R.layout.preference_dialog_increasing_ring); + setDialogIcon(R.drawable.ic_settings_sound); + } + + @Override + protected void onBindDialogView(View view) { + super.onBindDialogView(view); + + ContentResolver cr = getContext().getContentResolver(); + + mEnabledCheckbox = (CheckBox) view.findViewById(R.id.increasing_ring); + mMinVolumeTitle = (TextView) view.findViewById(R.id.increasing_ring_min_volume_title); + mMinVolumeSeekBar = (SeekBar) view.findViewById(com.android.internal.R.id.seekbar); + mRingVolumeNotice = (TextView) view.findViewById(R.id.increasing_ring_volume_notice); + mIntervalTitle = (TextView) view.findViewById(R.id.increasing_ring_interval_title); + mInterval = (Spinner) view.findViewById(R.id.increasing_ring_interval); + mIntervalValues = getContext().getResources().getIntArray(R.array.increasing_ring_interval_values); + + mEnabledCheckbox.setOnCheckedChangeListener(this); + mEnabledCheckbox.setChecked(Settings.System.getInt(cr, Settings.System.INCREASING_RING, 0) == 1); + mMinVolumeSeekBar.setProgress(Settings.System.getInt( + cr, Settings.System.INCREASING_RING_MIN_VOLUME, 1)); + int interval = Settings.System.getInt(cr, Settings.System.INCREASING_RING_INTERVAL, 0); + int index = 0; + + for (int i = 0; i < mIntervalValues.length; i++) { + if (mIntervalValues[i] == interval) { + index = i; + break; + } + } + mInterval.setSelection(index); + + AudioManager am = (AudioManager) getContext().getSystemService(Context.AUDIO_SERVICE); + mMinVolumeSeekBar.setSecondaryProgress(am.getStreamVolume(AudioManager.STREAM_RING)); + + updateVolumeNoticeVisibility(mMinVolumeSeekBar.getProgress()); + updateEnabledStates(); + } + + @Override + protected void onDialogClosed(boolean positiveResult) { + super.onDialogClosed(false); + + if (positiveResult) { + boolean checked = mEnabledCheckbox.isChecked(); + ContentResolver cr = getContext().getContentResolver(); + + Settings.System.putInt(cr, Settings.System.INCREASING_RING, checked ? 1 : 0); + Settings.System.putInt(cr, Settings.System.INCREASING_RING_INTERVAL, + mIntervalValues[mInterval.getSelectedItemPosition()]); + Settings.System.putInt(cr, + Settings.System.INCREASING_RING_MIN_VOLUME, + mMinVolumeSeekBar.getProgress()); + } + } + + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + updateVolumeNoticeVisibility(mMinVolumeSeekBar.getProgress()); + updateEnabledStates(); + } + + @Override + public boolean onVolumeChange(SeekBarVolumizer volumizer, int value) { + boolean result = super.onVolumeChange(volumizer, value); + if (result) { + updateVolumeNoticeVisibility(value); + } + return result; + } + + private void updateVolumeNoticeVisibility(int value) { + boolean visible = value > mMinVolumeSeekBar.getSecondaryProgress(); + if (!mEnabledCheckbox.isChecked()) { + visible = false; + } + mRingVolumeNotice.setVisibility(visible ? View.VISIBLE : View.GONE); + } + + private void updateEnabledStates() { + boolean enable = mEnabledCheckbox.isChecked(); + mMinVolumeTitle.setEnabled(enable); + mMinVolumeSeekBar.setEnabled(enable); + mRingVolumeNotice.setEnabled(enable); + mIntervalTitle.setEnabled(enable); + mInterval.setEnabled(enable); + } + + @Override + protected Parcelable onSaveInstanceState() { + final Parcelable superState = super.onSaveInstanceState(); + if (isPersistent()) { + // No need to save instance state since it's persistent + return superState; + } + + final SavedState myState = new SavedState(superState); + if (mEnabledCheckbox != null) { + myState.mEnabled = mEnabledCheckbox.isChecked(); + } + if (mInterval != null) { + myState.mIntervalSelection = mInterval.getSelectedItemPosition(); + } + return myState; + } + + @Override + protected void onRestoreInstanceState(Parcelable state) { + if (state == null || !state.getClass().equals(SavedState.class)) { + // Didn't save state for us in onSaveInstanceState + super.onRestoreInstanceState(state); + return; + } + + SavedState myState = (SavedState) state; + super.onRestoreInstanceState(myState.getSuperState()); + if (mEnabledCheckbox != null) { + mEnabledCheckbox.setChecked(myState.mEnabled); + } + if (mInterval != null) { + mInterval.setSelection(myState.mIntervalSelection); + } + } + + private static class SavedState extends BaseSavedState { + boolean mEnabled; + int mIntervalSelection; + + public SavedState(Parcel source) { + super(source); + mEnabled = source.readInt() != 0; + mIntervalSelection = source.readInt(); + } + + @Override + public void writeToParcel(Parcel dest, int flags) { + super.writeToParcel(dest, flags); + dest.writeInt(mEnabled ? 1 : 0); + dest.writeInt(mIntervalSelection); + } + + public SavedState(Parcelable superState) { + super(superState); + } + + public static final Parcelable.Creator<SavedState> CREATOR = + new Parcelable.Creator<SavedState>() { + public SavedState createFromParcel(Parcel in) { + return new SavedState(in); + } + + public SavedState[] newArray(int size) { + return new SavedState[size]; + } + }; + } +} diff --git a/src/com/android/settings/RingerVolumePreference.java b/src/com/android/settings/RingerVolumePreference.java index 954213d..2e11759 100644 --- a/src/com/android/settings/RingerVolumePreference.java +++ b/src/com/android/settings/RingerVolumePreference.java @@ -115,7 +115,7 @@ public class RingerVolumePreference extends VolumePreference { boolean muted = mAudioManager.isStreamMute(streamType); if (mCheckBoxes[i] != null) { - if ((streamType == AudioManager.STREAM_RING) && + if (streamType == AudioManager.STREAM_RING && (mAudioManager.getRingerMode() == AudioManager.RINGER_MODE_VIBRATE)) { mCheckBoxes[i].setImageResource( com.android.internal.R.drawable.ic_audio_ring_notif_vibrate); @@ -156,6 +156,13 @@ public class RingerVolumePreference extends VolumePreference { mAudioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); } + private static int getCurrentMutableStreams(Context c) { + final int defaultMuteStreams = ((1 << AudioSystem.STREAM_RING)|(1 << AudioSystem.STREAM_NOTIFICATION)| + (1 << AudioSystem.STREAM_SYSTEM)|(1 << AudioSystem.STREAM_SYSTEM_ENFORCED)); + return Settings.System.getInt(c.getContentResolver(), + Settings.System.MODE_RINGER_STREAMS_AFFECTED, defaultMuteStreams); + } + @Override protected void onBindDialogView(View view) { super.onBindDialogView(view); @@ -178,6 +185,82 @@ public class RingerVolumePreference extends VolumePreference { mCheckBoxes[i] = checkbox; } + final CheckBox linkCheckBox = (CheckBox) view.findViewById(R.id.link_ring_and_volume); + final CheckBox linkMuteStates = (CheckBox) view.findViewById(R.id.link_mutes); + + final View ringerSection = view.findViewById(R.id.ringer_section); + final View notificationSection = view.findViewById(R.id.notification_section); + final View linkVolumesSection = view.findViewById(R.id.link_volumes_section); + final TextView ringerDesc = (TextView) ringerSection + .findViewById(R.id.ringer_description_text); + + if (Utils.isVoiceCapable(getContext())) { + if ((getCurrentMutableStreams(getContext()) & (1 << AudioSystem.STREAM_NOTIFICATION)) != 0) { + linkMuteStates.setChecked(true); + } else { + linkMuteStates.setChecked(false); + } + + linkMuteStates.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + + int mutedStreams = getCurrentMutableStreams(getContext()); + + if (isChecked) { + mutedStreams |= (1 << AudioSystem.STREAM_NOTIFICATION); + } else { + mutedStreams &= ~(1 << AudioSystem.STREAM_NOTIFICATION); + } + Settings.System + .putInt(buttonView.getContext().getContentResolver(), + Settings.System.MODE_RINGER_STREAMS_AFFECTED, + mutedStreams); + } + }); + + if (System.getInt(getContext().getContentResolver(), + System.VOLUME_LINK_NOTIFICATION, 1) == 1) { + linkCheckBox.setChecked(true); + notificationSection.setVisibility(View.GONE); + ringerDesc.setText(R.string.volume_ring_description); + linkMuteStates.setEnabled(false); + } else { + linkCheckBox.setChecked(false); + notificationSection.setVisibility(View.VISIBLE); + ringerDesc.setText(R.string.volume_ring_only_description); + linkMuteStates.setEnabled(true); + } + + linkCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if (isChecked) { + notificationSection.setVisibility(View.GONE); + ringerDesc.setText(R.string.volume_ring_description); + linkMuteStates.setEnabled(false); + final int volume = mAudioManager.getStreamVolume(AudioSystem.STREAM_RING); + mAudioManager.setStreamVolume(AudioSystem.STREAM_NOTIFICATION, volume, 0); + Settings.System.putInt(buttonView.getContext().getContentResolver(), + Settings.System.VOLUME_LINK_NOTIFICATION, 1); + } else { + notificationSection.setVisibility(View.VISIBLE); + ringerDesc.setText(R.string.volume_ring_only_description); + linkMuteStates.setEnabled(true); + Settings.System.putInt(buttonView.getContext().getContentResolver(), + Settings.System.VOLUME_LINK_NOTIFICATION, 0); + } + updateSlidersAndMutedStates(); + } + + }); + } else { + ringerSection.setVisibility(View.GONE); + linkVolumesSection.setVisibility(View.GONE); + } + // Load initial states from AudioManager updateSlidersAndMutedStates(); @@ -196,16 +279,6 @@ public class RingerVolumePreference extends VolumePreference { }; getContext().registerReceiver(mRingModeChangedReceiver, filter); } - - // Disable either ringer+notifications or notifications - int id; - if (!Utils.isVoiceCapable(getContext())) { - id = R.id.ringer_section; - } else { - id = R.id.notification_section; - } - View hideSection = view.findViewById(id); - hideSection.setVisibility(View.GONE); } private Uri getMediaVolumeUri(Context context) { diff --git a/src/com/android/settings/SecuritySettings.java b/src/com/android/settings/SecuritySettings.java index 59cd110..85d76b3 100644 --- a/src/com/android/settings/SecuritySettings.java +++ b/src/com/android/settings/SecuritySettings.java @@ -1,5 +1,6 @@ /* * Copyright (C) 2007 The Android Open Source Project + * Modifications Copyright (C) 2012 CyanogenMod * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,6 +23,7 @@ import static android.provider.Settings.System.SCREEN_OFF_TIMEOUT; import android.app.Activity; import android.app.AlertDialog; import android.app.admin.DevicePolicyManager; +import android.content.ContentResolver; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; @@ -80,6 +82,16 @@ public class SecuritySettings extends SettingsPreferenceFragment private static final String KEY_CREDENTIALS_MANAGER = "credentials_management"; private static final String PACKAGE_MIME_TYPE = "application/vnd.android.package-archive"; + // Cyanogenmod Additions + private static final String SLIDE_LOCK_DELAY_TOGGLE = "slide_lock_delay_toggle"; + private static final String SLIDE_LOCK_TIMEOUT_DELAY = "slide_lock_timeout_delay"; + private static final String SLIDE_LOCK_SCREENOFF_DELAY = "slide_lock_screenoff_delay"; + private static final String MENU_UNLOCK_PREF = "menu_unlock"; + private static final String HOME_UNLOCK_PREF = "home_unlock"; + private static final String LOCKSCREEN_QUICK_UNLOCK_CONTROL = "quick_unlock_control"; + private static final String KEY_VIBRATE_PREF = "lockscreen_vibrate"; + private static final String KEY_SMS_SECURITY_CHECK_PREF = "sms_security_check_limit"; + DevicePolicyManager mDPM; private ChooseLockSettingsHelper mChooseLockSettingsHelper; @@ -100,6 +112,16 @@ public class SecuritySettings extends SettingsPreferenceFragment private boolean mIsPrimary; + // Cyanogenmod Additions + private CheckBoxPreference mSlideLockDelayToggle; + private ListPreference mSlideLockTimeoutDelay; + private ListPreference mSlideLockScreenOffDelay; + private CheckBoxPreference mVibratePref; + private CheckBoxPreference mMenuUnlock; + private CheckBoxPreference mHomeUnlock; + private CheckBoxPreference mQuickUnlockScreen; + private ListPreference mSmsSecurityCheck; + @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -119,6 +141,17 @@ public class SecuritySettings extends SettingsPreferenceFragment addPreferencesFromResource(R.xml.security_settings); root = getPreferenceScreen(); + // CM - allows for calling the settings screen with stock or cm view + boolean isCmSecurity = false; + Bundle args = getArguments(); + if (args != null) { + isCmSecurity = args.getBoolean("cm_security"); + } + ContentResolver resolver = getActivity().getApplicationContext().getContentResolver(); + + // Add package manager to check if features are available + PackageManager pm = getPackageManager(); + // Add options for lock/unlock screen int resid = 0; if (!mLockPatternUtils.isSecure()) { @@ -167,7 +200,7 @@ public class SecuritySettings extends SettingsPreferenceFragment } } - if (mIsPrimary) { + if (mIsPrimary && !isCmSecurity) { switch (dpm.getStorageEncryptionStatus()) { case DevicePolicyManager.ENCRYPTION_STATUS_ACTIVE: // The device is currently encrypted. @@ -185,6 +218,96 @@ public class SecuritySettings extends SettingsPreferenceFragment if (mLockAfter != null) { setupLockAfterPreference(); updateLockAfterPreferenceSummary(); + } else if (!mLockPatternUtils.isLockScreenDisabled() && isCmSecurity) { + addPreferencesFromResource(R.xml.security_settings_slide_delay_cyanogenmod); + + mSlideLockDelayToggle = (CheckBoxPreference) root + .findPreference(SLIDE_LOCK_DELAY_TOGGLE); + mSlideLockDelayToggle.setChecked(Settings.System.getInt(resolver, + Settings.System.SCREEN_LOCK_SLIDE_DELAY_TOGGLE, 0) == 1); + + mSlideLockTimeoutDelay = (ListPreference) root + .findPreference(SLIDE_LOCK_TIMEOUT_DELAY); + int slideTimeoutDelay = Settings.System.getInt(resolver, + Settings.System.SCREEN_LOCK_SLIDE_TIMEOUT_DELAY, 5000); + mSlideLockTimeoutDelay.setValue(String.valueOf(slideTimeoutDelay)); + updateSlideAfterTimeoutSummary(); + mSlideLockTimeoutDelay.setOnPreferenceChangeListener(this); + + mSlideLockScreenOffDelay = (ListPreference) root + .findPreference(SLIDE_LOCK_SCREENOFF_DELAY); + int slideScreenOffDelay = Settings.System.getInt(resolver, + Settings.System.SCREEN_LOCK_SLIDE_SCREENOFF_DELAY, 0); + mSlideLockScreenOffDelay.setValue(String.valueOf(slideScreenOffDelay)); + updateSlideAfterScreenOffSummary(); + mSlideLockScreenOffDelay.setOnPreferenceChangeListener(this); + } + + if (isCmSecurity) { + // visible pattern + mVisiblePattern = (CheckBoxPreference) root.findPreference(KEY_VISIBLE_PATTERN); + + // lock instantly on power key press + mPowerButtonInstantlyLocks = (CheckBoxPreference) root.findPreference( + KEY_POWER_INSTANTLY_LOCKS); + checkPowerInstantLockDependency(); + + // Add the additional CyanogenMod settings + addPreferencesFromResource(R.xml.security_settings_cyanogenmod); + + // Quick Unlock Screen Control + mQuickUnlockScreen = (CheckBoxPreference) root + .findPreference(LOCKSCREEN_QUICK_UNLOCK_CONTROL); + mQuickUnlockScreen.setChecked(Settings.System.getInt(resolver, + Settings.System.LOCKSCREEN_QUICK_UNLOCK_CONTROL, 0) == 1); + + // Menu Unlock + mMenuUnlock = (CheckBoxPreference) root.findPreference(MENU_UNLOCK_PREF); + mMenuUnlock.setChecked(Settings.System.getInt(resolver, + Settings.System.MENU_UNLOCK_SCREEN, 0) == 1); + + // Home Unlock + mHomeUnlock = (CheckBoxPreference) root.findPreference(HOME_UNLOCK_PREF); + mHomeUnlock.setChecked(Settings.System.getInt(resolver, + Settings.System.HOME_UNLOCK_SCREEN, 0) == 1); + + // Vibrate on unlock + mVibratePref = (CheckBoxPreference) findPreference(KEY_VIBRATE_PREF); + mVibratePref.setChecked(Settings.System.getInt(resolver, + Settings.System.LOCKSCREEN_VIBRATE_ENABLED, 1) == 1); + + // disable lock options if lock screen set to NONE + // or if using pattern as a primary lock screen or + // as a backup to biometric + if ((!mLockPatternUtils.isSecure() && mLockPatternUtils.isLockScreenDisabled()) + || (mLockPatternUtils.isLockPatternEnabled())) { + mQuickUnlockScreen.setEnabled(false); + mMenuUnlock.setEnabled(false); + mHomeUnlock.setEnabled(false); + mVibratePref.setEnabled(false); + // disable menu unlock and vibrate on unlock options if + // using PIN/password as primary lock screen or as + // backup to biometric + } else if (mLockPatternUtils.isLockPasswordEnabled()) { + mQuickUnlockScreen.setEnabled(true); + mMenuUnlock.setEnabled(false); + mHomeUnlock.setEnabled(false); + mVibratePref.setEnabled(false); + // Disable the quick unlock if its not using PIN/password + // as a primary lock screen or as a backup to biometric + } else { + mQuickUnlockScreen.setEnabled(false); } + + // Disable the MenuUnlock setting if no menu button is available + if (getActivity().getApplicationContext().getResources() + .getBoolean(com.android.internal.R.bool.config_showNavigationBar)) { + mMenuUnlock.setEnabled(false); + } + // Disable the HomeUnlock setting if no home button is available + if (getActivity().getApplicationContext().getResources() + .getBoolean(com.android.internal.R.bool.config_disableHomeUnlockSetting)) { + mHomeUnlock.setEnabled(false); + } } // biometric weak liveliness @@ -210,54 +333,65 @@ public class SecuritySettings extends SettingsPreferenceFragment } // Append the rest of the settings - addPreferencesFromResource(R.xml.security_settings_misc); + if (!isCmSecurity) { + addPreferencesFromResource(R.xml.security_settings_misc); - // Do not display SIM lock for devices without an Icc card - TelephonyManager tm = TelephonyManager.getDefault(); - if (!mIsPrimary || !tm.hasIccCard()) { - root.removePreference(root.findPreference(KEY_SIM_LOCK)); - } else { - // Disable SIM lock if sim card is missing or unknown - if ((TelephonyManager.getDefault().getSimState() == - TelephonyManager.SIM_STATE_ABSENT) || - (TelephonyManager.getDefault().getSimState() == - TelephonyManager.SIM_STATE_UNKNOWN)) { - root.findPreference(KEY_SIM_LOCK).setEnabled(false); + // Do not display SIM lock for devices without an Icc card + TelephonyManager tm = TelephonyManager.getDefault(); + if (!mIsPrimary || !tm.hasIccCard()) { + root.removePreference(root.findPreference(KEY_SIM_LOCK)); + } else { + // Disable SIM lock if sim card is missing or unknown + if ((TelephonyManager.getDefault().getSimState() == + TelephonyManager.SIM_STATE_ABSENT) || + (TelephonyManager.getDefault().getSimState() == + TelephonyManager.SIM_STATE_UNKNOWN)) { + root.findPreference(KEY_SIM_LOCK).setEnabled(false); + } } - } - - // Show password - mShowPassword = (CheckBoxPreference) root.findPreference(KEY_SHOW_PASSWORD); - // Credential storage, only for primary user - if (mIsPrimary) { - mResetCredentials = root.findPreference(KEY_RESET_CREDENTIALS); - } else { - removePreference(KEY_CREDENTIALS_MANAGER); - } + // Show password + mShowPassword = (CheckBoxPreference) root.findPreference(KEY_SHOW_PASSWORD); - mToggleAppInstallation = (CheckBoxPreference) findPreference( - KEY_TOGGLE_INSTALL_APPLICATIONS); - mToggleAppInstallation.setChecked(isNonMarketAppsAllowed()); - - // Package verification, only visible to primary user and if enabled - mToggleVerifyApps = (CheckBoxPreference) findPreference(KEY_TOGGLE_VERIFY_APPLICATIONS); - if (mIsPrimary && showVerifierSetting()) { - if (isVerifierInstalled()) { - mToggleVerifyApps.setChecked(isVerifyAppsEnabled()); + // Credential storage, only for primary user + if (mIsPrimary) { + mResetCredentials = root.findPreference(KEY_RESET_CREDENTIALS); } else { - mToggleVerifyApps.setChecked(false); - mToggleVerifyApps.setEnabled(false); + removePreference(KEY_CREDENTIALS_MANAGER); } - } else { - PreferenceGroup deviceAdminCategory= (PreferenceGroup) - root.findPreference(KEY_DEVICE_ADMIN_CATEGORY); - if (deviceAdminCategory != null) { - deviceAdminCategory.removePreference(mToggleVerifyApps); + + mToggleAppInstallation = (CheckBoxPreference) findPreference( + KEY_TOGGLE_INSTALL_APPLICATIONS); + mToggleAppInstallation.setChecked(isNonMarketAppsAllowed()); + + // Package verification, only visible to primary user and if enabled + mToggleVerifyApps = (CheckBoxPreference) findPreference(KEY_TOGGLE_VERIFY_APPLICATIONS); + if (mIsPrimary && showVerifierSetting()) { + if (isVerifierInstalled()) { + mToggleVerifyApps.setChecked(isVerifyAppsEnabled()); + } else { + mToggleVerifyApps.setChecked(false); + mToggleVerifyApps.setEnabled(false); + } } else { - mToggleVerifyApps.setEnabled(false); + PreferenceGroup deviceAdminCategory= (PreferenceGroup) + root.findPreference(KEY_DEVICE_ADMIN_CATEGORY); + if (deviceAdminCategory != null) { + deviceAdminCategory.removePreference(mToggleVerifyApps); + } else { + mToggleVerifyApps.setEnabled(false); + } } - } + + boolean isTelephony = pm.hasSystemFeature(PackageManager.FEATURE_TELEPHONY); + if (isTelephony) { + addPreferencesFromResource(R.xml.security_settings_app_cyanogenmod); + mSmsSecurityCheck = (ListPreference) root.findPreference(KEY_SMS_SECURITY_CHECK_PREF); + mSmsSecurityCheck.setOnPreferenceChangeListener(this); + int smsSecurityCheck = Integer.valueOf(mSmsSecurityCheck.getValue()); + updateSmsSecuritySummary(smsSecurityCheck); + } + } return root; } @@ -320,6 +454,45 @@ public class SecuritySettings extends SettingsPreferenceFragment } } + private void updateSlideAfterTimeoutSummary() { + // Update summary message with current value + long currentTimeout = Settings.System.getInt(getActivity().getApplicationContext() + .getContentResolver(), + Settings.System.SCREEN_LOCK_SLIDE_TIMEOUT_DELAY, 5000); + final CharSequence[] entries = mSlideLockTimeoutDelay.getEntries(); + final CharSequence[] values = mSlideLockTimeoutDelay.getEntryValues(); + int best = 0; + for (int i = 0; i < values.length; i++) { + long timeout = Long.valueOf(values[i].toString()); + if (currentTimeout >= timeout) { + best = i; + } + } + mSlideLockTimeoutDelay.setSummary(entries[best]); + } + + private void updateSmsSecuritySummary(int i) { + String message = getString(R.string.sms_security_check_limit_summary, i); + mSmsSecurityCheck.setSummary(message); + } + + private void updateSlideAfterScreenOffSummary() { + // Update summary message with current value + long currentTimeout = Settings.System.getInt(getActivity().getApplicationContext() + .getContentResolver(), + Settings.System.SCREEN_LOCK_SLIDE_SCREENOFF_DELAY, 0); + final CharSequence[] entries = mSlideLockScreenOffDelay.getEntries(); + final CharSequence[] values = mSlideLockScreenOffDelay.getEntryValues(); + int best = 0; + for (int i = 0; i < values.length; i++) { + long timeout = Long.valueOf(values[i].toString()); + if (currentTimeout >= timeout) { + best = i; + } + } + mSlideLockScreenOffDelay.setSummary(entries[best]); + } + private void setupLockAfterPreference() { // Compatible with pre-Froyo long currentTimeout = Settings.Secure.getLong(getContentResolver(), @@ -353,6 +526,18 @@ public class SecuritySettings extends SettingsPreferenceFragment mLockAfter.setSummary(getString(R.string.lock_after_timeout_summary, entries[best])); } + private void checkPowerInstantLockDependency() { + if (mPowerButtonInstantlyLocks != null) { + long timeout = Settings.Secure.getLong(getContentResolver(), + Settings.Secure.LOCK_SCREEN_LOCK_AFTER_TIMEOUT, 5000); + if (timeout == 0) { + mPowerButtonInstantlyLocks.setEnabled(false); + } else { + mPowerButtonInstantlyLocks.setEnabled(true); + } + } + } + private void disableUnusableTimeouts(long maxTimeout) { final CharSequence[] entries = mLockAfter.getEntries(); final CharSequence[] values = mLockAfter.getEntryValues(); @@ -458,6 +643,21 @@ public class SecuritySettings extends SettingsPreferenceFragment lockPatternUtils.setVisiblePatternEnabled(isToggled(preference)); } else if (KEY_POWER_INSTANTLY_LOCKS.equals(key)) { lockPatternUtils.setPowerButtonInstantlyLocks(isToggled(preference)); + } else if (preference == mSlideLockDelayToggle) { + Settings.System.putInt(getActivity().getApplicationContext().getContentResolver(), + Settings.System.SCREEN_LOCK_SLIDE_DELAY_TOGGLE, isToggled(preference) ? 1 : 0); + } if (preference == mQuickUnlockScreen) { + Settings.System.putInt(getActivity().getApplicationContext().getContentResolver(), + Settings.System.LOCKSCREEN_QUICK_UNLOCK_CONTROL, isToggled(preference) ? 1 : 0); + } else if (preference == mMenuUnlock) { + Settings.System.putInt(getActivity().getApplicationContext().getContentResolver(), + Settings.System.MENU_UNLOCK_SCREEN, isToggled(preference) ? 1 : 0); + } else if (preference == mHomeUnlock) { + Settings.System.putInt(getActivity().getApplicationContext().getContentResolver(), + Settings.System.HOME_UNLOCK_SCREEN, isToggled(preference) ? 1 : 0); + } else if (preference == mVibratePref) { + Settings.System.putInt(getActivity().getApplicationContext().getContentResolver(), + Settings.System.LOCKSCREEN_VIBRATE_ENABLED, isToggled(preference) ? 1 : 0); } else if (preference == mShowPassword) { Settings.System.putInt(getContentResolver(), Settings.System.TEXT_SHOW_PASSWORD, mShowPassword.isChecked() ? 1 : 0); @@ -515,6 +715,23 @@ public class SecuritySettings extends SettingsPreferenceFragment Log.e("SecuritySettings", "could not persist lockAfter timeout setting", e); } updateLockAfterPreferenceSummary(); + checkPowerInstantLockDependency(); + } else if (preference == mSlideLockTimeoutDelay) { + int slideTimeoutDelay = Integer.valueOf((String) value); + Settings.System.putInt(getActivity().getApplicationContext().getContentResolver(), + Settings.System.SCREEN_LOCK_SLIDE_TIMEOUT_DELAY, + slideTimeoutDelay); + updateSlideAfterTimeoutSummary(); + } else if (preference == mSlideLockScreenOffDelay) { + int slideScreenOffDelay = Integer.valueOf((String) value); + Settings.System.putInt(getActivity().getApplicationContext().getContentResolver(), + Settings.System.SCREEN_LOCK_SLIDE_SCREENOFF_DELAY, slideScreenOffDelay); + updateSlideAfterScreenOffSummary(); + } else if (preference == mSmsSecurityCheck) { + int smsSecurityCheck = Integer.valueOf((String) value); + Settings.Global.putInt(getContentResolver(), Settings.Global.SMS_OUTGOING_CHECK_MAX_COUNT, + smsSecurityCheck); + updateSmsSecuritySummary(smsSecurityCheck); } return true; } diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java index a5e2005..935097d 100644 --- a/src/com/android/settings/Settings.java +++ b/src/com/android/settings/Settings.java @@ -26,6 +26,7 @@ import com.android.settings.applications.ManageApplications; import com.android.settings.bluetooth.BluetoothEnabler; import com.android.settings.deviceinfo.Memory; import com.android.settings.fuelgauge.PowerUsageSummary; +import com.android.settings.profiles.ProfileEnabler; import com.android.settings.vpn2.VpnSettings; import com.android.settings.wifi.WifiEnabler; @@ -39,6 +40,7 @@ import android.content.SharedPreferences; import android.content.pm.ActivityInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; +import android.content.pm.ResolveInfo; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.os.INetworkManagementService; @@ -120,7 +122,11 @@ public class Settings extends PreferenceActivity R.id.system_section, R.id.date_time_settings, R.id.about_settings, - R.id.accessibility_settings + R.id.accessibility_settings, + R.id.interface_section, + R.id.launcher_settings, + R.id.lock_screen_settings, + R.id.system_settings }; private SharedPreferences mDevelopmentPreferences; @@ -426,8 +432,26 @@ public class Settings extends PreferenceActivity Header header = target.get(i); // Ids are integers, so downcasting int id = (int) header.id; - if (id == R.id.operator_settings || id == R.id.manufacturer_settings) { + if (id == R.id.operator_settings || id == R.id.manufacturer_settings || + id == R.id.advanced_settings) { Utils.updateHeaderToSpecificActivityFromMetaDataOrRemove(this, target, header); + } else if (id == R.id.launcher_settings) { + Intent launcherIntent = new Intent(Intent.ACTION_MAIN); + launcherIntent.addCategory(Intent.CATEGORY_HOME); + launcherIntent.addCategory(Intent.CATEGORY_DEFAULT); + + Intent launcherPreferencesIntent = new Intent(Intent.ACTION_MAIN); + launcherPreferencesIntent.addCategory("com.cyanogenmod.category.LAUNCHER_PREFERENCES"); + + ActivityInfo defaultLauncher = getPackageManager().resolveActivity(launcherIntent, PackageManager.MATCH_DEFAULT_ONLY).activityInfo; + launcherPreferencesIntent.setPackage(defaultLauncher.packageName); + ResolveInfo launcherPreferences = getPackageManager().resolveActivity(launcherPreferencesIntent, 0); + if (launcherPreferences != null) { + header.intent = new Intent().setClassName(launcherPreferences.activityInfo.packageName, + launcherPreferences.activityInfo.name); + } else { + target.remove(header); + } } else if (id == R.id.wifi_settings) { // Remove WiFi Settings if WiFi service is not available. if (!getPackageManager().hasSystemFeature(PackageManager.FEATURE_WIFI)) { @@ -458,7 +482,8 @@ public class Settings extends PreferenceActivity || Utils.isMonkeyRunning()) { target.remove(i); } - } else if (id == R.id.development_settings) { + } else if (id == R.id.development_settings + || id == R.id.performance_settings) { if (!showDev) { target.remove(i); } @@ -585,6 +610,8 @@ public class Settings extends PreferenceActivity private final WifiEnabler mWifiEnabler; private final BluetoothEnabler mBluetoothEnabler; + private final ProfileEnabler mProfileEnabler; + private AuthenticatorHelper mAuthHelper; private static class HeaderViewHolder { @@ -599,7 +626,9 @@ public class Settings extends PreferenceActivity static int getHeaderType(Header header) { if (header.fragment == null && header.intent == null) { return HEADER_TYPE_CATEGORY; - } else if (header.id == R.id.wifi_settings || header.id == R.id.bluetooth_settings) { + } else if (header.id == R.id.wifi_settings + || header.id == R.id.bluetooth_settings + || header.id == R.id.profiles_settings) { return HEADER_TYPE_SWITCH; } else { return HEADER_TYPE_NORMAL; @@ -643,6 +672,7 @@ public class Settings extends PreferenceActivity // Switches inflated from their layouts. Must be done before adapter is set in super mWifiEnabler = new WifiEnabler(context, new Switch(context)); mBluetoothEnabler = new BluetoothEnabler(context, new Switch(context)); + mProfileEnabler = new ProfileEnabler(context, null, new Switch(context)); } @Override @@ -652,7 +682,7 @@ public class Settings extends PreferenceActivity int headerType = getHeaderType(header); View view = null; - if (convertView == null) { + if (convertView == null || headerType == HEADER_TYPE_SWITCH) { holder = new HeaderViewHolder(); switch (headerType) { case HEADER_TYPE_CATEGORY: @@ -699,8 +729,10 @@ public class Settings extends PreferenceActivity // Would need a different treatment if the main menu had more switches if (header.id == R.id.wifi_settings) { mWifiEnabler.setSwitch(holder.switch_); - } else { + } else if (header.id == R.id.bluetooth_settings) { mBluetoothEnabler.setSwitch(holder.switch_); + } else if (header.id == R.id.profiles_settings) { + mProfileEnabler.setSwitch(holder.switch_); } // No break, fall through on purpose to update common fields @@ -737,11 +769,13 @@ public class Settings extends PreferenceActivity public void resume() { mWifiEnabler.resume(); mBluetoothEnabler.resume(); + mProfileEnabler.resume(); } public void pause() { mWifiEnabler.pause(); mBluetoothEnabler.pause(); + mProfileEnabler.pause(); } } @@ -837,5 +871,10 @@ public class Settings extends PreferenceActivity public static class TextToSpeechSettingsActivity extends Settings { /* empty */ } public static class AndroidBeamSettingsActivity extends Settings { /* empty */ } public static class WifiDisplaySettingsActivity extends Settings { /* empty */ } + public static class AnonymousStatsActivity extends Settings { /* empty */ } + public static class ApnSettingsActivity extends Settings { /* empty */ } + public static class ApnEditorActivity extends Settings { /* empty */ } + public static class ProfilesSettingsActivity extends Settings { /* empty */ } + public static class QuietHoursSettingsActivity extends Settings { /* empty */ } public static class DreamSettingsActivity extends Settings { /* empty */ } } diff --git a/src/com/android/settings/SoundSettings.java b/src/com/android/settings/SoundSettings.java index 7e46171..5e91a72 100644 --- a/src/com/android/settings/SoundSettings.java +++ b/src/com/android/settings/SoundSettings.java @@ -24,6 +24,7 @@ import android.bluetooth.BluetoothDevice; import android.content.BroadcastReceiver; import android.content.ContentResolver; import android.content.Context; +import android.content.DialogInterface; import android.content.Intent; import android.content.IntentFilter; import android.content.pm.PackageManager; @@ -46,12 +47,16 @@ import android.preference.PreferenceScreen; import android.provider.MediaStore; import android.provider.Settings; import android.telephony.TelephonyManager; +import android.text.format.DateFormat; import android.util.Log; +import android.view.VolumePanel; +import java.util.Date; +import java.util.Calendar; import java.util.List; public class SoundSettings extends SettingsPreferenceFragment implements - Preference.OnPreferenceChangeListener { + Preference.OnPreferenceChangeListener, DialogInterface.OnDismissListener, DialogInterface.OnClickListener { private static final String TAG = "SoundSettings"; private static final int DIALOG_NOT_DOCKED = 1; @@ -59,8 +64,11 @@ public class SoundSettings extends SettingsPreferenceFragment implements /** If there is no setting in the provider, use this. */ private static final int FALLBACK_EMERGENCY_TONE_VALUE = 0; + private static final String KEY_VOLUME_OVERLAY = "volume_overlay"; + private static final String KEY_RING_MODE = "ring_mode"; private static final String KEY_VIBRATE = "vibrate_when_ringing"; private static final String KEY_RING_VOLUME = "ring_volume"; + private static final String KEY_INCREASING_RING = "increasing_ring"; private static final String KEY_MUSICFX = "musicfx"; private static final String KEY_DTMF_TONE = "dtmf_tone"; private static final String KEY_SOUND_EFFECTS = "sound_effects"; @@ -75,23 +83,39 @@ public class SoundSettings extends SettingsPreferenceFragment implements private static final String KEY_DOCK_AUDIO_SETTINGS = "dock_audio"; private static final String KEY_DOCK_SOUNDS = "dock_sounds"; private static final String KEY_DOCK_AUDIO_MEDIA_ENABLED = "dock_audio_media_enabled"; + private static final String KEY_QUIET_HOURS = "quiet_hours"; + private static final String KEY_VOLBTN_MUSIC_CTRL = "volbtn_music_controls"; + private static final String KEY_HEADSET_CONNECT_PLAYER = "headset_connect_player"; + private static final String KEY_CONVERT_SOUND_TO_VIBRATE = "notification_convert_sound_to_vibration"; + private static final String KEY_SAFE_HEADSET_VOLUME = "safe_headset_volume"; + + private static final String RING_MODE_NORMAL = "normal"; + private static final String RING_MODE_VIBRATE = "vibrate"; + private static final String RING_MODE_MUTE = "mute"; private static final String[] NEED_VOICE_CAPABILITY = { KEY_RINGTONE, KEY_DTMF_TONE, KEY_CATEGORY_CALLS, - KEY_EMERGENCY_TONE + KEY_EMERGENCY_TONE, KEY_INCREASING_RING }; private static final int MSG_UPDATE_RINGTONE_SUMMARY = 1; private static final int MSG_UPDATE_NOTIFICATION_SUMMARY = 2; private CheckBoxPreference mVibrateWhenRinging; + private ListPreference mVolumeOverlay; + private ListPreference mRingMode; private CheckBoxPreference mDtmfTone; private CheckBoxPreference mSoundEffects; private CheckBoxPreference mHapticFeedback; private Preference mMusicFx; private CheckBoxPreference mLockSounds; + private CheckBoxPreference mVolBtnMusicCtrl; + private CheckBoxPreference mHeadsetConnectPlayer; + private CheckBoxPreference mConvertSoundToVibration; private Preference mRingtonePreference; private Preference mNotificationPreference; + private PreferenceScreen mQuietHours; + private CheckBoxPreference mSafeHeadsetVolume; private Runnable mRingtoneLookupRunnable; @@ -102,6 +126,10 @@ public class SoundSettings extends SettingsPreferenceFragment implements private Intent mDockIntent; private CheckBoxPreference mDockAudioMediaEnabled; + // To track whether a confirmation dialog was clicked. + private boolean mDialogClicked; + private Dialog mWaiverDialog; + private Handler mHandler = new Handler() { public void handleMessage(Message msg) { switch (msg.what) { @@ -120,6 +148,8 @@ public class SoundSettings extends SettingsPreferenceFragment implements public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(Intent.ACTION_DOCK_EVENT)) { handleDockChange(intent); + } else if (intent.getAction().equals(AudioManager.RINGER_MODE_CHANGED_ACTION)) { + updateState(false); } } }; @@ -141,10 +171,39 @@ public class SoundSettings extends SettingsPreferenceFragment implements getPreferenceScreen().removePreference(findPreference(KEY_EMERGENCY_TONE)); } + mVolumeOverlay = (ListPreference) findPreference(KEY_VOLUME_OVERLAY); + mVolumeOverlay.setOnPreferenceChangeListener(this); + int volumeOverlay = Settings.System.getInt(getContentResolver(), + Settings.System.MODE_VOLUME_OVERLAY, + VolumePanel.VOLUME_OVERLAY_EXPANDABLE); + mVolumeOverlay.setValue(Integer.toString(volumeOverlay)); + mVolumeOverlay.setSummary(mVolumeOverlay.getEntry()); + + mRingMode = (ListPreference) findPreference(KEY_RING_MODE); if (!getResources().getBoolean(R.bool.has_silent_mode)) { + getPreferenceScreen().removePreference(mRingMode); findPreference(KEY_RING_VOLUME).setDependency(null); + } else { + mRingMode.setOnPreferenceChangeListener(this); } + mQuietHours = (PreferenceScreen) findPreference(KEY_QUIET_HOURS); + if (Settings.System.getInt(resolver, Settings.System.QUIET_HOURS_ENABLED, 0) == 1) { + mQuietHours.setSummary(getString(R.string.quiet_hours_active_from) + " " + + returnTime(Settings.System.getString(resolver, Settings.System.QUIET_HOURS_START)) + + " " + getString(R.string.quiet_hours_active_to) + " " + + returnTime(Settings.System.getString(resolver, Settings.System.QUIET_HOURS_END))); + } else { + mQuietHours.setSummary(getString(R.string.quiet_hours_summary)); + } + + mSafeHeadsetVolume = (CheckBoxPreference) findPreference(KEY_SAFE_HEADSET_VOLUME); + mSafeHeadsetVolume.setPersistent(false); + boolean safeMediaVolumeEnabled = getResources().getBoolean( + com.android.internal.R.bool.config_safe_media_volume_enabled); + mSafeHeadsetVolume.setChecked(Settings.System.getInt(resolver, + Settings.System.SAFE_HEADSET_VOLUME, safeMediaVolumeEnabled ? 1 : 0) != 0); + mVibrateWhenRinging = (CheckBoxPreference) findPreference(KEY_VIBRATE); mVibrateWhenRinging.setPersistent(false); mVibrateWhenRinging.setChecked(Settings.System.getInt(resolver, @@ -167,6 +226,20 @@ public class SoundSettings extends SettingsPreferenceFragment implements mLockSounds.setChecked(Settings.System.getInt(resolver, Settings.System.LOCKSCREEN_SOUNDS_ENABLED, 1) != 0); + mVolBtnMusicCtrl = (CheckBoxPreference) findPreference(KEY_VOLBTN_MUSIC_CTRL); + mVolBtnMusicCtrl.setChecked(Settings.System.getInt(resolver, + Settings.System.VOLBTN_MUSIC_CONTROLS, 1) != 0); + + mHeadsetConnectPlayer = (CheckBoxPreference) findPreference(KEY_HEADSET_CONNECT_PLAYER); + mHeadsetConnectPlayer.setChecked(Settings.System.getInt(resolver, + Settings.System.HEADSET_CONNECT_PLAYER, 0) != 0); + + mConvertSoundToVibration = (CheckBoxPreference) findPreference(KEY_CONVERT_SOUND_TO_VIBRATE); + + mConvertSoundToVibration.setPersistent(false); + mConvertSoundToVibration.setChecked(Settings.System.getInt(resolver, + Settings.System.NOTIFICATION_CONVERT_SOUND_TO_VIBRATION, 1) != 0); + mRingtonePreference = findPreference(KEY_RINGTONE); mNotificationPreference = findPreference(KEY_NOTIFICATION_SOUND); @@ -191,15 +264,13 @@ public class SoundSettings extends SettingsPreferenceFragment implements mMusicFx = mSoundSettings.findPreference(KEY_MUSICFX); Intent i = new Intent(AudioEffect.ACTION_DISPLAY_AUDIO_EFFECT_CONTROL_PANEL); + mMusicFx.setIntent(i); PackageManager p = getPackageManager(); List<ResolveInfo> ris = p.queryIntentActivities(i, PackageManager.GET_DISABLED_COMPONENTS); - if (ris.size() <= 2) { - // no need to show the item if there is no choice for the user to make - // note: the built in musicfx panel has two activities (one being a - // compatibility shim that launches either the other activity, or a - // third party one), hence the check for <=2. If the implementation - // of the compatbility layer changes, this check may need to be updated. + if (ris.size() == 0) { mSoundSettings.removePreference(mMusicFx); + } else if (ris.size() == 1) { + mMusicFx.setSummary(ris.get(0).loadLabel(p)); } if (!Utils.isVoiceCapable(getActivity())) { @@ -231,19 +302,64 @@ public class SoundSettings extends SettingsPreferenceFragment implements public void onResume() { super.onResume(); + updateState(true); lookupRingtoneNames(); IntentFilter filter = new IntentFilter(Intent.ACTION_DOCK_EVENT); getActivity().registerReceiver(mReceiver, filter); + + filter = new IntentFilter(AudioManager.RINGER_MODE_CHANGED_ACTION); + getActivity().registerReceiver(mReceiver, filter); } @Override public void onPause() { super.onPause(); - getActivity().unregisterReceiver(mReceiver); } + private void setPhoneRingModeValue(String value) { + int ringerMode = AudioManager.RINGER_MODE_NORMAL; + if (value.equals(RING_MODE_MUTE)) { + ringerMode = AudioManager.RINGER_MODE_SILENT; + } else if (value.equals(RING_MODE_VIBRATE)) { + ringerMode = AudioManager.RINGER_MODE_VIBRATE; + } + mAudioManager.setRingerMode(ringerMode); + } + + private String getPhoneRingModeSettingValue() { + switch (mAudioManager.getRingerMode()) { + case AudioManager.RINGER_MODE_NORMAL: + return RING_MODE_NORMAL; + case AudioManager.RINGER_MODE_VIBRATE: + return RING_MODE_VIBRATE; + case AudioManager.RINGER_MODE_SILENT: + return RING_MODE_MUTE; + } + // Shouldn't happen + return RING_MODE_NORMAL; + } + + // updateState in fact updates the UI to reflect the system state + private void updateState(boolean force) { + if (getActivity() == null) return; + ContentResolver resolver = getContentResolver(); + + mRingMode.setValue(getPhoneRingModeSettingValue()); + + if (Settings.System.getInt(resolver, Settings.System.QUIET_HOURS_ENABLED, 0) == 1) { + mQuietHours.setSummary(getString(R.string.quiet_hours_active_from) + " " + + returnTime(Settings.System.getString(resolver, Settings.System.QUIET_HOURS_START)) + + " " + getString(R.string.quiet_hours_active_to) + " " + + returnTime(Settings.System.getString(resolver, Settings.System.QUIET_HOURS_END))); + } else { + mQuietHours.setSummary(getString(R.string.quiet_hours_summary)); + } + + mRingMode.setSummary(mRingMode.getEntry()); + } + private void updateRingtoneName(int type, Preference preference, int msg) { if (preference == null) return; Context context = getActivity(); @@ -280,6 +396,7 @@ public class SoundSettings extends SettingsPreferenceFragment implements if (preference == mVibrateWhenRinging) { Settings.System.putInt(getContentResolver(), Settings.System.VIBRATE_WHEN_RINGING, mVibrateWhenRinging.isChecked() ? 1 : 0); + } else if (preference == mDtmfTone) { Settings.System.putInt(getContentResolver(), Settings.System.DTMF_TONE_WHEN_DIALING, mDtmfTone.isChecked() ? 1 : 0); @@ -301,9 +418,14 @@ public class SoundSettings extends SettingsPreferenceFragment implements Settings.System.putInt(getContentResolver(), Settings.System.LOCKSCREEN_SOUNDS_ENABLED, mLockSounds.isChecked() ? 1 : 0); + } else if (preference == mConvertSoundToVibration) { + Settings.System.putInt(getContentResolver(), Settings.System.NOTIFICATION_CONVERT_SOUND_TO_VIBRATION, + mConvertSoundToVibration.isChecked() ? 1 : 0); + } else if (preference == mMusicFx) { // let the framework fire off the intent return false; + } else if (preference == mDockAudioSettings) { int dockState = mDockIntent != null ? mDockIntent.getIntExtra(Intent.EXTRA_DOCK_STATE, 0) @@ -328,13 +450,46 @@ public class SoundSettings extends SettingsPreferenceFragment implements super.onPreferenceTreeClick(ps, ps); } } + } else if (preference == mDockSounds) { Settings.Global.putInt(getContentResolver(), Settings.Global.DOCK_SOUNDS_ENABLED, mDockSounds.isChecked() ? 1 : 0); + } else if (preference == mDockAudioMediaEnabled) { Settings.Global.putInt(getContentResolver(), Settings.Global.DOCK_AUDIO_MEDIA_ENABLED, mDockAudioMediaEnabled.isChecked() ? 1 : 0); + + } else if (preference == mVolBtnMusicCtrl) { + Settings.System.putInt(getContentResolver(), Settings.System.VOLBTN_MUSIC_CONTROLS, + mVolBtnMusicCtrl.isChecked() ? 1 : 0); + + } else if (preference == mHeadsetConnectPlayer) { + Settings.System.putInt(getContentResolver(), Settings.System.HEADSET_CONNECT_PLAYER, + mHeadsetConnectPlayer.isChecked() ? 1 : 0); + + } else if (preference == mSafeHeadsetVolume) { + if (!mSafeHeadsetVolume.isChecked()) { + // User is trying to disable the feature, display the waiver + mDialogClicked = false; + if (mWaiverDialog != null) { + dismissDialog(); + } + mWaiverDialog = new AlertDialog.Builder(getActivity()) + .setMessage(R.string.cyanogenmod_waiver_body) + .setTitle(R.string.cyanogenmod_waiver_title) + .setPositiveButton(R.string.ok, this) + .setNegativeButton(R.string.cancel, this) + .show(); + mWaiverDialog.setOnDismissListener(this); + } else { + Settings.System.putInt(getContentResolver(), Settings.System.SAFE_HEADSET_VOLUME, 1); + } + + } else { + // If we didn't handle it, let preferences handle it. + return super.onPreferenceTreeClick(preferenceScreen, preference); } + return true; } @@ -348,11 +503,37 @@ public class SoundSettings extends SettingsPreferenceFragment implements } catch (NumberFormatException e) { Log.e(TAG, "could not persist emergency tone setting", e); } + + } else if (preference == mRingMode) { + setPhoneRingModeValue(objValue.toString()); + + } else if (preference == mVolumeOverlay) { + final int value = Integer.valueOf((String) objValue); + final int index = mVolumeOverlay.findIndexOfValue((String) objValue); + Settings.System.putInt(getContentResolver(), + Settings.System.MODE_VOLUME_OVERLAY, value); + mVolumeOverlay.setSummary(mVolumeOverlay.getEntries()[index]); } return true; } + private String returnTime(String t) { + if (t == null || t.equals("")) { + return ""; + } + int hr = Integer.parseInt(t.trim()); + int mn = hr; + + hr = hr / 60; + mn = mn % 60; + Calendar cal = Calendar.getInstance(); + cal.set(Calendar.HOUR_OF_DAY, hr); + cal.set(Calendar.MINUTE, mn); + Date date = cal.getTime(); + return DateFormat.getTimeFormat(getActivity().getApplicationContext()).format(date); + } + @Override protected int getHelpResource() { return R.string.help_url_sound; @@ -439,5 +620,37 @@ public class SoundSettings extends SettingsPreferenceFragment implements ab.setPositiveButton(android.R.string.ok, null); return ab.create(); } -} + private void dismissDialog() { + if (mWaiverDialog != null) { + mWaiverDialog.dismiss(); + mWaiverDialog = null; + } + } + + public void onClick(DialogInterface dialog, int which) { + if (dialog == mWaiverDialog) { + if (which == DialogInterface.BUTTON_POSITIVE) { + mDialogClicked = true; + Settings.System.putInt(getContentResolver(), Settings.System.SAFE_HEADSET_VOLUME, 0); + } + } + } + + public void onDismiss(DialogInterface dialog) { + // Assuming that onClick gets called first + if (dialog == mWaiverDialog) { + if (!mDialogClicked) { + mSafeHeadsetVolume.setChecked(true); + } + mWaiverDialog = null; + } + } + + @Override + public void onDestroy() { + dismissDialog(); + super.onDestroy(); + } + +} diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java index e6d63bd..3bc244c 100644 --- a/src/com/android/settings/Utils.java +++ b/src/com/android/settings/Utils.java @@ -56,14 +56,21 @@ import android.provider.ContactsContract.Profile; import android.provider.ContactsContract.RawContacts; import android.telephony.TelephonyManager; import android.text.TextUtils; +import android.util.DisplayMetrics; import android.util.Log; +import android.view.DisplayInfo; import android.view.View; import android.view.ViewGroup; +import android.view.WindowManager; import android.widget.ListView; import android.widget.TabWidget; import com.android.settings.users.ProfileUpdateReceiver; +import java.io.BufferedReader; +import java.io.File; +import java.io.FileReader; +import java.io.FileWriter; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; @@ -74,6 +81,8 @@ import java.util.Locale; public class Utils { + private static final String TAG = "Utils"; + /** * Set the preference's title to the matching activity's label. */ @@ -97,6 +106,14 @@ public class Utils { */ private static final String META_DATA_PREFERENCE_SUMMARY = "com.android.settings.summary"; + // Device types + private static final int DEVICE_PHONE = 0; + private static final int DEVICE_HYBRID = 1; + private static final int DEVICE_TABLET = 2; + + // Device type reference + private static int mDeviceType = -1; + /** * Finds a matching activity for a preference's intent. If a matching * activity is not found, it will remove the preference. @@ -478,6 +495,43 @@ public class Utils { } } + public static boolean fileExists(String filename) { + return new File(filename).exists(); + } + + public static String fileReadOneLine(String fname) { + BufferedReader br; + String line = null; + + try { + br = new BufferedReader(new FileReader(fname), 512); + try { + line = br.readLine(); + } finally { + br.close(); + } + } catch (Exception e) { + Log.e(TAG, "IO Exception when reading /sys/ file", e); + } + return line; + } + + public static boolean fileWriteOneLine(String fname, String value) { + try { + FileWriter fw = new FileWriter(fname); + try { + fw.write(value); + } finally { + fw.close(); + } + } catch (IOException e) { + String Error = "Error writing to " + fname + ". Exception: "; + Log.e(TAG, Error, e); + return false; + } + return true; + } + /* Used by UserSettings as well. Call this on a non-ui thread. */ public static boolean copyMeProfilePhoto(Context context, UserInfo user) { Uri contactUri = Profile.CONTENT_URI; @@ -594,4 +648,37 @@ public class Utils { return ((UserManager) context.getSystemService(Context.USER_SERVICE)) .getUsers().size() > 1; } + + private static int getScreenType(Context con) { + if (mDeviceType == -1) { + WindowManager wm = (WindowManager)con.getSystemService(Context.WINDOW_SERVICE); + DisplayInfo outDisplayInfo = new DisplayInfo(); + wm.getDefaultDisplay().getDisplayInfo(outDisplayInfo); + int shortSize = Math.min(outDisplayInfo.logicalHeight, outDisplayInfo.logicalWidth); + int shortSizeDp = shortSize * DisplayMetrics.DENSITY_DEFAULT / outDisplayInfo.logicalDensityDpi; + if (shortSizeDp < 600) { + // 0-599dp: "phone" UI with a separate status & navigation bar + mDeviceType = DEVICE_PHONE; + } else if (shortSizeDp < 720) { + // 600-719dp: "phone" UI with modifications for larger screens + mDeviceType = DEVICE_HYBRID; + } else { + // 720dp: "tablet" UI with a single combined status & navigation bar + mDeviceType = DEVICE_TABLET; + } + } + return mDeviceType; + } + + public static boolean isPhone(Context con) { + return getScreenType(con) == DEVICE_PHONE; + } + + public static boolean isHybrid(Context con) { + return getScreenType(con) == DEVICE_HYBRID; + } + + public static boolean isTablet(Context con) { + return getScreenType(con) == DEVICE_TABLET; + } } diff --git a/src/com/android/settings/applications/LinearColorBar.java b/src/com/android/settings/applications/LinearColorBar.java index 74fb02e..65d5815 100644 --- a/src/com/android/settings/applications/LinearColorBar.java +++ b/src/com/android/settings/applications/LinearColorBar.java @@ -101,11 +101,11 @@ public class LinearColorBar extends LinearLayout { int indicatorLeft, indicatorRight; if (mShowingGreen) { - indicatorLeft = right2; - indicatorRight = right3; + indicatorLeft = (isLayoutRtl() ? width - right3 : right2); + indicatorRight = (isLayoutRtl() ? width - right2 : right3); } else { - indicatorLeft = right; - indicatorRight = right2; + indicatorLeft = (isLayoutRtl() ? width - right2 : right); + indicatorRight = (isLayoutRtl() ? width - right : right2); } if (mLastInterestingLeft != indicatorLeft || mLastInterestingRight != indicatorRight) { @@ -144,8 +144,8 @@ public class LinearColorBar extends LinearLayout { } if (left < right) { - mRect.left = left; - mRect.right = right; + mRect.left = (isLayoutRtl() ? width-right+left : left); + mRect.right = (isLayoutRtl() ? width : right); mPaint.setColor(LEFT_COLOR); canvas.drawRect(mRect, mPaint); width -= (right-left); @@ -155,8 +155,8 @@ public class LinearColorBar extends LinearLayout { right = right2; if (left < right) { - mRect.left = left; - mRect.right = right; + mRect.left = (isLayoutRtl() ? width-right+left : left); + mRect.right = (isLayoutRtl() ? width : right); mPaint.setColor(MIDDLE_COLOR); canvas.drawRect(mRect, mPaint); width -= (right-left); @@ -166,10 +166,10 @@ public class LinearColorBar extends LinearLayout { right = left + width; if (left < right) { - mRect.left = left; - mRect.right = right; + mRect.left = (isLayoutRtl() ? width-right+left : left); + mRect.right = (isLayoutRtl() ? width : right); mPaint.setColor(RIGHT_COLOR); canvas.drawRect(mRect, mPaint); } } -}
\ No newline at end of file +} diff --git a/src/com/android/settings/applications/ManageApplications.java b/src/com/android/settings/applications/ManageApplications.java index d4df397..64b9269 100644 --- a/src/com/android/settings/applications/ManageApplications.java +++ b/src/com/android/settings/applications/ManageApplications.java @@ -77,6 +77,7 @@ import com.android.settings.deviceinfo.StorageMeasurement; import com.android.settings.Utils; import java.util.ArrayList; +import java.util.Collections; import java.util.Comparator; import java.util.List; @@ -243,6 +244,7 @@ public class ManageApplications extends Fragment implements mRootView = inflater.inflate(mListType == LIST_TYPE_RUNNING ? R.layout.manage_applications_running : R.layout.manage_applications_apps, null); + mRootView.setLayoutDirection(mRootView.getResources().getConfiguration().getLayoutDirection()); mLoadingContainer = mRootView.findViewById(R.id.loading_container); mLoadingContainer.setVisibility(View.VISIBLE); mListContainer = mRootView.findViewById(R.id.list_container); @@ -257,6 +259,7 @@ public class ManageApplications extends Fragment implements lv.setSaveEnabled(true); lv.setItemsCanFocus(true); lv.setTextFilterEnabled(true); + lv.setFastScrollEnabled(true); mListView = lv; mApplications = new ApplicationsAdapter(mApplicationsState, this, mFilter); mListView.setAdapter(mApplications); @@ -874,6 +877,7 @@ public class ManageApplications extends Fragment implements @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + container.setLayoutDirection(container.getResources().getConfiguration().getLayoutDirection()); // initialize the inflater mInflater = inflater; @@ -900,6 +904,10 @@ public class ManageApplications extends Fragment implements } if (savedInstanceState == null) { + //Reverse the tab list once if the language is RTL. + if(container.isLayoutRtl()){ + Collections.reverse(mTabs); + } // First time init: make sure view pager is showing the correct tab. for (int i = 0; i < mTabs.size(); i++) { TabInfo tab = mTabs.get(i); @@ -1050,6 +1058,7 @@ public class ManageApplications extends Fragment implements mOptionsMenu.findItem(SHOW_RUNNING_SERVICES).setVisible(showingBackground); mOptionsMenu.findItem(SHOW_BACKGROUND_PROCESSES).setVisible(!showingBackground); mOptionsMenu.findItem(RESET_APP_PREFERENCES).setVisible(false); + mShowBackground = showingBackground; } else { mOptionsMenu.findItem(SORT_ORDER_ALPHA).setVisible(mSortOrder != SORT_ORDER_ALPHA); mOptionsMenu.findItem(SORT_ORDER_SIZE).setVisible(mSortOrder != SORT_ORDER_SIZE); diff --git a/src/com/android/settings/applications/RunningProcessesView.java b/src/com/android/settings/applications/RunningProcessesView.java index 67221ae..6156fa4 100644 --- a/src/com/android/settings/applications/RunningProcessesView.java +++ b/src/com/android/settings/applications/RunningProcessesView.java @@ -430,6 +430,9 @@ public class RunningProcessesView extends FrameLayout @Override public void onClick(View v) { mAdapter.setShowBackground(true); + if (mOwner != null) { + mOwner.getActivity().invalidateOptionsMenu(); + } } }); mForegroundProcessText = (TextView)findViewById(R.id.foregroundText); @@ -437,6 +440,9 @@ public class RunningProcessesView extends FrameLayout @Override public void onClick(View v) { mAdapter.setShowBackground(false); + if (mOwner != null) { + mOwner.getActivity().invalidateOptionsMenu(); + } } }); diff --git a/src/com/android/settings/bluetooth/BluetoothPermissionActivity.java b/src/com/android/settings/bluetooth/BluetoothPermissionActivity.java index 16476fa..363d694 100755 --- a/src/com/android/settings/bluetooth/BluetoothPermissionActivity.java +++ b/src/com/android/settings/bluetooth/BluetoothPermissionActivity.java @@ -98,6 +98,8 @@ public class BluetoothPermissionActivity extends AlertActivity implements showConnectionDialog(); } else if (requestType == BluetoothDevice.REQUEST_TYPE_PHONEBOOK_ACCESS) { showPhonebookDialog(); + } else if (requestType == BluetoothDevice.REQUEST_TYPE_MESSAGE_ACCESS) { + showMasDialog(); } else { Log.e(TAG, "Error: bad request type: " + requestType); finish(); @@ -134,6 +136,19 @@ public class BluetoothPermissionActivity extends AlertActivity implements setupAlert(); } + private void showMasDialog() { + final AlertController.AlertParams p = mAlertParams; + p.mIconId = android.R.drawable.ic_dialog_info; + p.mTitle = getString(R.string.bluetooth_mas_request); + p.mView = createMasDialogView(); + p.mPositiveButtonText = getString(android.R.string.yes); + p.mPositiveButtonListener = this; + p.mNegativeButtonText = getString(android.R.string.no); + p.mNegativeButtonListener = this; + mOkButton = mAlert.getButton(DialogInterface.BUTTON_POSITIVE); + setupAlert(); + } + private String createConnectionDisplayText() { String mRemoteName = mDevice != null ? mDevice.getAliasName() : null; @@ -152,6 +167,15 @@ public class BluetoothPermissionActivity extends AlertActivity implements return mMessage1; } + private String createMasDisplayText() { + String mRemoteName = mDevice != null ? mDevice.getAliasName() : null; + + if (mRemoteName == null) mRemoteName = getString(R.string.unknown); + String mMessage1 = getString(R.string.bluetooth_mas_acceptance_dialog_text, + mRemoteName, mRemoteName); + return mMessage1; + } + private View createConnectionDialogView() { mView = getLayoutInflater().inflate(R.layout.bluetooth_connection_access, null); messageView = (TextView)mView.findViewById(R.id.message); @@ -177,6 +201,24 @@ public class BluetoothPermissionActivity extends AlertActivity implements return mView; } + private View createMasDialogView() { + mView = getLayoutInflater().inflate(R.layout.bluetooth_mas_access, null); + messageView = (TextView)mView.findViewById(R.id.message); + messageView.setText(createMasDisplayText()); + mRememberChoice = (CheckBox)mView.findViewById(R.id.bluetooth_mas_remember_choice); + mRememberChoice.setChecked(false); + mRememberChoice.setOnCheckedChangeListener(new OnCheckedChangeListener() { + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if (isChecked) { + mRememberChoiceValue = true; + } else { + mRememberChoiceValue = false; + } + } + }); + return mView; + } + private void onPositive() { if (DEBUG) Log.d(TAG, "onPositive mRememberChoiceValue: " + mRememberChoiceValue); diff --git a/src/com/android/settings/bluetooth/BluetoothSettings.java b/src/com/android/settings/bluetooth/BluetoothSettings.java index e9ba39d..c0bfd32 100755 --- a/src/com/android/settings/bluetooth/BluetoothSettings.java +++ b/src/com/android/settings/bluetooth/BluetoothSettings.java @@ -119,7 +119,7 @@ public final class BluetoothSettings extends DeviceListPreferenceFragment { if (preferenceActivity.onIsHidingHeaders() || !preferenceActivity.onIsMultiPane()) { final int padding = activity.getResources().getDimensionPixelSize( R.dimen.action_bar_switch_padding); - actionBarSwitch.setPadding(0, 0, padding, 0); + actionBarSwitch.setPaddingRelative(0, 0, padding, 0); activity.getActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM, ActionBar.DISPLAY_SHOW_CUSTOM); activity.getActionBar().setCustomView(actionBarSwitch, new ActionBar.LayoutParams( diff --git a/src/com/android/settings/cmstats/AnonymousStats.java b/src/com/android/settings/cmstats/AnonymousStats.java new file mode 100644 index 0000000..0e1bc8e --- /dev/null +++ b/src/com/android/settings/cmstats/AnonymousStats.java @@ -0,0 +1,138 @@ +/* + * Copyright (C) 2012 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.android.settings.cmstats; + +import android.app.AlertDialog; +import android.app.Dialog; +import android.app.NotificationManager; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.SharedPreferences; +import android.net.Uri; +import android.os.Bundle; +import android.preference.CheckBoxPreference; +import android.preference.Preference; +import android.preference.PreferenceScreen; + +import com.android.settings.R; +import com.android.settings.SettingsPreferenceFragment; + +public class AnonymousStats extends SettingsPreferenceFragment + implements DialogInterface.OnClickListener, DialogInterface.OnDismissListener, + Preference.OnPreferenceChangeListener { + + private static final String VIEW_STATS = "pref_view_stats"; + + protected static final String ANONYMOUS_OPT_IN = "pref_anonymous_opt_in"; + + protected static final String ANONYMOUS_FIRST_BOOT = "pref_anonymous_first_boot"; + + protected static final String ANONYMOUS_LAST_CHECKED = "pref_anonymous_checked_in"; + + protected static final String ANONYMOUS_ALARM_SET = "pref_anonymous_alarm_set"; + + private CheckBoxPreference mEnableReporting; + + private Preference mViewStats; + + private Dialog mOkDialog; + + private boolean mOkClicked; + + private SharedPreferences mPrefs; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + if (getPreferenceManager() != null) { + addPreferencesFromResource(R.xml.anonymous_stats); + PreferenceScreen prefSet = getPreferenceScreen(); + mPrefs = getActivity().getSharedPreferences("CMStats", 0); + mEnableReporting = (CheckBoxPreference) prefSet.findPreference(ANONYMOUS_OPT_IN); + mViewStats = (Preference) prefSet.findPreference(VIEW_STATS); + boolean firstBoot = mPrefs.getBoolean(ANONYMOUS_FIRST_BOOT, true); + if (mEnableReporting.isChecked() && firstBoot) { + mPrefs.edit().putBoolean(ANONYMOUS_FIRST_BOOT, false).apply(); + ReportingServiceManager.launchService(getActivity()); + } + NotificationManager nm = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); + nm.cancel(1); + } + } + + @Override + public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) { + if (preference == mEnableReporting) { + if (mEnableReporting.isChecked()) { + // Display the confirmation dialog + mOkClicked = false; + if (mOkDialog != null) { + mOkDialog.dismiss(); + mOkDialog = null; + } + mOkDialog = new AlertDialog.Builder(getActivity()).setMessage( + getActivity().getResources().getString(R.string.anonymous_statistics_warning)) + .setTitle(R.string.anonymous_statistics_warning_title) + .setIconAttribute(android.R.attr.alertDialogIcon) + .setPositiveButton(android.R.string.yes, this) + .setNeutralButton(getString(R.string.anonymous_learn_more), this) + .setNegativeButton(android.R.string.no, this) + .show(); + mOkDialog.setOnDismissListener(this); + } else { + // Disable reporting + mPrefs.edit().putBoolean(ANONYMOUS_OPT_IN, false).apply(); + } + } else if (preference == mViewStats) { + // Display the stats page + Uri uri = Uri.parse("http://stats.cyanogenmod.com"); + startActivity(new Intent(Intent.ACTION_VIEW, uri)); + } else { + // If we didn't handle it, let preferences handle it. + return super.onPreferenceTreeClick(preferenceScreen, preference); + } + return true; + } + + @Override + public boolean onPreferenceChange(Preference preference, Object newValue) { + return false; + } + + @Override + public void onDismiss(DialogInterface dialog) { + if (!mOkClicked) { + mEnableReporting.setChecked(false); + } + } + + @Override + public void onClick(DialogInterface dialog, int which) { + if (which == DialogInterface.BUTTON_POSITIVE) { + mOkClicked = true; + mPrefs.edit().putBoolean(ANONYMOUS_OPT_IN, true).apply(); + ReportingServiceManager.launchService(getActivity()); + } else if (which == DialogInterface.BUTTON_NEGATIVE){ + mEnableReporting.setChecked(false); + } else { + Uri uri = Uri.parse("http://www.cyanogenmod.com/blog/cmstats-what-it-is-and-why-you-should-opt-in"); + startActivity(new Intent(Intent.ACTION_VIEW, uri)); + } + } + +} diff --git a/src/com/android/settings/cmstats/PreviewData.java b/src/com/android/settings/cmstats/PreviewData.java new file mode 100644 index 0000000..c8b18ba --- /dev/null +++ b/src/com/android/settings/cmstats/PreviewData.java @@ -0,0 +1,76 @@ +/* + * Copyright (C) 2012 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.android.settings.cmstats; + +import android.os.Bundle; +import android.preference.Preference; +import android.preference.PreferenceScreen; + +import com.android.settings.R; +import com.android.settings.SettingsPreferenceFragment; + +public class PreviewData extends SettingsPreferenceFragment + implements Preference.OnPreferenceChangeListener{ + + private static final String UNIQUE_ID = "preview_id"; + + private static final String DEVICE = "preview_device"; + + private static final String VERSION = "preview_version"; + + private static final String COUNTRY = "preview_country"; + + private static final String CARRIER = "preview_carrier"; + + private Preference mId; + + private Preference mDevice; + + private Preference mVersion; + + private Preference mCountry; + + private Preference mCarrier; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + if (getPreferenceManager() != null) { + + addPreferencesFromResource(R.xml.preview_data); + PreferenceScreen prefSet = getPreferenceScreen(); + + mId = (Preference) prefSet.findPreference(UNIQUE_ID); + mDevice = (Preference) prefSet.findPreference(DEVICE); + mVersion = (Preference) prefSet.findPreference(VERSION); + mCountry = (Preference) prefSet.findPreference(COUNTRY); + mCarrier = (Preference) prefSet.findPreference(CARRIER); + + mId.setSummary(Utilities.getUniqueID(getActivity().getApplicationContext())); + mDevice.setSummary(Utilities.getDevice()); + mVersion.setSummary(Utilities.getModVersion()); + mCountry.setSummary(Utilities.getCountryCode(getActivity().getApplicationContext())); + mCarrier.setSummary(Utilities.getCarrier(getActivity().getApplicationContext())); + } + } + + @Override + public boolean onPreferenceChange(Preference preference, Object newValue) { + return false; + } +} diff --git a/src/com/android/settings/cmstats/ReportingService.java b/src/com/android/settings/cmstats/ReportingService.java new file mode 100644 index 0000000..da2e9e6 --- /dev/null +++ b/src/com/android/settings/cmstats/ReportingService.java @@ -0,0 +1,119 @@ +/* + * Copyright (C) 2012 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.android.settings.cmstats; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.http.NameValuePair; +import org.apache.http.client.HttpClient; +import org.apache.http.client.entity.UrlEncodedFormEntity; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.impl.client.DefaultHttpClient; +import org.apache.http.message.BasicNameValuePair; + +import android.app.Notification; +import android.app.NotificationManager; +import android.app.PendingIntent; +import android.app.Service; +import android.content.ComponentName; +import android.content.Context; +import android.content.Intent; +import android.os.IBinder; +import android.util.Log; + +import com.android.settings.R; +import com.android.settings.Settings; + +public class ReportingService extends Service { + protected static final String TAG = "CMStats"; + + @Override + public IBinder onBind(Intent intent) { + return null; + } + + @Override + public int onStartCommand (Intent intent, int flags, int startId) { + if (intent.getBooleanExtra("firstBoot", false)) { + promptUser(); + Log.d(TAG, "Prompting user for opt-in."); + } else { + Log.d(TAG, "User has opted in -- reporting."); + Thread thread = new Thread() { + @Override + public void run() { + report(); + } + }; + thread.start(); + } + return Service.START_REDELIVER_INTENT; + } + + private void report() { + String deviceId = Utilities.getUniqueID(getApplicationContext()); + String deviceName = Utilities.getDevice(); + String deviceVersion = Utilities.getModVersion(); + String deviceCountry = Utilities.getCountryCode(getApplicationContext()); + String deviceCarrier = Utilities.getCarrier(getApplicationContext()); + String deviceCarrierId = Utilities.getCarrierId(getApplicationContext()); + + Log.d(TAG, "SERVICE: Device ID=" + deviceId); + Log.d(TAG, "SERVICE: Device Name=" + deviceName); + Log.d(TAG, "SERVICE: Device Version=" + deviceVersion); + Log.d(TAG, "SERVICE: Country=" + deviceCountry); + Log.d(TAG, "SERVICE: Carrier=" + deviceCarrier); + Log.d(TAG, "SERVICE: Carrier ID=" + deviceCarrierId); + + HttpClient httpclient = new DefaultHttpClient(); + HttpPost httppost = new HttpPost("http://stats.cyanogenmod.com/submit"); + try { + List<NameValuePair> kv = new ArrayList<NameValuePair>(5); + kv.add(new BasicNameValuePair("device_hash", deviceId)); + kv.add(new BasicNameValuePair("device_name", deviceName)); + kv.add(new BasicNameValuePair("device_version", deviceVersion)); + kv.add(new BasicNameValuePair("device_country", deviceCountry)); + kv.add(new BasicNameValuePair("device_carrier", deviceCarrier)); + kv.add(new BasicNameValuePair("device_carrier_id", deviceCarrierId)); + httppost.setEntity(new UrlEncodedFormEntity(kv)); + httpclient.execute(httppost); + getSharedPreferences("CMStats", 0).edit().putLong(AnonymousStats.ANONYMOUS_LAST_CHECKED, + System.currentTimeMillis()).apply(); + } catch (Exception e) { + Log.e(TAG, "Got Exception", e); + } + ReportingServiceManager.setAlarm(this); + stopSelf(); + } + + private void promptUser() { + NotificationManager nm = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); + Intent nI = new Intent(); + nI.setComponent(new ComponentName(getPackageName(),Settings.AnonymousStatsActivity.class.getName())); + PendingIntent pI = PendingIntent.getActivity(this, 0, nI, 0); + Notification.Builder builder = new Notification.Builder(this) + .setSmallIcon(R.drawable.ic_cm_stats_notif) + .setAutoCancel(true) + .setTicker(getString(R.string.anonymous_statistics_title)) + .setContentIntent(pI) + .setWhen(0) + .setContentTitle(getString(R.string.anonymous_statistics_title)) + .setContentText(getString(R.string.anonymous_notification_desc)); + nm.notify(1, builder.getNotification()); + } +} diff --git a/src/com/android/settings/cmstats/ReportingServiceManager.java b/src/com/android/settings/cmstats/ReportingServiceManager.java new file mode 100644 index 0000000..41f563d --- /dev/null +++ b/src/com/android/settings/cmstats/ReportingServiceManager.java @@ -0,0 +1,93 @@ +/* + * Copyright (C) 2012 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.android.settings.cmstats; + +import android.app.AlarmManager; +import android.app.PendingIntent; +import android.content.BroadcastReceiver; +import android.content.ComponentName; +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; +import android.net.ConnectivityManager; +import android.net.NetworkInfo; +import android.util.Log; + +public class ReportingServiceManager extends BroadcastReceiver { + + public static final long dMill = 24 * 60 * 60 * 1000; + public static final long tFrame = 7 * dMill; + + @Override + public void onReceive(Context ctx, Intent intent) { + if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) { + setAlarm(ctx); + } else { + launchService(ctx); + } + } + + protected static void setAlarm (Context ctx) { + SharedPreferences prefs = ctx.getSharedPreferences("CMStats", 0); + prefs.edit().putBoolean(AnonymousStats.ANONYMOUS_ALARM_SET, false).apply(); + boolean optedIn = prefs.getBoolean(AnonymousStats.ANONYMOUS_OPT_IN, true); + boolean firstBoot = prefs.getBoolean(AnonymousStats.ANONYMOUS_FIRST_BOOT, true); + if (!optedIn || firstBoot) { + return; + } + long lastSynced = prefs.getLong(AnonymousStats.ANONYMOUS_LAST_CHECKED, 0); + if (lastSynced == 0) { + return; + } + long timeLeft = (lastSynced + tFrame) - System.currentTimeMillis(); + Intent sIntent = new Intent(ConnectivityManager.CONNECTIVITY_ACTION); + sIntent.setComponent(new ComponentName(ctx.getPackageName(), ReportingServiceManager.class.getName())); + AlarmManager alarmManager = (AlarmManager) ctx.getSystemService(Context.ALARM_SERVICE); + alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + timeLeft, PendingIntent.getBroadcast(ctx, 0, sIntent, 0)); + Log.d(ReportingService.TAG, "Next sync attempt in : " + timeLeft / dMill + " days"); + prefs.edit().putBoolean(AnonymousStats.ANONYMOUS_ALARM_SET, true).apply(); + } + + public static void launchService (Context ctx) { + ConnectivityManager cm = (ConnectivityManager) ctx.getSystemService(Context.CONNECTIVITY_SERVICE); + NetworkInfo networkInfo = cm.getActiveNetworkInfo(); + if (networkInfo != null && networkInfo.isConnected()) { + SharedPreferences prefs = ctx.getSharedPreferences("CMStats", 0); + long lastSynced = prefs.getLong(AnonymousStats.ANONYMOUS_LAST_CHECKED, 0); + boolean firstBoot = prefs.getBoolean(AnonymousStats.ANONYMOUS_FIRST_BOOT, true); + boolean optedIn = prefs.getBoolean(AnonymousStats.ANONYMOUS_OPT_IN, true); + boolean alarmSet = prefs.getBoolean(AnonymousStats.ANONYMOUS_ALARM_SET, false); + if (alarmSet) { + return; + } + boolean shouldSync = false; + if (lastSynced == 0) { + shouldSync = true; + } else if (System.currentTimeMillis() - lastSynced >= tFrame) { + shouldSync = true; + } + if ((shouldSync && optedIn) || firstBoot) { + Intent sIntent = new Intent(); + sIntent.setComponent(new ComponentName(ctx.getPackageName(), ReportingService.class.getName())); + sIntent.putExtra("firstBoot", firstBoot); + ctx.startService(sIntent); + } else if (optedIn) { + setAlarm(ctx); + } + } + } +} diff --git a/src/com/android/settings/cmstats/Utilities.java b/src/com/android/settings/cmstats/Utilities.java new file mode 100644 index 0000000..5e598db --- /dev/null +++ b/src/com/android/settings/cmstats/Utilities.java @@ -0,0 +1,94 @@ +/* + * Copyright (C) 2012 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.android.settings.cmstats; + +import java.math.BigInteger; +import java.net.NetworkInterface; +import java.security.MessageDigest; + +import android.content.Context; +import android.os.SystemProperties; +import android.telephony.TelephonyManager; + +public class Utilities { + public static String getUniqueID(Context ctx) { + TelephonyManager tm = (TelephonyManager) ctx + .getSystemService(Context.TELEPHONY_SERVICE); + + String device_id = digest(tm.getDeviceId()); + if (device_id == null) { + String wifiInterface = SystemProperties.get("wifi.interface"); + try { + String wifiMac = new String(NetworkInterface.getByName( + wifiInterface).getHardwareAddress()); + device_id = digest(wifiMac); + } catch (Exception e) { + device_id = null; + } + } + + return device_id; + } + + public static String getCarrier(Context ctx) { + TelephonyManager tm = (TelephonyManager) ctx + .getSystemService(Context.TELEPHONY_SERVICE); + String carrier = tm.getNetworkOperatorName(); + if ("".equals(carrier)) { + carrier = "Unknown"; + } + return carrier; + } + + public static String getCarrierId(Context ctx) { + TelephonyManager tm = (TelephonyManager) ctx + .getSystemService(Context.TELEPHONY_SERVICE); + String carrierId = tm.getNetworkOperator(); + if ("".equals(carrierId)) { + carrierId = "0"; + } + return carrierId; + } + + public static String getCountryCode(Context ctx) { + TelephonyManager tm = (TelephonyManager) ctx + .getSystemService(Context.TELEPHONY_SERVICE); + String countryCode = tm.getNetworkCountryIso(); + if (countryCode.equals("")) { + countryCode = "Unknown"; + } + return countryCode; + } + + public static String getDevice() { + return SystemProperties.get("ro.cm.device"); + } + + public static String getModVersion() { + return SystemProperties.get("ro.cm.version"); + } + + public static String digest(String input) { + try { + MessageDigest md = MessageDigest.getInstance("MD5"); + return new BigInteger(1, md.digest(input.getBytes())).toString(16) + .toUpperCase(); + } catch (Exception e) { + return null; + } + } +} diff --git a/src/com/android/settings/cyanogenmod/BootReceiver.java b/src/com/android/settings/cyanogenmod/BootReceiver.java new file mode 100644 index 0000000..6916b9d --- /dev/null +++ b/src/com/android/settings/cyanogenmod/BootReceiver.java @@ -0,0 +1,143 @@ +/* + * Copyright (C) 2012 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.android.settings.cyanogenmod; + +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; +import android.os.SystemProperties; +import android.preference.PreferenceManager; +import android.util.Log; + +import com.android.settings.Utils; + +import java.util.Arrays; +import java.util.List; + +public class BootReceiver extends BroadcastReceiver { + + private static final String TAG = "BootReceiver"; + + private static final String CPU_SETTINGS_PROP = "sys.cpufreq.restored"; + private static final String IOSCHED_SETTINGS_PROP = "sys.iosched.restored"; + private static final String KSM_SETTINGS_PROP = "sys.ksm.restored"; + + @Override + public void onReceive(Context ctx, Intent intent) { + if (SystemProperties.getBoolean(CPU_SETTINGS_PROP, false) == false + && intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) { + SystemProperties.set(CPU_SETTINGS_PROP, "true"); + configureCPU(ctx); + } else { + SystemProperties.set(CPU_SETTINGS_PROP, "false"); + } + + if (SystemProperties.getBoolean(IOSCHED_SETTINGS_PROP, false) == false + && intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) { + SystemProperties.set(IOSCHED_SETTINGS_PROP, "true"); + configureIOSched(ctx); + } else { + SystemProperties.set(IOSCHED_SETTINGS_PROP, "false"); + } + + if (Utils.fileExists(MemoryManagement.KSM_RUN_FILE)) { + if (SystemProperties.getBoolean(KSM_SETTINGS_PROP, false) == false + && intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) { + SystemProperties.set(KSM_SETTINGS_PROP, "true"); + configureKSM(ctx); + } else { + SystemProperties.set(KSM_SETTINGS_PROP, "false"); + } + } + } + + private void configureCPU(Context ctx) { + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx); + + if (prefs.getBoolean(Processor.SOB_PREF, false) == false) { + Log.i(TAG, "Restore disabled by user preference."); + return; + } + + String governor = prefs.getString(Processor.GOV_PREF, null); + String minFrequency = prefs.getString(Processor.FREQ_MIN_PREF, null); + String maxFrequency = prefs.getString(Processor.FREQ_MAX_PREF, null); + String availableFrequenciesLine = Utils.fileReadOneLine(Processor.FREQ_LIST_FILE); + String availableGovernorsLine = Utils.fileReadOneLine(Processor.GOV_LIST_FILE); + boolean noSettings = ((availableGovernorsLine == null) || (governor == null)) && + ((availableFrequenciesLine == null) || ((minFrequency == null) && (maxFrequency == null))); + List<String> frequencies = null; + List<String> governors = null; + + if (noSettings) { + Log.d(TAG, "No CPU settings saved. Nothing to restore."); + } else { + if (availableGovernorsLine != null){ + governors = Arrays.asList(availableGovernorsLine.split(" ")); + } + if (availableFrequenciesLine != null){ + frequencies = Arrays.asList(availableFrequenciesLine.split(" ")); + } + if (maxFrequency != null && frequencies != null && frequencies.contains(maxFrequency)) { + Utils.fileWriteOneLine(Processor.FREQ_MAX_FILE, maxFrequency); + } + if (minFrequency != null && frequencies != null && frequencies.contains(minFrequency)) { + Utils.fileWriteOneLine(Processor.FREQ_MIN_FILE, minFrequency); + } + if (governor != null && governors != null && governors.contains(governor)) { + Utils.fileWriteOneLine(Processor.GOV_FILE, governor); + } + Log.d(TAG, "CPU settings restored."); + } + } + + private void configureIOSched(Context ctx) { + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx); + + if (prefs.getBoolean(IOScheduler.SOB_PREF, false) == false) { + Log.i(TAG, "Restore disabled by user preference."); + return; + } + + String ioscheduler = prefs.getString(IOScheduler.IOSCHED_PREF, null); + String availableIOSchedulersLine = Utils.fileReadOneLine(IOScheduler.IOSCHED_LIST_FILE); + boolean noSettings = ((availableIOSchedulersLine == null) || (ioscheduler == null)); + List<String> ioschedulers = null; + + if (noSettings) { + Log.d(TAG, "No I/O scheduler settings saved. Nothing to restore."); + } else { + if (availableIOSchedulersLine != null){ + ioschedulers = Arrays.asList(availableIOSchedulersLine.replace("[", "").replace("]", "").split(" ")); + } + if (ioscheduler != null && ioschedulers != null && ioschedulers.contains(ioscheduler)) { + Utils.fileWriteOneLine(IOScheduler.IOSCHED_LIST_FILE, ioscheduler); + } + Log.d(TAG, "I/O scheduler settings restored."); + } + } + + private void configureKSM(Context ctx) { + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx); + + boolean ksm = prefs.getBoolean(MemoryManagement.KSM_PREF, false); + + Utils.fileWriteOneLine(MemoryManagement.KSM_RUN_FILE, ksm ? "1" : "0"); + Log.d(TAG, "KSM settings restored."); + } +} diff --git a/src/com/android/settings/cyanogenmod/ChangeLog.java b/src/com/android/settings/cyanogenmod/ChangeLog.java new file mode 100644 index 0000000..d06455b --- /dev/null +++ b/src/com/android/settings/cyanogenmod/ChangeLog.java @@ -0,0 +1,79 @@ +/* + * Copyright (C) 2012 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.android.settings.cyanogenmod; + +import com.android.settings.R; + +import android.os.Bundle; +import android.text.TextUtils; +import android.util.Config; +import android.webkit.WebView; +import android.webkit.WebViewClient; +import android.widget.Toast; +import android.app.Fragment; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.ScrollView; +import android.widget.TextView; +import android.view.ViewGroup; + +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.io.IOException; +import java.io.InputStreamReader; + +import com.android.internal.app.AlertActivity; +import com.android.internal.app.AlertController; + +public class ChangeLog extends Fragment { + + private static final String CHANGELOG_PATH = "/system/etc/CHANGELOG-CM.txt"; + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + InputStreamReader inputReader = null; + StringBuilder data = null; + try { + data = new StringBuilder(2048); + char tmp[] = new char[2048]; + int numRead; + inputReader = new FileReader(CHANGELOG_PATH); + while ((numRead = inputReader.read(tmp)) >= 0) { + data.append(tmp, 0, numRead); + } + } catch (IOException e) { + data.append(this.getString(R.string.changelog_error)); + } finally { + try { + if (inputReader != null) { + inputReader.close(); + } + } catch (IOException e) { + } + } + + TextView textView = new TextView(getActivity()); + textView.setText(data.toString()); + + final ScrollView scrollView = new ScrollView(getActivity()); + scrollView.addView(textView); + + return scrollView; + } +} diff --git a/src/com/android/settings/cyanogenmod/DisplayRotation.java b/src/com/android/settings/cyanogenmod/DisplayRotation.java new file mode 100644 index 0000000..92a3f29 --- /dev/null +++ b/src/com/android/settings/cyanogenmod/DisplayRotation.java @@ -0,0 +1,147 @@ +/* + * Copyright (C) 2012 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.android.settings.cyanogenmod; + +import android.database.ContentObserver; +import android.os.Bundle; +import android.os.Handler; +import android.preference.CheckBoxPreference; +import android.preference.Preference; +import android.preference.Preference.OnPreferenceChangeListener; +import android.preference.PreferenceScreen; +import android.provider.Settings; + +import com.android.internal.view.RotationPolicy; +import com.android.settings.R; +import com.android.settings.SettingsPreferenceFragment; + +public class DisplayRotation extends SettingsPreferenceFragment implements OnPreferenceChangeListener { + private static final String TAG = "DisplayRotation"; + + private static final String KEY_ACCELEROMETER = "accelerometer"; + private static final String ROTATION_0_PREF = "display_rotation_0"; + private static final String ROTATION_90_PREF = "display_rotation_90"; + private static final String ROTATION_180_PREF = "display_rotation_180"; + private static final String ROTATION_270_PREF = "display_rotation_270"; + + private CheckBoxPreference mAccelerometer; + private CheckBoxPreference mRotation0Pref; + private CheckBoxPreference mRotation90Pref; + private CheckBoxPreference mRotation180Pref; + private CheckBoxPreference mRotation270Pref; + + public static final int ROTATION_0_MODE = 1; + public static final int ROTATION_90_MODE = 2; + public static final int ROTATION_180_MODE = 4; + public static final int ROTATION_270_MODE = 8; + + private ContentObserver mAccelerometerRotationObserver = new ContentObserver(new Handler()) { + @Override + public void onChange(boolean selfChange) { + updateAccelerometerRotationCheckbox(); + } + }; + + @Override + public void onCreate(Bundle savedInstanceState) { + boolean hasRotationLock = this.getResources().getBoolean(com.android + .internal.R.bool.config_hasRotationLockSwitch); + + super.onCreate(savedInstanceState); + + addPreferencesFromResource(R.xml.display_rotation); + + PreferenceScreen prefSet = getPreferenceScreen(); + + mAccelerometer = (CheckBoxPreference) findPreference(KEY_ACCELEROMETER); + mAccelerometer.setPersistent(false); + + if (hasRotationLock) { + mAccelerometer.setEnabled(false); + } + mRotation0Pref = (CheckBoxPreference) prefSet.findPreference(ROTATION_0_PREF); + mRotation90Pref = (CheckBoxPreference) prefSet.findPreference(ROTATION_90_PREF); + mRotation180Pref = (CheckBoxPreference) prefSet.findPreference(ROTATION_180_PREF); + mRotation270Pref = (CheckBoxPreference) prefSet.findPreference(ROTATION_270_PREF); + + int mode = Settings.System.getInt(getContentResolver(), + Settings.System.ACCELEROMETER_ROTATION_ANGLES, + ROTATION_0_MODE|ROTATION_90_MODE|ROTATION_270_MODE); + + mRotation0Pref.setChecked((mode & ROTATION_0_MODE) != 0); + mRotation90Pref.setChecked((mode & ROTATION_90_MODE) != 0); + mRotation180Pref.setChecked((mode & ROTATION_180_MODE) != 0); + mRotation270Pref.setChecked((mode & ROTATION_270_MODE) != 0); + } + + @Override + public void onResume() { + super.onResume(); + + updateState(); + getContentResolver().registerContentObserver( + Settings.System.getUriFor(Settings.System.ACCELEROMETER_ROTATION), true, + mAccelerometerRotationObserver); + } + + @Override + public void onPause() { + super.onPause(); + + getContentResolver().unregisterContentObserver(mAccelerometerRotationObserver); + } + + private void updateState() { + updateAccelerometerRotationCheckbox(); + } + + private void updateAccelerometerRotationCheckbox() { + mAccelerometer.setChecked(!RotationPolicy.isRotationLocked(getActivity())); + } + + public boolean onPreferenceChange(Preference preference, Object newValue) { + return false; + } + + public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) { + if (preference == mAccelerometer) { + RotationPolicy.setRotationLockForAccessibility(getActivity(), !mAccelerometer.isChecked()); + } else if (preference == mRotation0Pref || + preference == mRotation90Pref || + preference == mRotation180Pref || + preference == mRotation270Pref) { + int mode = 0; + if (mRotation0Pref.isChecked()) + mode |= ROTATION_0_MODE; + if (mRotation90Pref.isChecked()) + mode |= ROTATION_90_MODE; + if (mRotation180Pref.isChecked()) + mode |= ROTATION_180_MODE; + if (mRotation270Pref.isChecked()) + mode |= ROTATION_270_MODE; + if (mode == 0) { + mode |= ROTATION_0_MODE; + mRotation0Pref.setChecked(true); + } + Settings.System.putInt(getActivity().getApplicationContext().getContentResolver(), + Settings.System.ACCELEROMETER_ROTATION_ANGLES, mode); + return true; + } + + return super.onPreferenceTreeClick(preferenceScreen, preference); + } +} diff --git a/src/com/android/settings/cyanogenmod/DraggableGridView.java b/src/com/android/settings/cyanogenmod/DraggableGridView.java new file mode 100644 index 0000000..d949d48 --- /dev/null +++ b/src/com/android/settings/cyanogenmod/DraggableGridView.java @@ -0,0 +1,513 @@ +/* + * Copyright (c) 2011, Animoto Inc. + * Copyright (C) 2012 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.android.settings.cyanogenmod; + +import java.util.Collections; +import java.util.ArrayList; + +import android.app.Activity; +import android.content.Context; +import android.graphics.Color; +import android.graphics.Point; +import android.graphics.PorterDuff.Mode; +import android.os.Handler; +import android.os.SystemClock; +import android.util.AttributeSet; +import android.util.DisplayMetrics; +import android.view.animation.AlphaAnimation; +import android.view.animation.Animation; +import android.view.animation.AnimationSet; +import android.view.animation.ScaleAnimation; +import android.view.animation.TranslateAnimation; +import android.view.MotionEvent; +import android.view.View; +import android.view.ViewGroup; +import android.widget.AdapterView.OnItemClickListener; +import android.widget.ImageView; +import android.widget.TextView; + +import com.android.settings.R; +import com.android.settings.cyanogenmod.QuickSettingsTiles.OnRearrangeListener; + +public class DraggableGridView extends ViewGroup implements + View.OnTouchListener, View.OnClickListener, View.OnLongClickListener { + + public static float childRatio = .95f; + protected int colCount, childSize, padding, dpi, scroll = 0; + protected float lastDelta = 0; + protected Handler handler = new Handler(); + protected int dragged = -1, lastX = -1, lastY = -1, lastTarget = -1; + protected boolean enabled = true, touching = false, isDelete = false; + public static int animT = 150; + protected ArrayList<Integer> newPositions = new ArrayList<Integer>(); + protected OnRearrangeListener onRearrangeListener; + protected OnClickListener secondaryOnClickListener; + private OnItemClickListener onItemClickListener; + + public DraggableGridView(Context context, AttributeSet attrs) { + super(context, attrs); + setListeners(); + setChildrenDrawingOrderEnabled(true); + DisplayMetrics metrics = new DisplayMetrics(); + ((Activity) context).getWindowManager().getDefaultDisplay().getMetrics(metrics); + dpi = metrics.densityDpi; + } + + protected void setListeners() { + setOnTouchListener(this); + super.setOnClickListener(this); + setOnLongClickListener(this); + } + + @Override + public void setOnClickListener(OnClickListener l) { + secondaryOnClickListener = l; + } + + protected Runnable updateTask = new Runnable() { + public void run() { + if (dragged != -1) { + if (lastY < padding * 3 && scroll > 0) + scroll -= 20; + else if (lastY > getBottom() - getTop() - (padding * 3) + && scroll < getMaxScroll()) + scroll += 20; + } else if (lastDelta != 0 && !touching) { + scroll += lastDelta; + lastDelta *= .9; + if (Math.abs(lastDelta) < .25) + lastDelta = 0; + } + clampScroll(); + onLayout(true, getLeft(), getTop(), getRight(), getBottom()); + if (lastDelta != 0) { + handler.postDelayed(this, 25); + } + } + }; + + @Override + public void addView(View child, int index) { + super.addView(child, index); + newPositions.add(-1); + } + + @Override + public void addView(View child) { + super.addView(child); + newPositions.add(-1); + }; + + @Override + public void removeViewAt(int index) { + super.removeViewAt(index); + newPositions.remove(index); + }; + + @Override + protected void onLayout(boolean changed, int l, int t, int r, int b) { + // compute width of view, in dp + float w = (r - l) / (dpi / 160f); + + // determine number of columns, at least 2 + colCount = 3; + + // determine childSize and padding, in px + childSize = (r - l) / colCount; + childSize = Math.round(childSize * childRatio); + padding = ((r - l) - (childSize * colCount)) / (colCount + 1); + + for (int i = 0; i < getChildCount(); i++) { + if (i != dragged) { + Point xy = getCoorFromIndex(i); + getChildAt(i).layout(xy.x, xy.y, xy.x + childSize, + xy.y + childSize); + } + } + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + // Calculate the cell width dynamically + int width = MeasureSpec.getSize(widthMeasureSpec); + int height = MeasureSpec.getSize(heightMeasureSpec); + int availableWidth = (int) (width - getPaddingLeft() + - getPaddingRight() - (3 - 1) * 0); + float cellWidth = (float) Math.ceil(((float) availableWidth) / 3); + + // Update each of the children's widths accordingly to the cell width + int N = getChildCount(); + int cellHeight = 0; + int cursor = 0; + for (int i = 0; i < N; ++i) { + // Update the child's width + View v = (View) getChildAt(i); + if (v.getVisibility() != View.GONE) { + ViewGroup.LayoutParams lp = (ViewGroup.LayoutParams) v + .getLayoutParams(); + int colSpan = 1; + lp.width = (int) ((colSpan * cellWidth) + (colSpan - 1) * 0); + + // Measure the child + int newWidthSpec = MeasureSpec.makeMeasureSpec(lp.width, + MeasureSpec.EXACTLY); + int newHeightSpec = MeasureSpec.makeMeasureSpec(lp.height, + MeasureSpec.EXACTLY); + v.measure(newWidthSpec, newHeightSpec); + + // Save the cell height + if (cellHeight <= 0) { + cellHeight = height; + } + cursor += colSpan; + } + } + + // Set the measured dimensions. We always fill the tray width, but wrap + // to the height of + // all the tiles. + int numRows = (int) Math.ceil((float) cursor / 3); + int newHeight = (int) ((numRows * cellHeight) + ((numRows - 1) * 0)) + + getPaddingTop() + getPaddingBottom(); + // setMeasuredDimension(width, newHeight); + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + } + + @Override + protected int getChildDrawingOrder(int childCount, int i) { + if (dragged == -1) + return i; + else if (i == childCount - 1) + return dragged; + else if (i >= dragged) + return i + 1; + return i; + } + + public int getIndexFromCoor(int x, int y) { + int col = getColOrRowFromCoor(x), row = getColOrRowFromCoor(y + scroll); + if (col == -1 || row == -1) // touch is between columns or rows + return -1; + int index = row * colCount + col; + if (index >= getChildCount()) + return -1; + return index; + } + + protected int getColOrRowFromCoor(int coor) { + coor -= padding; + for (int i = 0; coor > 0; i++) { + if (coor < childSize) + return i; + coor -= (childSize + padding); + } + return -1; + } + + protected int getTargetFromCoor(int x, int y) { + if (getColOrRowFromCoor(y + scroll) == -1) // touch is between rows + return -1; + + int leftPos = getIndexFromCoor(x - (childSize / 4), y); + int rightPos = getIndexFromCoor(x + (childSize / 4), y); + if (leftPos == -1 && rightPos == -1) // touch is in the middle of + // nowhere + return -1; + if (leftPos == rightPos) // touch is in the middle of a visual + return -1; + + int target = -1; + if (rightPos > -1) + target = rightPos; + else if (leftPos > -1) + target = leftPos + 1; + if (dragged < target) + return target - 1; + + return target; + } + + protected Point getCoorFromIndex(int index) { + int col = index % colCount; + int row = index / colCount; + return new Point(padding / 2 + (childSize + padding / 2) * col, padding + / 2 + (childSize + padding / 2) * row - scroll); + } + + public int getIndexOf(View child) { + for (int i = 0; i < getChildCount(); i++) + if (getChildAt(i) == child) + return i; + return -1; + } + + // EVENT HANDLERS + public void onClick(View view) { + if (enabled) { + if (secondaryOnClickListener != null) + secondaryOnClickListener.onClick(view); + if (onItemClickListener != null) + onItemClickListener.onItemClick(null, + getChildAt(getLastIndex()), getLastIndex(), + getLastIndex() / colCount); + } + } + + void toggleAddDelete(boolean delete) { + int resid = R.drawable.ic_menu_add; + int stringid = R.string.profiles_add; + if (delete) { + resid = R.drawable.ic_menu_delete_holo_dark; + stringid = R.string.dialog_delete_title; + } + TextView addDeleteTile = ((TextView) getChildAt(getChildCount() - 1).findViewById(R.id.qs_text)); + addDeleteTile.setCompoundDrawablesRelativeWithIntrinsicBounds(0, resid, 0, 0); + addDeleteTile.setText(stringid); + } + + public boolean onLongClick(View view) { + if (!enabled) + return false; + int index = getLastIndex(); + if (index != -1 && index != getChildCount() - 1) { + toggleAddDelete(true); + dragged = index; + animateDragged(); + return true; + } + return false; + } + + public boolean onTouch(View view, MotionEvent event) { + int action = event.getAction(); + switch (action & MotionEvent.ACTION_MASK) { + case MotionEvent.ACTION_DOWN: + enabled = true; + lastX = (int) event.getX(); + lastY = (int) event.getY(); + touching = true; + break; + case MotionEvent.ACTION_MOVE: + int delta = lastY - (int) event.getY(); + if (dragged != -1) { + // change draw location of dragged visual + int x = (int) event.getX(), y = (int) event.getY(); + int l = x - (3 * childSize / 4), t = y - (3 * childSize / 4); + getChildAt(dragged).layout(l, t, l + (childSize * 3 / 2), + t + (childSize * 3 / 2)); + + // check for new target hover + int target = getTargetFromCoor(x, y); + //Check if hovering over delete target + if (getIndexFromCoor(x, y) == getChildCount() - 1) { + getChildAt(dragged).setBackgroundColor(Color.RED); + isDelete = true; + break; + } else { + isDelete = false; + getChildAt(dragged).setBackgroundColor(Color.parseColor("#AA222222")); + } + if (lastTarget != target && target != getChildCount() - 1) { + if (target != -1) { + animateGap(target); + lastTarget = target; + } + } + } else { + scroll += delta; + clampScroll(); + if (Math.abs(delta) > 4) + enabled = false; + onLayout(true, getLeft(), getTop(), getRight(), getBottom()); + } + lastX = (int) event.getX(); + lastY = (int) event.getY(); + lastDelta = delta; + break; + case MotionEvent.ACTION_UP: + if (dragged != -1) { + toggleAddDelete(false); + View v = getChildAt(dragged); + if (lastTarget != -1 && !isDelete) + reorderChildren(true); + else { + Point xy = getCoorFromIndex(dragged); + v.layout(xy.x, xy.y, xy.x + childSize, xy.y + childSize); + } + v.clearAnimation(); + if (v instanceof ImageView) + ((ImageView) v).setAlpha(255); + if (isDelete) { + lastTarget = dragged; + removeViewAt(dragged); + onRearrangeListener.onDelete(dragged); + reorderChildren(false); + } + lastTarget = -1; + dragged = -1; + } else { + handler.post(updateTask); + } + touching = false; + isDelete = false; + break; + } + if (dragged != -1) + return true; + return false; + } + + // EVENT HELPERS + protected void animateDragged() { + View v = getChildAt(dragged); + int x = getCoorFromIndex(dragged).x + childSize / 2, y = getCoorFromIndex(dragged).y + + childSize / 2; + int l = x - (3 * childSize / 4), t = y - (3 * childSize / 4); + v.layout(l, t, l + (childSize * 3 / 2), t + (childSize * 3 / 2)); + AnimationSet animSet = new AnimationSet(true); + ScaleAnimation scale = new ScaleAnimation(.667f, 1, .667f, 1, + childSize * 3 / 4, childSize * 3 / 4); + scale.setDuration(animT); + AlphaAnimation alpha = new AlphaAnimation(1, .5f); + alpha.setDuration(animT); + + animSet.addAnimation(scale); + animSet.addAnimation(alpha); + animSet.setFillEnabled(true); + animSet.setFillAfter(true); + + v.clearAnimation(); + v.startAnimation(animSet); + } + + protected void animateGap(int target) { + for (int i = 0; i < getChildCount(); i++) { + View v = getChildAt(i); + if (i == dragged) + continue; + int newPos = i; + if (dragged < target && i >= dragged + 1 && i <= target) + newPos--; + else if (target < dragged && i >= target && i < dragged) + newPos++; + + // animate + int oldPos = i; + if (newPositions.get(i) != -1) + oldPos = newPositions.get(i); + if (oldPos == newPos) + continue; + + Point oldXY = getCoorFromIndex(oldPos); + Point newXY = getCoorFromIndex(newPos); + Point oldOffset = new Point(oldXY.x - v.getLeft(), oldXY.y + - v.getTop()); + Point newOffset = new Point(newXY.x - v.getLeft(), newXY.y + - v.getTop()); + + TranslateAnimation translate = new TranslateAnimation( + Animation.ABSOLUTE, oldOffset.x, Animation.ABSOLUTE, + newOffset.x, Animation.ABSOLUTE, oldOffset.y, + Animation.ABSOLUTE, newOffset.y); + translate.setDuration(animT); + translate.setFillEnabled(true); + translate.setFillAfter(true); + v.clearAnimation(); + v.startAnimation(translate); + + newPositions.set(i, newPos); + } + } + + protected void reorderChildren(boolean notify) { + if (onRearrangeListener != null && notify) + onRearrangeListener.onRearrange(dragged, lastTarget); + ArrayList<View> children = new ArrayList<View>(); + for (int i = 0; i < getChildCount(); i++) { + getChildAt(i).clearAnimation(); + children.add(getChildAt(i)); + } + removeAllViews(); + while (dragged != lastTarget) + if (lastTarget == children.size()) // dragged and dropped to the + // right of the last element + { + children.add(children.remove(dragged)); + dragged = lastTarget; + } else if (dragged < lastTarget) // shift to the right + { + Collections.swap(children, dragged, dragged + 1); + dragged++; + } else if (dragged > lastTarget) // shift to the left + { + Collections.swap(children, dragged, dragged - 1); + dragged--; + } + for (int i = 0; i < children.size(); i++) { + newPositions.set(i, -1); + addView(children.get(i)); + } + onLayout(true, getLeft(), getTop(), getRight(), getBottom()); + } + + public void scrollToTop() { + scroll = 0; + } + + public void scrollToBottom() { + scroll = Integer.MAX_VALUE; + clampScroll(); + } + + protected void clampScroll() { + int max = getMaxScroll(); + max = Math.max(max, 0); + if (scroll < 0) { + if (!touching) { + scroll -= scroll; + } else { + scroll = 0; + lastDelta = 0; + } + } else if (scroll > max) { + if (!touching) { + scroll += (max - scroll); + } else { + scroll = max; + lastDelta = 0; + } + } + } + + protected int getMaxScroll() { + int rowCount = (int) Math.ceil((double) getChildCount() / colCount), max = rowCount + * childSize + (rowCount + 1) * padding - getHeight(); + return max; + } + + public int getLastIndex() { + return getIndexFromCoor(lastX, lastY); + } + + public void setOnRearrangeListener(OnRearrangeListener l) { + this.onRearrangeListener = l; + } + + public void setOnItemClickListener(OnItemClickListener l) { + this.onItemClickListener = l; + } +} diff --git a/src/com/android/settings/cyanogenmod/HardwareKeys.java b/src/com/android/settings/cyanogenmod/HardwareKeys.java new file mode 100644 index 0000000..793391a --- /dev/null +++ b/src/com/android/settings/cyanogenmod/HardwareKeys.java @@ -0,0 +1,271 @@ +/* + * Copyright (C) 2012 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.android.settings.cyanogenmod; + +import android.os.Bundle; +import android.preference.CheckBoxPreference; +import android.preference.ListPreference; +import android.preference.Preference; +import android.preference.Preference.OnPreferenceChangeListener; +import android.preference.PreferenceCategory; +import android.preference.PreferenceScreen; +import android.provider.Settings; +import android.widget.Toast; + +import com.android.settings.R; +import com.android.settings.SettingsPreferenceFragment; + +public class HardwareKeys extends SettingsPreferenceFragment implements OnPreferenceChangeListener { + + private static final String HARDWARE_KEYS_CATEGORY_BINDINGS = "hardware_keys_bindings"; + private static final String HARDWARE_KEYS_ENABLE_CUSTOM = "hardware_keys_enable_custom"; + private static final String HARDWARE_KEYS_HOME_LONG_PRESS = "hardware_keys_home_long_press"; + private static final String HARDWARE_KEYS_MENU_PRESS = "hardware_keys_menu_press"; + private static final String HARDWARE_KEYS_MENU_LONG_PRESS = "hardware_keys_menu_long_press"; + private static final String HARDWARE_KEYS_ASSIST_PRESS = "hardware_keys_assist_press"; + private static final String HARDWARE_KEYS_ASSIST_LONG_PRESS = "hardware_keys_assist_long_press"; + private static final String HARDWARE_KEYS_APP_SWITCH_PRESS = "hardware_keys_app_switch_press"; + private static final String HARDWARE_KEYS_APP_SWITCH_LONG_PRESS = "hardware_keys_app_switch_long_press"; + private static final String HARDWARE_KEYS_SHOW_OVERFLOW = "hardware_keys_show_overflow"; + + // Available custom actions to perform on a key press. + // Must match values for KEY_HOME_LONG_PRESS_ACTION in: + // frameworks/base/core/java/android/provider/Settings.java + private static final int ACTION_NOTHING = 0; + private static final int ACTION_MENU = 1; + private static final int ACTION_APP_SWITCH = 2; + private static final int ACTION_SEARCH = 3; + private static final int ACTION_VOICE_SEARCH = 4; + private static final int ACTION_IN_APP_SEARCH = 5; + + // Masks for checking presence of hardware keys. + // Must match values in frameworks/base/core/res/res/values/config.xml + private static final int KEY_MASK_HOME = 0x01; + private static final int KEY_MASK_BACK = 0x02; + private static final int KEY_MASK_MENU = 0x04; + private static final int KEY_MASK_ASSIST = 0x08; + private static final int KEY_MASK_APP_SWITCH = 0x10; + + private CheckBoxPreference mEnableCustomBindings; + private ListPreference mHomeLongPressAction; + private ListPreference mMenuPressAction; + private ListPreference mMenuLongPressAction; + private ListPreference mAssistPressAction; + private ListPreference mAssistLongPressAction; + private ListPreference mAppSwitchPressAction; + private ListPreference mAppSwitchLongPressAction; + private CheckBoxPreference mShowActionOverflow; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + final int deviceKeys = getResources().getInteger( + com.android.internal.R.integer.config_deviceHardwareKeys); + final boolean hasHomeKey = (deviceKeys & KEY_MASK_HOME) != 0; + final boolean hasMenuKey = (deviceKeys & KEY_MASK_MENU) != 0; + final boolean hasAssistKey = (deviceKeys & KEY_MASK_ASSIST) != 0; + final boolean hasAppSwitchKey = (deviceKeys & KEY_MASK_APP_SWITCH) != 0; + + addPreferencesFromResource(R.xml.hardware_keys); + PreferenceScreen prefSet = getPreferenceScreen(); + + mEnableCustomBindings = (CheckBoxPreference) prefSet.findPreference( + HARDWARE_KEYS_ENABLE_CUSTOM); + mHomeLongPressAction = (ListPreference) prefSet.findPreference( + HARDWARE_KEYS_HOME_LONG_PRESS); + mMenuPressAction = (ListPreference) prefSet.findPreference( + HARDWARE_KEYS_MENU_PRESS); + mMenuLongPressAction = (ListPreference) prefSet.findPreference( + HARDWARE_KEYS_MENU_LONG_PRESS); + mAssistPressAction = (ListPreference) prefSet.findPreference( + HARDWARE_KEYS_ASSIST_PRESS); + mAssistLongPressAction = (ListPreference) prefSet.findPreference( + HARDWARE_KEYS_ASSIST_LONG_PRESS); + mAppSwitchPressAction = (ListPreference) prefSet.findPreference( + HARDWARE_KEYS_APP_SWITCH_PRESS); + mAppSwitchLongPressAction = (ListPreference) prefSet.findPreference( + HARDWARE_KEYS_APP_SWITCH_LONG_PRESS); + mShowActionOverflow = (CheckBoxPreference) prefSet.findPreference( + HARDWARE_KEYS_SHOW_OVERFLOW); + PreferenceCategory bindingsCategory = (PreferenceCategory) prefSet.findPreference( + HARDWARE_KEYS_CATEGORY_BINDINGS); + + if (hasHomeKey) { + int homeLongPressAction; + if (hasAppSwitchKey) { + homeLongPressAction = Settings.System.getInt(getContentResolver(), + Settings.System.KEY_HOME_LONG_PRESS_ACTION, ACTION_NOTHING); + } else { + homeLongPressAction = Settings.System.getInt(getContentResolver(), + Settings.System.KEY_HOME_LONG_PRESS_ACTION, ACTION_APP_SWITCH); + } + mHomeLongPressAction.setValue(Integer.toString(homeLongPressAction)); + mHomeLongPressAction.setSummary(mHomeLongPressAction.getEntry()); + mHomeLongPressAction.setOnPreferenceChangeListener(this); + } else { + bindingsCategory.removePreference(mHomeLongPressAction); + } + + if (hasMenuKey) { + int menuPressAction = Settings.System.getInt(getContentResolver(), + Settings.System.KEY_MENU_ACTION, ACTION_MENU); + mMenuPressAction.setValue(Integer.toString(menuPressAction)); + mMenuPressAction.setSummary(mMenuPressAction.getEntry()); + mMenuPressAction.setOnPreferenceChangeListener(this); + + int menuLongPressAction; + if (hasAssistKey) { + menuLongPressAction = Settings.System.getInt(getContentResolver(), + Settings.System.KEY_MENU_LONG_PRESS_ACTION, ACTION_NOTHING); + } else { + menuLongPressAction = Settings.System.getInt(getContentResolver(), + Settings.System.KEY_MENU_LONG_PRESS_ACTION, ACTION_SEARCH); + } + mMenuLongPressAction.setValue(Integer.toString(menuLongPressAction)); + mMenuLongPressAction.setSummary(mMenuLongPressAction.getEntry()); + mMenuLongPressAction.setOnPreferenceChangeListener(this); + } else { + bindingsCategory.removePreference(mMenuPressAction); + bindingsCategory.removePreference(mMenuLongPressAction); + } + + if (hasAssistKey) { + int assistPressAction = Settings.System.getInt(getContentResolver(), + Settings.System.KEY_ASSIST_ACTION, ACTION_SEARCH); + mAssistPressAction.setValue(Integer.toString(assistPressAction)); + mAssistPressAction.setSummary(mAssistPressAction.getEntry()); + mAssistPressAction.setOnPreferenceChangeListener(this); + + int assistLongPressAction = Settings.System.getInt(getContentResolver(), + Settings.System.KEY_ASSIST_LONG_PRESS_ACTION, ACTION_VOICE_SEARCH); + mAssistLongPressAction.setValue(Integer.toString(assistLongPressAction)); + mAssistLongPressAction.setSummary(mAssistLongPressAction.getEntry()); + mAssistLongPressAction.setOnPreferenceChangeListener(this); + } else { + bindingsCategory.removePreference(mAssistPressAction); + bindingsCategory.removePreference(mAssistLongPressAction); + } + + if (hasAppSwitchKey) { + int appSwitchPressAction = Settings.System.getInt(getContentResolver(), + Settings.System.KEY_APP_SWITCH_ACTION, ACTION_APP_SWITCH); + mAppSwitchPressAction.setValue(Integer.toString(appSwitchPressAction)); + mAppSwitchPressAction.setSummary(mAppSwitchPressAction.getEntry()); + mAppSwitchPressAction.setOnPreferenceChangeListener(this); + + int appSwitchLongPressAction = Settings.System.getInt(getContentResolver(), + Settings.System.KEY_APP_SWITCH_LONG_PRESS_ACTION, ACTION_NOTHING); + mAppSwitchLongPressAction.setValue(Integer.toString(appSwitchLongPressAction)); + mAppSwitchLongPressAction.setSummary(mAppSwitchLongPressAction.getEntry()); + mAppSwitchLongPressAction.setOnPreferenceChangeListener(this); + } else { + bindingsCategory.removePreference(mAppSwitchPressAction); + bindingsCategory.removePreference(mAppSwitchLongPressAction); + } + + mEnableCustomBindings.setChecked((Settings.System.getInt(getActivity(). + getApplicationContext().getContentResolver(), + Settings.System.HARDWARE_KEY_REBINDING, 0) == 1)); + mShowActionOverflow.setChecked((Settings.System.getInt(getActivity(). + getApplicationContext().getContentResolver(), + Settings.System.UI_FORCE_OVERFLOW_BUTTON, 0) == 1)); + } + + public boolean onPreferenceChange(Preference preference, Object newValue) { + if (preference == mHomeLongPressAction) { + int value = Integer.valueOf((String) newValue); + int index = mHomeLongPressAction.findIndexOfValue((String) newValue); + mHomeLongPressAction.setSummary( + mHomeLongPressAction.getEntries()[index]); + Settings.System.putInt(getContentResolver(), + Settings.System.KEY_HOME_LONG_PRESS_ACTION, value); + return true; + } else if (preference == mMenuPressAction) { + int value = Integer.valueOf((String) newValue); + int index = mMenuPressAction.findIndexOfValue((String) newValue); + mMenuPressAction.setSummary( + mMenuPressAction.getEntries()[index]); + Settings.System.putInt(getContentResolver(), + Settings.System.KEY_MENU_ACTION, value); + return true; + } else if (preference == mMenuLongPressAction) { + int value = Integer.valueOf((String) newValue); + int index = mMenuLongPressAction.findIndexOfValue((String) newValue); + mMenuLongPressAction.setSummary( + mMenuLongPressAction.getEntries()[index]); + Settings.System.putInt(getContentResolver(), + Settings.System.KEY_MENU_LONG_PRESS_ACTION, value); + return true; + } else if (preference == mAssistPressAction) { + int value = Integer.valueOf((String) newValue); + int index = mAssistPressAction.findIndexOfValue((String) newValue); + mAssistPressAction.setSummary( + mAssistPressAction.getEntries()[index]); + Settings.System.putInt(getContentResolver(), + Settings.System.KEY_ASSIST_ACTION, value); + return true; + } else if (preference == mAssistLongPressAction) { + int value = Integer.valueOf((String) newValue); + int index = mAssistLongPressAction.findIndexOfValue((String) newValue); + mAssistLongPressAction.setSummary( + mAssistLongPressAction.getEntries()[index]); + Settings.System.putInt(getContentResolver(), + Settings.System.KEY_ASSIST_LONG_PRESS_ACTION, value); + return true; + } else if (preference == mAppSwitchPressAction) { + int value = Integer.valueOf((String) newValue); + int index = mAppSwitchPressAction.findIndexOfValue((String) newValue); + mAppSwitchPressAction.setSummary( + mAppSwitchPressAction.getEntries()[index]); + Settings.System.putInt(getContentResolver(), + Settings.System.KEY_APP_SWITCH_ACTION, value); + return true; + } else if (preference == mAppSwitchLongPressAction) { + int value = Integer.valueOf((String) newValue); + int index = mAppSwitchLongPressAction.findIndexOfValue((String) newValue); + mAppSwitchLongPressAction.setSummary( + mAppSwitchLongPressAction.getEntries()[index]); + Settings.System.putInt(getContentResolver(), + Settings.System.KEY_APP_SWITCH_LONG_PRESS_ACTION, value); + return true; + } + return false; + } + + public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) { + if (preference == mEnableCustomBindings) { + Settings.System.putInt(getContentResolver(), Settings.System.HARDWARE_KEY_REBINDING, + mEnableCustomBindings.isChecked() ? 1 : 0); + return true; + } else if (preference == mShowActionOverflow) { + boolean enabled = mShowActionOverflow.isChecked(); + Settings.System.putInt(getContentResolver(), Settings.System.UI_FORCE_OVERFLOW_BUTTON, + enabled ? 1 : 0); + // Show appropriate + if (enabled) { + Toast.makeText(getActivity(), R.string.hardware_keys_show_overflow_toast_enable, + Toast.LENGTH_LONG).show(); + } else { + Toast.makeText(getActivity(), R.string.hardware_keys_show_overflow_toast_disable, + Toast.LENGTH_LONG).show(); + } + return true; + } + return false; + } +} diff --git a/src/com/android/settings/cyanogenmod/IOScheduler.java b/src/com/android/settings/cyanogenmod/IOScheduler.java new file mode 100644 index 0000000..68142c5 --- /dev/null +++ b/src/com/android/settings/cyanogenmod/IOScheduler.java @@ -0,0 +1,124 @@ +/* + * Copyright (C) 2012 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.android.settings.cyanogenmod; + +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.preference.ListPreference; +import android.preference.Preference; +import android.preference.PreferenceScreen; + +import com.android.settings.R; +import com.android.settings.SettingsPreferenceFragment; +import com.android.settings.Utils; + +// +// I/O Scheduler Related Settings +// +public class IOScheduler extends SettingsPreferenceFragment implements + Preference.OnPreferenceChangeListener { + + public static final String IOSCHED_PREF = "pref_io_sched"; + public static final String IOSCHED_LIST_FILE = "/sys/block/mmcblk0/queue/scheduler"; + + public static final String SOB_PREF = "pref_io_sched_set_on_boot"; + + private static final String TAG = "IOScheduler"; + + private String mIOSchedulerFormat; + + private ListPreference mIOSchedulerPref; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + mIOSchedulerFormat = getString(R.string.io_sched_summary); + + String[] availableIOSchedulers = new String[0]; + String availableIOSchedulersLine; + int bropen, brclose; + String currentIOScheduler = null; + + addPreferencesFromResource(R.xml.ioscheduler_settings); + + PreferenceScreen prefScreen = getPreferenceScreen(); + + mIOSchedulerPref = (ListPreference) prefScreen.findPreference(IOSCHED_PREF); + + /* I/O scheduler + Some systems might not use I/O schedulers */ + if (!Utils.fileExists(IOSCHED_LIST_FILE) || + (availableIOSchedulersLine = Utils.fileReadOneLine(IOSCHED_LIST_FILE)) == null) { + prefScreen.removePreference(mIOSchedulerPref); + + } else { + availableIOSchedulers = availableIOSchedulersLine.replace("[", "").replace("]", "").split(" "); + bropen = availableIOSchedulersLine.indexOf("["); + brclose = availableIOSchedulersLine.lastIndexOf("]"); + if (bropen >= 0 && brclose >= 0) + currentIOScheduler = availableIOSchedulersLine.substring(bropen + 1, brclose); + + mIOSchedulerPref.setEntryValues(availableIOSchedulers); + mIOSchedulerPref.setEntries(availableIOSchedulers); + if (currentIOScheduler != null) + mIOSchedulerPref.setValue(currentIOScheduler); + mIOSchedulerPref.setSummary(String.format(mIOSchedulerFormat, currentIOScheduler)); + mIOSchedulerPref.setOnPreferenceChangeListener(this); + } + } + + @Override + public void onResume() { + String availableIOSchedulersLine; + int bropen, brclose; + String currentIOScheduler; + + super.onResume(); + + if (Utils.fileExists(IOSCHED_LIST_FILE) && + (availableIOSchedulersLine = Utils.fileReadOneLine(IOSCHED_LIST_FILE)) != null) { + bropen = availableIOSchedulersLine.indexOf("["); + brclose = availableIOSchedulersLine.lastIndexOf("]"); + if (bropen >= 0 && brclose >= 0) { + currentIOScheduler = availableIOSchedulersLine.substring(bropen + 1, brclose); + mIOSchedulerPref.setSummary(String.format(mIOSchedulerFormat, currentIOScheduler)); + } + } + } + + public boolean onPreferenceChange(Preference preference, Object newValue) { + String fname = ""; + + if (newValue != null) { + if (preference == mIOSchedulerPref) { + fname = IOSCHED_LIST_FILE; + } + + if (Utils.fileWriteOneLine(fname, (String) newValue)) { + if (preference == mIOSchedulerPref) { + mIOSchedulerPref.setSummary(String.format(mIOSchedulerFormat, (String) newValue)); + } + return true; + } else { + return false; + } + } + return false; + } +} diff --git a/src/com/android/settings/cyanogenmod/IconPicker.java b/src/com/android/settings/cyanogenmod/IconPicker.java new file mode 100644 index 0000000..386468a --- /dev/null +++ b/src/com/android/settings/cyanogenmod/IconPicker.java @@ -0,0 +1,201 @@ +/* + * Copyright (C) 2012 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.android.settings.cyanogenmod; + +import java.io.File; +import java.util.ArrayList; + +import android.app.Activity; +import android.app.AlertDialog; +import android.app.Dialog; +import android.app.Fragment; +import android.content.ActivityNotFoundException; +import android.content.ComponentName; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.res.Resources; +import android.content.res.TypedArray; +import android.graphics.Bitmap; +import android.graphics.drawable.Drawable; +import android.net.Uri; +import android.provider.MediaStore; +import android.view.View; +import android.view.ViewGroup; +import android.widget.AdapterView; +import android.widget.AdapterView.OnItemClickListener; +import android.widget.BaseAdapter; +import android.widget.ListView; +import android.widget.TextView; + +import com.android.settings.R; + +public class IconPicker { + + private Activity mParent; + private Resources mResources; + private OnIconPickListener mIconListener; + private static final String ICON_ACTION = "com.cyanogenmod.ACTION_PICK_ICON"; + public static final String RESOURCE_NAME = "resource_name"; + public static final String PACKAGE_NAME = "package_name"; + public static final int REQUEST_PICK_SYSTEM = 0; + public static final int REQUEST_PICK_GALLERY = 1; + public static final int REQUEST_PICK_ICON_PACK = 2; + + public interface OnIconPickListener { + void iconPicked(int requestCode, int resultCode, Intent in); + } + + public IconPicker(Activity parent, OnIconPickListener listener) { + mParent = parent; + mResources = parent.getResources(); + mIconListener = listener; + } + + public void onActivityResult(int requestCode, int resultCode, Intent data) { + mIconListener.iconPicked(requestCode, resultCode, data); + } + + public void pickIcon(final int fragmentId, final File image) { + Intent iconPack = new Intent(ICON_ACTION); + ArrayList<String> items = new ArrayList<String>(); + items.add(mResources.getString(R.string.icon_picker_system_icons_title)); + items.add(mResources.getString(R.string.icon_picker_gallery_title)); + ComponentName aInfo = iconPack.resolveActivity(mParent.getPackageManager()); + if (aInfo != null) { + items.add(mResources.getString(R.string.icon_picker_pack_title)); + } + new AlertDialog.Builder(mParent) + .setTitle(R.string.icon_picker_title) + .setItems(items.toArray(new String[items.size()]), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int item) { + showChosen(item, image, fragmentId); + } + }).show(); + } + + private void startFragmentOrActivityForResult(Intent pickIntent, int requestCode, int fragmentId) { + if (fragmentId == 0) { + mParent.startActivityForResult(pickIntent, requestCode); + } else { + Fragment cFrag = mParent.getFragmentManager().findFragmentById(fragmentId); + if (cFrag != null) { + mParent.startActivityFromFragment(cFrag, pickIntent, requestCode); + } + } + } + + private void showChosen(final int type, File image, int fragmentId) { + if (type == REQUEST_PICK_SYSTEM) { + ListView listie = new ListView(mParent); + listie.setAdapter(new IconAdapter()); + final Dialog dialog = new Dialog(mParent); + dialog.setTitle(R.string.icon_picker_choose_icon_title); + dialog.setContentView(listie); + listie.setOnItemClickListener(new OnItemClickListener(){ + @Override + public void onItemClick(AdapterView<?> parent, View view, + int position, long id) { + Intent in = new Intent(); + in.putExtra("resource_name", ((IconAdapter) parent.getAdapter()).getItemReference(position)); + mIconListener.iconPicked(type, Activity.RESULT_OK, in); + dialog.dismiss(); + } + }); + dialog.show(); + } else if (type == REQUEST_PICK_GALLERY) { + Intent intent = new Intent(Intent.ACTION_GET_CONTENT, null); + intent.setType("image/*"); + intent.putExtra("crop", "true"); + intent.putExtra("scale", true); + intent.putExtra("scaleUpIfNeeded", false); + intent.putExtra("outputFormat", Bitmap.CompressFormat.PNG.toString()); + intent.putExtra("aspectX", 1); + intent.putExtra("aspectY", 1); + intent.putExtra("outputX", 162); + intent.putExtra("outputY", 162); + try { + intent.putExtra(MediaStore.EXTRA_OUTPUT,Uri.fromFile(image)); + intent.putExtra("return-data", false); + startFragmentOrActivityForResult(intent, type, fragmentId); + } catch (ActivityNotFoundException e) { + e.printStackTrace(); + } + } else if (type == REQUEST_PICK_ICON_PACK) { + Intent iconPack = new Intent(ICON_ACTION); + startFragmentOrActivityForResult(iconPack, type, fragmentId); + } + } + + class IconAdapter extends BaseAdapter { + + String[] labels; + TypedArray icons; + + public IconAdapter() { + labels = mResources.getStringArray(R.array.lockscreen_icon_picker_labels); + icons = mResources.obtainTypedArray(R.array.lockscreen_icon_picker_icons); + } + + @Override + public int getCount() { + return labels.length; + } + + @Override + public Object getItem(int position) { + return icons.getDrawable(position); + } + + public String getItemReference(int position) { + String name = icons.getString(position); + int separatorIndex = name.lastIndexOf(File.separator); + int periodIndex = name.lastIndexOf('.'); + return name.substring(separatorIndex + 1, periodIndex); + } + + @Override + public long getItemId(int position) { + return 0; + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + View iView = convertView; + if (convertView == null) { + iView = View.inflate(mParent, android.R.layout.simple_list_item_1, null); + } + TextView tt = (TextView) iView.findViewById(android.R.id.text1); + tt.setText(labels[position]); + Drawable ic = ((Drawable) getItem(position)).mutate(); + int bound = mParent.getResources().getDimensionPixelSize(R.dimen.shortcut_picker_left_padding); + ic.setBounds(0, 0, bound, bound); + tt.setCompoundDrawables(ic, null, null, null); + return iView; + } + + } + + class IconItem { + String label; + int id; + IconItem(String l, int i) { + label = l; + id = i; + } + } + +}
\ No newline at end of file diff --git a/src/com/android/settings/cyanogenmod/LockscreenButtons.java b/src/com/android/settings/cyanogenmod/LockscreenButtons.java new file mode 100644 index 0000000..3f840f8 --- /dev/null +++ b/src/com/android/settings/cyanogenmod/LockscreenButtons.java @@ -0,0 +1,168 @@ +/* + * Copyright (C) 2012 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.android.settings.cyanogenmod; + +import java.util.*; + +import android.app.Activity; +import android.content.Intent; +import android.os.Bundle; +import android.preference.ListPreference; +import android.preference.Preference; +import android.preference.PreferenceActivity; +import android.preference.PreferenceScreen; +import android.provider.Settings; +import android.text.TextUtils; + +import com.android.settings.R; +import com.android.settings.SettingsPreferenceFragment; +import com.android.settings.Utils; + +/** + * Lockscreen Buttons Settings + */ +public class LockscreenButtons extends SettingsPreferenceFragment + implements Preference.OnPreferenceChangeListener { + + private static final String TAG = "LockscreenButtons"; + + private static final String LONG_PRESS_BACK = "lockscreen_long_press_back"; + private static final String LONG_PRESS_HOME = "lockscreen_long_press_home"; + private static final String LONG_PRESS_MENU = "lockscreen_long_press_menu"; + + // Masks for checking presence of hardware keys. + // Must match values in frameworks/base/core/res/res/values/config.xml + private static final int KEY_MASK_HOME = 0x01; + private static final int KEY_MASK_BACK = 0x02; + private static final int KEY_MASK_MENU = 0x04; + + private ListPreference mLongBackAction; + private ListPreference mLongHomeAction; + private ListPreference mLongMenuAction; + private ListPreference[] mActions; + + private boolean torchSupported() { + return getResources().getBoolean(R.bool.has_led_flash); + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + final int deviceKeys = getResources().getInteger( + com.android.internal.R.integer.config_deviceHardwareKeys); + final boolean hasHomeKey = (deviceKeys & KEY_MASK_HOME) != 0; + final boolean hasBackKey = (deviceKeys & KEY_MASK_BACK) != 0; + final boolean hasMenuKey = (deviceKeys & KEY_MASK_MENU) != 0; + + addPreferencesFromResource(R.xml.lockscreen_buttons_settings); + + PreferenceScreen prefSet = getPreferenceScreen(); + + mLongBackAction = (ListPreference) prefSet.findPreference(LONG_PRESS_BACK); + if (hasBackKey) { + mLongBackAction.setKey(Settings.System.LOCKSCREEN_LONG_BACK_ACTION); + } else { + getPreferenceScreen().removePreference(mLongBackAction); + } + + mLongHomeAction = (ListPreference) prefSet.findPreference(LONG_PRESS_HOME); + if (hasHomeKey) { + mLongHomeAction.setKey(Settings.System.LOCKSCREEN_LONG_HOME_ACTION); + } else { + getPreferenceScreen().removePreference(mLongHomeAction); + } + + mLongMenuAction = (ListPreference) prefSet.findPreference(LONG_PRESS_MENU); + if (hasMenuKey) { + mLongMenuAction.setKey(Settings.System.LOCKSCREEN_LONG_MENU_ACTION); + } else { + getPreferenceScreen().removePreference(mLongMenuAction); + } + + mActions = new ListPreference[] { + mLongBackAction, mLongHomeAction, mLongMenuAction + }; + for (ListPreference pref : mActions) { + if (torchSupported()) { + final CharSequence[] oldEntries = pref.getEntries(); + final CharSequence[] oldValues = pref.getEntryValues(); + ArrayList<CharSequence> newEntries = new ArrayList<CharSequence>(); + ArrayList<CharSequence> newValues = new ArrayList<CharSequence>(); + for (int i = 0; i < oldEntries.length; i++) { + newEntries.add(oldEntries[i].toString()); + newValues.add(oldValues[i].toString()); + } + newEntries.add(getString(R.string.lockscreen_buttons_flashlight)); + newValues.add("FLASHLIGHT"); + pref.setEntries( + newEntries.toArray(new CharSequence[newEntries.size()])); + pref.setEntryValues( + newValues.toArray(new CharSequence[newValues.size()])); + } + pref.setOnPreferenceChangeListener(this); + } + } + + + @Override + public void onResume() { + super.onResume(); + + for (ListPreference pref : mActions) { + updateEntry(pref); + } + } + + private void updateEntry(ListPreference pref) { + String value = Settings.System.getString(getContentResolver(), pref.getKey()); + if (value == null) { + value = ""; + } + + CharSequence entry = findEntryForValue(pref, value); + if (entry != null) { + pref.setValue(value); + pref.setSummary(entry); + return; + } + } + + private CharSequence findEntryForValue(ListPreference pref, CharSequence value) { + CharSequence[] entries = pref.getEntryValues(); + for (int i = 0; i < entries.length; i++) { + if (TextUtils.equals(entries[i], value)) { + return pref.getEntries()[i]; + } + } + return null; + } + + @Override + public boolean onPreferenceChange(Preference pref, Object newValue) { + /* we only have ListPreferences, so know newValue is a string */ + ListPreference list = (ListPreference) pref; + String value = (String) newValue; + + if (Settings.System.putString(getContentResolver(), list.getKey(), value)) { + pref.setSummary(findEntryForValue(list, value)); + } + + return true; + } + +} diff --git a/src/com/android/settings/cyanogenmod/LockscreenInterface.java b/src/com/android/settings/cyanogenmod/LockscreenInterface.java new file mode 100644 index 0000000..fc70dbf --- /dev/null +++ b/src/com/android/settings/cyanogenmod/LockscreenInterface.java @@ -0,0 +1,281 @@ +/* + * Copyright (C) 2012 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.android.settings.cyanogenmod; + +import java.io.File; +import java.io.IOException; + +import android.app.Activity; +import android.app.AlertDialog; +import android.content.ActivityNotFoundException; +import android.content.ContentResolver; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.res.Configuration; +import android.graphics.Bitmap; +import android.graphics.Rect; +import android.net.Uri; +import android.os.Bundle; +import android.os.UserHandle; +import android.preference.CheckBoxPreference; +import android.preference.ListPreference; +import android.preference.Preference; +import android.preference.PreferenceScreen; +import android.provider.MediaStore; +import android.provider.Settings; +import android.view.Display; +import android.view.Window; +import android.widget.Toast; + +import com.android.settings.R; +import com.android.settings.Utils; +import com.android.settings.SettingsPreferenceFragment; +import com.android.settings.notificationlight.ColorPickerView; + +public class LockscreenInterface extends SettingsPreferenceFragment implements + Preference.OnPreferenceChangeListener { + private static final String TAG = "LockscreenInterface"; + + private static final int REQUEST_CODE_BG_WALLPAPER = 1024; + + private static final int LOCKSCREEN_BACKGROUND_COLOR_FILL = 0; + private static final int LOCKSCREEN_BACKGROUND_CUSTOM_IMAGE = 1; + private static final int LOCKSCREEN_BACKGROUND_DEFAULT_WALLPAPER = 2; + + private static final String KEY_ALWAYS_BATTERY = "lockscreen_battery_status"; + private static final String KEY_LOCKSCREEN_BUTTONS = "lockscreen_buttons"; + private static final String KEY_LOCKSCREEN_MAXIMIZE_WIDGETS = "lockscreen_maximize_widgets"; + private static final String KEY_BACKGROUND = "lockscreen_background"; + private static final String KEY_SCREEN_SECURITY = "screen_security"; + + private ListPreference mCustomBackground; + private ListPreference mBatteryStatus; + private CheckBoxPreference mMaximizeWidgets; + + private File mWallpaperImage; + private File mWallpaperTemporary; + + private boolean mIsPrimary; + + public boolean hasButtons() { + return !getResources().getBoolean(com.android.internal.R.bool.config_showNavigationBar); + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + addPreferencesFromResource(R.xml.lockscreen_interface_settings); + + // Determine which user is logged in + mIsPrimary = UserHandle.myUserId() == UserHandle.USER_OWNER; + if (mIsPrimary) { + // Its the primary user, show all the settings + mBatteryStatus = (ListPreference) findPreference(KEY_ALWAYS_BATTERY); + if (mBatteryStatus != null) { + mBatteryStatus.setOnPreferenceChangeListener(this); + } + + mMaximizeWidgets = (CheckBoxPreference)findPreference(KEY_LOCKSCREEN_MAXIMIZE_WIDGETS); + if (!Utils.isPhone(getActivity())) { + getPreferenceScreen().removePreference(mMaximizeWidgets); + mMaximizeWidgets = null; + } else { + mMaximizeWidgets.setOnPreferenceChangeListener(this); + } + + PreferenceScreen lockscreenButtons = (PreferenceScreen) findPreference(KEY_LOCKSCREEN_BUTTONS); + if (!hasButtons()) { + getPreferenceScreen().removePreference(lockscreenButtons); + } + } else { + // Secondary user is logged in, remove all primary user specific preferences + PreferenceScreen prefScreen = getPreferenceScreen(); + prefScreen.removePreference(findPreference(KEY_SCREEN_SECURITY)); + prefScreen.removePreference(findPreference(KEY_ALWAYS_BATTERY)); + prefScreen.removePreference(findPreference(KEY_LOCKSCREEN_BUTTONS)); + prefScreen.removePreference(findPreference(KEY_LOCKSCREEN_MAXIMIZE_WIDGETS)); + } + + // This applies to all users + mCustomBackground = (ListPreference) findPreference(KEY_BACKGROUND); + mCustomBackground.setOnPreferenceChangeListener(this); + updateCustomBackgroundSummary(); + + mWallpaperImage = new File(getActivity().getFilesDir() + "/lockwallpaper"); + mWallpaperTemporary = new File(getActivity().getCacheDir() + "/lockwallpaper.tmp"); + } + + private void updateCustomBackgroundSummary() { + int resId; + String value = Settings.System.getString(getContentResolver(), + Settings.System.LOCKSCREEN_BACKGROUND); + if (value == null) { + resId = R.string.lockscreen_background_default_wallpaper; + mCustomBackground.setValueIndex(LOCKSCREEN_BACKGROUND_DEFAULT_WALLPAPER); + } else if (value.isEmpty()) { + resId = R.string.lockscreen_background_custom_image; + mCustomBackground.setValueIndex(LOCKSCREEN_BACKGROUND_CUSTOM_IMAGE); + } else { + resId = R.string.lockscreen_background_color_fill; + mCustomBackground.setValueIndex(LOCKSCREEN_BACKGROUND_COLOR_FILL); + } + mCustomBackground.setSummary(getResources().getString(resId)); + } + + @Override + public void onResume() { + super.onResume(); + + if (mIsPrimary) { + ContentResolver cr = getActivity().getContentResolver(); + if (mBatteryStatus != null) { + int batteryStatus = Settings.System.getInt(cr, + Settings.System.LOCKSCREEN_ALWAYS_SHOW_BATTERY, 0); + mBatteryStatus.setValueIndex(batteryStatus); + mBatteryStatus.setSummary(mBatteryStatus.getEntries()[batteryStatus]); + } + + if (mMaximizeWidgets != null) { + mMaximizeWidgets.setChecked(Settings.System.getInt(cr, + Settings.System.LOCKSCREEN_MAXIMIZE_WIDGETS, 0) == 1); + } + } + } + + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + if (requestCode == REQUEST_CODE_BG_WALLPAPER) { + int hintId; + + if (resultCode == Activity.RESULT_OK) { + if (mWallpaperTemporary.exists()) { + mWallpaperTemporary.renameTo(mWallpaperImage); + } + mWallpaperImage.setReadOnly(); + hintId = R.string.lockscreen_background_result_successful; + Settings.System.putString(getContentResolver(), + Settings.System.LOCKSCREEN_BACKGROUND, ""); + updateCustomBackgroundSummary(); + } else { + if (mWallpaperTemporary.exists()) { + mWallpaperTemporary.delete(); + } + hintId = R.string.lockscreen_background_result_not_successful; + } + Toast.makeText(getActivity(), + getResources().getString(hintId), Toast.LENGTH_LONG).show(); + } + } + + @Override + public boolean onPreferenceChange(Preference preference, Object objValue) { + ContentResolver cr = getActivity().getContentResolver(); + + if (preference == mBatteryStatus) { + int value = Integer.valueOf((String) objValue); + int index = mBatteryStatus.findIndexOfValue((String) objValue); + Settings.System.putInt(cr, Settings.System.LOCKSCREEN_ALWAYS_SHOW_BATTERY, value); + mBatteryStatus.setSummary(mBatteryStatus.getEntries()[index]); + return true; + } else if (preference == mMaximizeWidgets) { + boolean value = (Boolean) objValue; + Settings.System.putInt(cr, Settings.System.LOCKSCREEN_MAXIMIZE_WIDGETS, value ? 1 : 0); + return true; + } else if (preference == mCustomBackground) { + int selection = mCustomBackground.findIndexOfValue(objValue.toString()); + return handleBackgroundSelection(selection); + } + return false; + } + + private boolean handleBackgroundSelection(int selection) { + if (selection == LOCKSCREEN_BACKGROUND_COLOR_FILL) { + final ColorPickerView colorView = new ColorPickerView(getActivity()); + int currentColor = Settings.System.getInt(getContentResolver(), + Settings.System.LOCKSCREEN_BACKGROUND, -1); + + if (currentColor != -1) { + colorView.setColor(currentColor); + } + colorView.setAlphaSliderVisible(true); + + new AlertDialog.Builder(getActivity()) + .setTitle(R.string.lockscreen_custom_background_dialog_title) + .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + Settings.System.putInt(getContentResolver(), + Settings.System.LOCKSCREEN_BACKGROUND, colorView.getColor()); + updateCustomBackgroundSummary(); + } + }) + .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + } + }) + .setView(colorView) + .show(); + } else if (selection == LOCKSCREEN_BACKGROUND_CUSTOM_IMAGE) { + final Intent intent = new Intent(Intent.ACTION_GET_CONTENT, null); + intent.setType("image/*"); + intent.putExtra("crop", "true"); + intent.putExtra("scale", true); + intent.putExtra("scaleUpIfNeeded", false); + intent.putExtra("outputFormat", Bitmap.CompressFormat.PNG.toString()); + + final Display display = getActivity().getWindowManager().getDefaultDisplay(); + final Rect rect = new Rect(); + final Window window = getActivity().getWindow(); + + window.getDecorView().getWindowVisibleDisplayFrame(rect); + + int statusBarHeight = rect.top; + int contentViewTop = window.findViewById(Window.ID_ANDROID_CONTENT).getTop(); + int titleBarHeight = contentViewTop - statusBarHeight; + boolean isPortrait = getResources().getConfiguration().orientation == + Configuration.ORIENTATION_PORTRAIT; + + int width = display.getWidth(); + int height = display.getHeight() - titleBarHeight; + + intent.putExtra("aspectX", isPortrait ? width : height); + intent.putExtra("aspectY", isPortrait ? height : width); + + try { + mWallpaperTemporary.createNewFile(); + mWallpaperTemporary.setWritable(true, false); + intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(mWallpaperTemporary)); + intent.putExtra("return-data", false); + getActivity().startActivityFromFragment(this, intent, REQUEST_CODE_BG_WALLPAPER); + } catch (IOException e) { + // Do nothing here + } catch (ActivityNotFoundException e) { + // Do nothing here + } + } else if (selection == LOCKSCREEN_BACKGROUND_DEFAULT_WALLPAPER) { + Settings.System.putString(getContentResolver(), + Settings.System.LOCKSCREEN_BACKGROUND, null); + updateCustomBackgroundSummary(); + return true; + } + + return false; + } +} diff --git a/src/com/android/settings/cyanogenmod/LockscreenTargets.java b/src/com/android/settings/cyanogenmod/LockscreenTargets.java new file mode 100644 index 0000000..350a348 --- /dev/null +++ b/src/com/android/settings/cyanogenmod/LockscreenTargets.java @@ -0,0 +1,571 @@ +/* + * Copyright (C) 2012 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.android.settings.cyanogenmod; + +import java.io.File; +import java.io.IOException; +import java.net.URISyntaxException; +import java.util.ArrayList; + +import android.app.Activity; +import android.app.AlertDialog; +import android.app.Fragment; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.Intent.ShortcutIconResource; +import android.content.pm.ActivityInfo; +import android.content.pm.PackageManager; +import android.content.pm.PackageManager.NameNotFoundException; +import android.content.res.Configuration; +import android.content.res.Resources; +import android.content.res.Resources.NotFoundException; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.graphics.drawable.BitmapDrawable; +import android.graphics.drawable.Drawable; +import android.graphics.drawable.InsetDrawable; +import android.graphics.drawable.LayerDrawable; +import android.graphics.drawable.StateListDrawable; +import android.os.Bundle; +import android.provider.Settings; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Button; +import android.widget.ImageButton; +import android.widget.TextView; +import android.widget.Toast; + +import com.android.internal.widget.multiwaveview.GlowPadView; +import com.android.internal.widget.multiwaveview.TargetDrawable; +import com.android.settings.R; +import com.android.settings.Utils; +import com.android.settings.cyanogenmod.IconPicker.OnIconPickListener; + +public class LockscreenTargets extends Fragment implements ShortcutPickHelper.OnPickListener, + GlowPadView.OnTriggerListener, OnIconPickListener { + + private GlowPadView mWaveView; + private ImageButton mDialogIcon; + private Button mDialogLabel; + private ShortcutPickHelper mPicker; + private IconPicker mIconPicker; + private ArrayList<TargetInfo> mTargetStore = new ArrayList<TargetInfo>(); + private int mTargetOffset; + private int mTargetInset; + private boolean mIsLandscape; + private boolean mIsScreenLarge; + private ViewGroup mContainer; + private Activity mActivity; + private Resources mResources; + private File mImageTmp; + private int mTargetIndex = 0; + private static final int MENU_RESET = Menu.FIRST; + private static final int MENU_SAVE = Menu.FIRST + 1; + private static String EMPTY_LABEL; + + class TargetInfo { + String uri, pkgName; + StateListDrawable icon; + Drawable defaultIcon; + String iconType; + String iconSource; + TargetInfo(StateListDrawable target) { + icon = target; + } + TargetInfo(String in, StateListDrawable target, String iType, String iSource, Drawable dI) { + uri = in; + icon = target; + defaultIcon = dI; + iconType = iType; + iconSource = iSource; + } + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + mContainer = container; + setHasOptionsMenu(true); + mActivity = getActivity(); + mIsScreenLarge = !Utils.isPhone(mActivity); + mResources = getResources(); + mIsLandscape = mResources.getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE; + mTargetOffset = mIsLandscape && !mIsScreenLarge ? 2 : 0; + mTargetInset = mResources.getDimensionPixelSize(com.android.internal.R.dimen.lockscreen_target_inset); + mIconPicker = new IconPicker(mActivity, this); + mPicker = new ShortcutPickHelper(mActivity, this); + mImageTmp = new File(mActivity.getCacheDir() + "/target.tmp"); + EMPTY_LABEL = mActivity.getResources().getString(R.string.lockscreen_target_empty); + return inflater.inflate(R.layout.lockscreen_targets, container, false); + } + + @Override + public void onActivityCreated(Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); + mWaveView = ((GlowPadView) mActivity.findViewById(R.id.lock_target)); + mWaveView.setOnTriggerListener(this); + initializeView(Settings.System.getString(mActivity.getContentResolver(), Settings.System.LOCKSCREEN_TARGETS)); + } + + /** + * Create a layered drawable + * @param back - Background image to use when target is active + * @param front - Front image to use for target + * @param inset - Target inset padding + * @param frontBlank - Whether the front image for active target should be blank + * @return StateListDrawable + */ + private StateListDrawable getLayeredDrawable(Drawable back, Drawable front, int inset, boolean frontBlank) { + front.mutate(); + back.mutate(); + InsetDrawable[] inactivelayer = new InsetDrawable[2]; + InsetDrawable[] activelayer = new InsetDrawable[2]; + Drawable activeFront = frontBlank ? mResources.getDrawable(android.R.color.transparent) : front; + Drawable inactiveBack = mResources.getDrawable(com.android.internal.R.drawable.ic_lockscreen_lock_pressed); + inactivelayer[0] = new InsetDrawable(inactiveBack, 0, 0, 0, 0); + inactivelayer[1] = new InsetDrawable(front, inset, inset, inset, inset); + activelayer[0] = new InsetDrawable(back, 0, 0, 0, 0); + activelayer[1] = new InsetDrawable(activeFront, inset, inset, inset, inset); + StateListDrawable states = new StateListDrawable(); + LayerDrawable inactiveLayerDrawable = new LayerDrawable(inactivelayer); + inactiveLayerDrawable.setId(0, 0); + inactiveLayerDrawable.setId(1, 1); + LayerDrawable activeLayerDrawable = new LayerDrawable(activelayer); + activeLayerDrawable.setId(0, 0); + activeLayerDrawable.setId(1, 1); + states.addState(TargetDrawable.STATE_INACTIVE, inactiveLayerDrawable); + states.addState(TargetDrawable.STATE_ACTIVE, activeLayerDrawable); + states.addState(TargetDrawable.STATE_FOCUSED, activeLayerDrawable); + return states; + } + + private void initializeView(String input) { + if (input == null) { + input = GlowPadView.EMPTY_TARGET; + } + mTargetStore.clear(); + final int maxTargets = mIsScreenLarge ? GlowPadView.MAX_TABLET_TARGETS : GlowPadView.MAX_PHONE_TARGETS; + final PackageManager packMan = mActivity.getPackageManager(); + final Drawable activeBack = mResources.getDrawable(com.android.internal.R.drawable.ic_lockscreen_target_activated); + final String[] targetStore = input.split("\\|"); + //Shift by 2 targets for phones in landscape + if (mIsLandscape && !mIsScreenLarge) { + mTargetStore.add(new TargetInfo(null)); + mTargetStore.add(new TargetInfo(null)); + } + //Add the unlock icon + Drawable unlockFront = mResources.getDrawable(com.android.internal.R.drawable.ic_lockscreen_unlock_normal); + Drawable unlockBack = mResources.getDrawable(com.android.internal.R.drawable.ic_lockscreen_unlock_activated); + mTargetStore.add(new TargetInfo(getLayeredDrawable(unlockBack, unlockFront, 0, true))); + for (int cc = 0; cc < 8 - mTargetOffset - 1; cc++) { + String uri = GlowPadView.EMPTY_TARGET; + Drawable front = null; + Drawable back = activeBack; + boolean frontBlank = false; + String iconType = null; + String iconSource = null; + int tmpInset = mTargetInset; + if (cc < targetStore.length && cc < maxTargets) { + uri = targetStore[cc]; + if (!uri.equals(GlowPadView.EMPTY_TARGET)) { + try { + Intent in = Intent.parseUri(uri, 0); + if (in.hasExtra(GlowPadView.ICON_FILE)) { + String rSource = in.getStringExtra(GlowPadView.ICON_FILE); + File fPath = new File(rSource); + if (fPath != null) { + if (fPath.exists()) { + front = new BitmapDrawable(getResources(), BitmapFactory.decodeFile(rSource)); + } + } + } else if (in.hasExtra(GlowPadView.ICON_RESOURCE)) { + String rSource = in.getStringExtra(GlowPadView.ICON_RESOURCE); + String rPackage = in.getStringExtra(GlowPadView.ICON_PACKAGE); + if (rSource != null) { + if (rPackage != null) { + try { + Context rContext = mActivity.createPackageContext(rPackage, 0); + int id = rContext.getResources().getIdentifier(rSource, "drawable", rPackage); + front = rContext.getResources().getDrawable(id); + id = rContext.getResources().getIdentifier(rSource.replaceAll("_normal", "_activated"), + "drawable", rPackage); + back = rContext.getResources().getDrawable(id); + tmpInset = 0; + frontBlank = true; + } catch (NameNotFoundException e) { + e.printStackTrace(); + } catch (NotFoundException e) { + e.printStackTrace(); + } + } else { + front = mResources.getDrawable(mResources.getIdentifier(rSource, "drawable", "android")); + back = mResources.getDrawable(mResources.getIdentifier( + rSource.replaceAll("_normal", "_activated"), "drawable", "android")); + tmpInset = 0; + frontBlank = true; + } + } + } + if (front == null) { + ActivityInfo aInfo = in.resolveActivityInfo(packMan, PackageManager.GET_ACTIVITIES); + if (aInfo != null) { + front = aInfo.loadIcon(packMan); + } else { + front = mResources.getDrawable(android.R.drawable.sym_def_app_icon).mutate(); + } + } + } catch (Exception e) { + } + } + } else if (cc >= maxTargets) { + mTargetStore.add(new TargetInfo(null)); + continue; + } + if (back == null || front == null) { + Drawable emptyIcon = mResources.getDrawable(R.drawable.ic_empty).mutate(); + front = emptyIcon; + } + mTargetStore.add(new TargetInfo(uri, getLayeredDrawable(back,front, tmpInset, frontBlank), iconType, + iconSource, front.getConstantState().newDrawable().mutate())); + } + ArrayList<TargetDrawable> tDraw = new ArrayList<TargetDrawable>(); + for (TargetInfo i : mTargetStore) { + if (i != null) { + tDraw.add(new TargetDrawable(mResources, i.icon)); + } else { + tDraw.add(new TargetDrawable(mResources, null)); + } + } + mWaveView.setTargetResources(tDraw); + } + + @Override + public void onResume() { + super.onResume(); + // If running on a phone, remove padding around container + if (!mIsScreenLarge) { + mContainer.setPadding(0, 0, 0, 0); + } + } + + @Override + public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { + menu.add(0, MENU_RESET, 0, R.string.profile_reset_title) + .setIcon(R.drawable.ic_settings_backup) // use the backup icon + .setAlphabeticShortcut('r') + .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | + MenuItem.SHOW_AS_ACTION_WITH_TEXT); + menu.add(0, MENU_SAVE, 0, R.string.wifi_save) + .setIcon(R.drawable.ic_menu_save) + .setAlphabeticShortcut('s') + .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | + MenuItem.SHOW_AS_ACTION_WITH_TEXT); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case MENU_RESET: + resetAll(); + return true; + case MENU_SAVE: + saveAll(); + Toast.makeText(mActivity, R.string.lockscreen_target_save, Toast.LENGTH_LONG).show(); + return true; + default: + return false; + } + } + + /** + * Resets the target layout to stock + */ + private void resetAll() { + new AlertDialog.Builder(mActivity) + .setTitle(R.string.lockscreen_target_reset_title) + .setIconAttribute(android.R.attr.alertDialogIcon) + .setMessage(R.string.lockscreen_target_reset_message) + .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + initializeView(null); + Settings.System.putString(mActivity.getContentResolver(), Settings.System.LOCKSCREEN_TARGETS, null); + Toast.makeText(mActivity, R.string.lockscreen_target_reset, Toast.LENGTH_LONG).show(); + } + }).setNegativeButton(R.string.cancel, null) + .create().show(); + } + + /** + * Save targets to settings provider + */ + private void saveAll() { + StringBuilder targetLayout = new StringBuilder(); + ArrayList<String> existingImages = new ArrayList<String>(); + final int maxTargets = mIsScreenLarge ? GlowPadView.MAX_TABLET_TARGETS : GlowPadView.MAX_PHONE_TARGETS; + for (int i = mTargetOffset + 1; i <= mTargetOffset + maxTargets; i++) { + String uri = mTargetStore.get(i).uri; + String type = mTargetStore.get(i).iconType; + String source = mTargetStore.get(i).iconSource; + existingImages.add(source); + if (!uri.equals(GlowPadView.EMPTY_TARGET) && type != null) { + try { + Intent in = Intent.parseUri(uri, 0); + in.putExtra(type, source); + String pkgName = mTargetStore.get(i).pkgName; + if (pkgName != null) { + in.putExtra(GlowPadView.ICON_PACKAGE, mTargetStore.get(i).pkgName); + } else { + in.removeExtra(GlowPadView.ICON_PACKAGE); + } + uri = in.toUri(0); + } catch (URISyntaxException e) { + } + } + targetLayout.append(uri); + targetLayout.append("|"); + } + targetLayout.deleteCharAt(targetLayout.length() - 1); + Settings.System.putString(mActivity.getContentResolver(), Settings.System.LOCKSCREEN_TARGETS, targetLayout.toString()); + for (File pic : mActivity.getFilesDir().listFiles()) { + if (pic.getName().startsWith("lockscreen_") && !existingImages.contains(pic.toString())) { + pic.delete(); + } + } + } + + /** + * Updates a target in the GlowPadView + */ + private void setTarget(int position, String uri, Drawable draw, String iconType, String iconSource, String pkgName) { + TargetInfo item = mTargetStore.get(position); + StateListDrawable state = (StateListDrawable) item.icon; + LayerDrawable inActiveLayer = (LayerDrawable) state.getStateDrawable(0); + LayerDrawable activeLayer = (LayerDrawable) state.getStateDrawable(1); + inActiveLayer.setDrawableByLayerId(1, draw); + boolean isSystem = iconType != null && iconType.equals(GlowPadView.ICON_RESOURCE); + if (!isSystem) { + final Drawable activeBack = mResources.getDrawable(com.android.internal.R.drawable.ic_lockscreen_target_activated); + activeLayer.setDrawableByLayerId(0, new InsetDrawable(activeBack, 0, 0, 0, 0)); + activeLayer.setDrawableByLayerId(1, draw); + } else { + InsetDrawable empty = new InsetDrawable(mResources.getDrawable(android.R.color.transparent), 0, 0, 0, 0); + activeLayer.setDrawableByLayerId(1, empty); + int activeId = mResources.getIdentifier(iconSource.replaceAll("_normal", "_activated"), "drawable", "android"); + Drawable back = null; + if (activeId != 0) { + back = mResources.getDrawable(activeId); + activeLayer.setDrawableByLayerId(0, back); + } else { + final Drawable activeBack = mResources.getDrawable(com.android.internal.R.drawable.ic_lockscreen_target_activated); + activeLayer.setDrawableByLayerId(0, new InsetDrawable(activeBack, 0, 0, 0, 0)); + } + } + item.defaultIcon = mDialogIcon.getDrawable().getConstantState().newDrawable().mutate(); + item.uri = uri; + item.iconType = iconType; + item.iconSource = iconSource; + item.pkgName = pkgName; + } + + @Override + public void shortcutPicked(String uri, String friendlyName, boolean isApplication) { + try { + Intent i = Intent.parseUri(uri, 0); + PackageManager pm = mActivity.getPackageManager(); + ActivityInfo aInfo = i.resolveActivityInfo(pm, PackageManager.GET_ACTIVITIES); + Drawable icon = null; + if (aInfo != null) { + icon = aInfo.loadIcon(pm).mutate(); + } else { + icon = mResources.getDrawable(android.R.drawable.sym_def_app_icon); + } + mDialogLabel.setText(friendlyName); + mDialogLabel.setTag(uri); + mDialogIcon.setImageDrawable(resizeForDialog(icon)); + mDialogIcon.setTag(null); + } catch (Exception e) { + } + } + + private Drawable resizeForDialog(Drawable image) { + int size = (int) mResources.getDimension(android.R.dimen.app_icon_size); + Bitmap d = ((BitmapDrawable)image).getBitmap(); + Bitmap bitmapOrig = Bitmap.createScaledBitmap(d, size, size, false); + return new BitmapDrawable(mResources, bitmapOrig); + } + + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + String shortcut_name = null; + if (data != null) { + shortcut_name = data.getStringExtra(Intent.EXTRA_SHORTCUT_NAME); + } + if (shortcut_name != null && shortcut_name.equals(EMPTY_LABEL)) { + mDialogLabel.setText(EMPTY_LABEL); + mDialogLabel.setTag(GlowPadView.EMPTY_TARGET); + mDialogIcon.setImageResource(R.drawable.ic_empty); + } else if (requestCode == IconPicker.REQUEST_PICK_SYSTEM || requestCode == IconPicker.REQUEST_PICK_GALLERY + || requestCode == IconPicker.REQUEST_PICK_ICON_PACK) { + mIconPicker.onActivityResult(requestCode, resultCode, data); + } else if (requestCode != Activity.RESULT_CANCELED && resultCode != Activity.RESULT_CANCELED) { + mPicker.onActivityResult(requestCode, resultCode, data); + } + } + + @Override + public void onGrabbed(View v, int handle) { + } + + @Override + public void onReleased(View v, int handle) { + } + + @Override + public void onTrigger(View v, final int target) { + mTargetIndex = target; + if ((target != 0 && (mIsScreenLarge || !mIsLandscape)) || (target != 2 && !mIsScreenLarge && mIsLandscape)) { + AlertDialog.Builder builder = new AlertDialog.Builder(mActivity); + builder.setTitle(R.string.lockscreen_target_edit_title); + builder.setMessage(R.string.lockscreen_target_edit_msg); + View view = View.inflate(mActivity, R.layout.lockscreen_shortcut_dialog, null); + view.findViewById(R.id.icon).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (!mDialogLabel.getText().equals(EMPTY_LABEL)) { + try { + mImageTmp.createNewFile(); + mImageTmp.setWritable(true, false); + mIconPicker.pickIcon(getId(), mImageTmp); + } catch (IOException e) { + } + } + } + }); + view.findViewById(R.id.label).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + mPicker.pickShortcut(new String[] {EMPTY_LABEL}, new ShortcutIconResource[] { + ShortcutIconResource.fromContext(mActivity, android.R.drawable.ic_delete) }, getId()); + } + }); + mDialogIcon = ((ImageButton) view.findViewById(R.id.icon)); + mDialogLabel = ((Button) view.findViewById(R.id.label)); + TargetInfo item = mTargetStore.get(target); + mDialogIcon.setImageDrawable(mTargetStore.get(target).defaultIcon.mutate()); + TargetInfo tmpIcon = new TargetInfo(null); + tmpIcon.iconType = item.iconType; + tmpIcon.iconSource = item.iconSource; + tmpIcon.pkgName = item.pkgName; + mDialogIcon.setTag(tmpIcon); + if (mTargetStore.get(target).uri.equals(GlowPadView.EMPTY_TARGET)) { + mDialogLabel.setText(EMPTY_LABEL); + } else { + mDialogLabel.setText(mPicker.getFriendlyNameForUri(mTargetStore.get(target).uri)); + } + mDialogLabel.setTag(mTargetStore.get(target).uri); + builder.setView(view); + builder.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + TargetInfo vObject = (TargetInfo) mDialogIcon.getTag(); + String type = null, source = null, pkgName = null; + int targetInset = mTargetInset; + if (vObject != null) { + type = vObject.iconType; + source = vObject.iconSource; + pkgName = vObject.pkgName; + } + if (type != null && type.equals(GlowPadView.ICON_RESOURCE)) { + targetInset = 0; + } + InsetDrawable pD = new InsetDrawable(mDialogIcon.getDrawable(), targetInset, + targetInset, targetInset, targetInset); + setTarget(mTargetIndex, mDialogLabel.getTag().toString(), pD, type, source, pkgName); + } + }); + builder.setNegativeButton(R.string.cancel, null); + builder.setCancelable(false); + AlertDialog dialog = builder.create(); + dialog.show(); + ((TextView)dialog.findViewById(android.R.id.message)).setTextAppearance(mActivity, + android.R.style.TextAppearance_DeviceDefault_Small); + } + } + + @Override + public void onGrabbedStateChange(View v, int handle) { + } + + @Override + public void iconPicked(int requestCode, int resultCode, Intent in) { + Drawable ic = null; + String iconType = null; + String pkgName = null; + String iconSource = null; + if (requestCode == IconPicker.REQUEST_PICK_GALLERY) { + if (resultCode == Activity.RESULT_OK) { + File mImage = new File(mActivity.getFilesDir() + "/lockscreen_" + System.currentTimeMillis() + ".png"); + if (mImageTmp.exists()) { + mImageTmp.renameTo(mImage); + } + mImage.setReadOnly(); + iconType = GlowPadView.ICON_FILE; + iconSource = mImage.toString(); + ic = new BitmapDrawable(getResources(), BitmapFactory.decodeFile(mImage.toString())); + } else { + if (mImageTmp.exists()) { + mImageTmp.delete(); + } + return; + } + } else if (requestCode == IconPicker.REQUEST_PICK_SYSTEM) { + String resourceName = in.getStringExtra(IconPicker.RESOURCE_NAME); + ic = mResources.getDrawable(mResources.getIdentifier(resourceName, "drawable", "android")).mutate(); + iconType = GlowPadView.ICON_RESOURCE; + iconSource = resourceName; + } else if (requestCode == IconPicker.REQUEST_PICK_ICON_PACK && resultCode == Activity.RESULT_OK) { + String resourceName = in.getStringExtra(IconPicker.RESOURCE_NAME); + pkgName = in.getStringExtra(IconPicker.PACKAGE_NAME); + try { + Context rContext = mActivity.createPackageContext(pkgName, 0); + int id = rContext.getResources().getIdentifier(resourceName, "drawable", pkgName); + ic = rContext.getResources().getDrawable(id); + } catch (NameNotFoundException e) { + e.printStackTrace(); + } + iconType = GlowPadView.ICON_RESOURCE; + iconSource = resourceName; + } else { + return; + } + TargetInfo tmpIcon = new TargetInfo(null); + tmpIcon.iconType = iconType; + tmpIcon.iconSource = iconSource; + tmpIcon.pkgName = pkgName; + mDialogIcon.setTag(tmpIcon); + mDialogIcon.setImageDrawable(ic); + } + + @Override + public void onFinishFinalAnimation() { + } +} diff --git a/src/com/android/settings/cyanogenmod/MemoryManagement.java b/src/com/android/settings/cyanogenmod/MemoryManagement.java new file mode 100644 index 0000000..8626b06 --- /dev/null +++ b/src/com/android/settings/cyanogenmod/MemoryManagement.java @@ -0,0 +1,137 @@ +/* + * Copyright (C) 2012 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.android.settings.cyanogenmod; + +import java.io.File; + +import android.os.Bundle; +import android.os.SystemProperties; +import android.preference.CheckBoxPreference; +import android.preference.ListPreference; +import android.preference.Preference; +import android.preference.Preference.OnPreferenceChangeListener; +import android.preference.PreferenceScreen; + +import com.android.settings.R; +import com.android.settings.SettingsPreferenceFragment; +import com.android.settings.Utils; + +public class MemoryManagement extends SettingsPreferenceFragment implements + OnPreferenceChangeListener { + + public static final String KSM_RUN_FILE = "/sys/kernel/mm/ksm/run"; + + public static final String KSM_PREF = "pref_ksm"; + + public static final String KSM_PREF_DISABLED = "0"; + + public static final String KSM_PREF_ENABLED = "1"; + + private static final String ZRAM_PREF = "pref_zram_size"; + + private static final String ZRAM_PERSIST_PROP = "persist.service.zram"; // was compcache + + private static final String ZRAM_DEFAULT = SystemProperties.get("ro.zram.default"); // was compcache + + private static final String PURGEABLE_ASSETS_PREF = "pref_purgeable_assets"; + + private static final String PURGEABLE_ASSETS_PERSIST_PROP = "persist.sys.purgeable_assets"; + + private static final String PURGEABLE_ASSETS_DEFAULT = "0"; + + private ListPreference mzRAM; + + private CheckBoxPreference mPurgeableAssetsPref; + + private CheckBoxPreference mKSMPref; + + private int swapAvailable = -1; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + if (getPreferenceManager() != null) { + + addPreferencesFromResource(R.xml.memory_management); + + PreferenceScreen prefSet = getPreferenceScreen(); + + mzRAM = (ListPreference) prefSet.findPreference(ZRAM_PREF); + mPurgeableAssetsPref = (CheckBoxPreference) prefSet.findPreference(PURGEABLE_ASSETS_PREF); + mKSMPref = (CheckBoxPreference) prefSet.findPreference(KSM_PREF); + + if (isSwapAvailable()) { + if (SystemProperties.get(ZRAM_PERSIST_PROP) == "1") + SystemProperties.set(ZRAM_PERSIST_PROP, ZRAM_DEFAULT); + mzRAM.setValue(SystemProperties.get(ZRAM_PERSIST_PROP, ZRAM_DEFAULT)); + mzRAM.setOnPreferenceChangeListener(this); + } else { + prefSet.removePreference(mzRAM); + } + + if (Utils.fileExists(KSM_RUN_FILE)) { + mKSMPref.setChecked(KSM_PREF_ENABLED.equals(Utils.fileReadOneLine(KSM_RUN_FILE))); + } else { + prefSet.removePreference(mKSMPref); + } + + String purgeableAssets = SystemProperties.get(PURGEABLE_ASSETS_PERSIST_PROP, + PURGEABLE_ASSETS_DEFAULT); + mPurgeableAssetsPref.setChecked("1".equals(purgeableAssets)); + + } + } + + @Override + public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) { + + if (preference == mPurgeableAssetsPref) { + SystemProperties.set(PURGEABLE_ASSETS_PERSIST_PROP, + mPurgeableAssetsPref.isChecked() ? "1" : "0"); + return true; + } + + if (preference == mKSMPref) { + Utils.fileWriteOneLine(KSM_RUN_FILE, mKSMPref.isChecked() ? "1" : "0"); + return true; + } + + return false; + } + + public boolean onPreferenceChange(Preference preference, Object newValue) { + if (preference == mzRAM) { + if (newValue != null) { + SystemProperties.set(ZRAM_PERSIST_PROP, (String) newValue); + return true; + } + } + + return false; + } + + /** + * Check if swap support is available on the system + */ + private boolean isSwapAvailable() { + if (swapAvailable < 0) { + swapAvailable = new File("/proc/swaps").exists() ? 1 : 0; + } + return swapAvailable > 0; + } +} diff --git a/src/com/android/settings/cyanogenmod/NavBar.java b/src/com/android/settings/cyanogenmod/NavBar.java new file mode 100644 index 0000000..bee3cb4 --- /dev/null +++ b/src/com/android/settings/cyanogenmod/NavBar.java @@ -0,0 +1,149 @@ +/* + * Copyright (C) 2011 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.android.settings.cyanogenmod; + +import android.app.Activity; +import android.app.AlertDialog; +import android.app.Fragment; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.pm.ActivityInfo; +import android.os.Bundle; +import android.provider.Settings; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Toast; + +import com.android.settings.R; +import com.android.settings.Utils; + +public class NavBar extends Fragment { + + private boolean mEditMode; + private ViewGroup mContainer; + private Activity mActivity; + private MenuItem mEditMenu; + private final static Intent mIntent = new Intent("android.intent.action.NAVBAR_EDIT"); + private static final int MENU_RESET = Menu.FIRST; + private static final int MENU_EDIT = Menu.FIRST + 1; + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + View view = inflater.inflate(R.layout.nav_bar, container, false); + setHasOptionsMenu(true); + mContainer = container; + mActivity = getActivity(); + mActivity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); + return view; + } + + /** + * Toggles navbar edit mode + * @param on True to enter edit mode / false to exit + * @param save True to save changes / false to discard them + */ + private void toggleEditMode(boolean on, boolean save) { + mIntent.putExtra("edit", on); + mIntent.putExtra("save", save); + mActivity.sendBroadcast(mIntent); + if (mEditMenu != null) { + mEditMenu.setTitle(on ? R.string.navigation_bar_menu_editable : R.string.navigation_bar_menu_locked) + .setIcon(on ? R.drawable.stat_navbar_edit_on : R.drawable.stat_navbar_edit_off); + } + } + + @Override + public void onResume() { + super.onResume(); + // If running on a phone, remove padding around container + if (Utils.isPhone(mActivity)) { + mContainer.setPadding(0, 0, 0, 0); + } + } + + @Override + public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { + menu.add(0, MENU_RESET, 0, R.string.profile_reset_title) + .setIcon(R.drawable.ic_settings_backup) + .setAlphabeticShortcut('r') + .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | + MenuItem.SHOW_AS_ACTION_WITH_TEXT); + mEditMenu = menu.add(0, MENU_EDIT, 0, R.string.navigation_bar_menu_locked); + mEditMenu.setIcon(R.drawable.stat_navbar_edit_off) + .setAlphabeticShortcut('s') + .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | + MenuItem.SHOW_AS_ACTION_WITH_TEXT); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case MENU_RESET: + new AlertDialog.Builder(mActivity) + .setTitle(R.string.lockscreen_target_reset_title) + .setIcon(android.R.drawable.ic_dialog_alert) + .setMessage(R.string.navigation_bar_reset_message) + .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + if (mEditMode) { + toggleEditMode(false, false); + } + Settings.System.putString(getActivity().getContentResolver(), + Settings.System.NAV_BUTTONS, null); + toggleEditMode(true, false); + toggleEditMode(false, false); + mEditMode = false; + Toast.makeText(mActivity, R.string.navigation_bar_reset_toast, Toast.LENGTH_LONG).show(); + } + }).setNegativeButton(R.string.cancel, null) + .create().show(); + return true; + case MENU_EDIT: + mEditMode = !mEditMode; + toggleEditMode(mEditMode, true); + if (!mEditMode) { + Toast.makeText(mActivity, R.string.navigation_bar_save_message, Toast.LENGTH_LONG).show(); + } + return true; + default: + return false; + } + } + + @Override + public void onPause() { + toggleEditMode(false, false); + super.onPause(); + } + + @Override + public void onStop() { + toggleEditMode(false, false); + super.onStop(); + } + + @Override + public void onDestroy() { + toggleEditMode(false, false); + super.onDestroy(); + } +} diff --git a/src/com/android/settings/cyanogenmod/PerformanceSettings.java b/src/com/android/settings/cyanogenmod/PerformanceSettings.java new file mode 100644 index 0000000..566036c --- /dev/null +++ b/src/com/android/settings/cyanogenmod/PerformanceSettings.java @@ -0,0 +1,117 @@ +/* + * Copyright (C) 2012 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.android.settings.cyanogenmod; + +import android.app.AlertDialog; +import android.content.DialogInterface; +import android.os.Bundle; +import android.os.SystemProperties; +import android.preference.CheckBoxPreference; +import android.preference.Preference; +import android.preference.ListPreference; +import android.preference.PreferenceScreen; + +import com.android.settings.R; +import com.android.settings.SettingsPreferenceFragment; + +/** + * Performance Settings + */ +public class PerformanceSettings extends SettingsPreferenceFragment + implements Preference.OnPreferenceChangeListener { + private static final String TAG = "PerformanceSettings"; + + private static final String USE_DITHERING_PREF = "pref_use_dithering"; + + private static final String USE_DITHERING_PERSIST_PROP = "persist.sys.use_dithering"; + + private static final String USE_DITHERING_DEFAULT = "1"; + + private static final String USE_16BPP_ALPHA_PREF = "pref_use_16bpp_alpha"; + + private static final String USE_16BPP_ALPHA_PROP = "persist.sys.use_16bpp_alpha"; + + private ListPreference mUseDitheringPref; + + private CheckBoxPreference mUse16bppAlphaPref; + + private AlertDialog alertDialog; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + if (getPreferenceManager() != null) { + + addPreferencesFromResource(R.xml.performance_settings); + + PreferenceScreen prefSet = getPreferenceScreen(); + + String useDithering = SystemProperties.get(USE_DITHERING_PERSIST_PROP, USE_DITHERING_DEFAULT); + mUseDitheringPref = (ListPreference) prefSet.findPreference(USE_DITHERING_PREF); + mUseDitheringPref.setOnPreferenceChangeListener(this); + mUseDitheringPref.setValue(useDithering); + mUseDitheringPref.setSummary(mUseDitheringPref.getEntry()); + + mUse16bppAlphaPref = (CheckBoxPreference) prefSet.findPreference(USE_16BPP_ALPHA_PREF); + String use16bppAlpha = SystemProperties.get(USE_16BPP_ALPHA_PROP, "0"); + mUse16bppAlphaPref.setChecked("1".equals(use16bppAlpha)); + + /* Display the warning dialog */ + alertDialog = new AlertDialog.Builder(getActivity()).create(); + alertDialog.setTitle(R.string.performance_settings_warning_title); + alertDialog.setMessage(getResources().getString(R.string.performance_settings_warning)); + alertDialog.setButton(DialogInterface.BUTTON_POSITIVE, + getResources().getString(com.android.internal.R.string.ok), + new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + return; + } + }); + alertDialog.setOnCancelListener(new DialogInterface.OnCancelListener() { + public void onCancel(DialogInterface dialog) { + PerformanceSettings.this.finish(); + } + }); + alertDialog.show(); + } + } + + @Override + public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) { + if (preference == mUse16bppAlphaPref) { + SystemProperties.set(USE_16BPP_ALPHA_PROP, + mUse16bppAlphaPref.isChecked() ? "1" : "0"); + } else { + // If we didn't handle it, let preferences handle it. + return super.onPreferenceTreeClick(preferenceScreen, preference); + } + + return true; + } + + public boolean onPreferenceChange(Preference preference, Object newValue) { + if (preference == mUseDitheringPref) { + String newVal = (String) newValue; + int index = mUseDitheringPref.findIndexOfValue(newVal); + SystemProperties.set(USE_DITHERING_PERSIST_PROP, newVal); + mUseDitheringPref.setSummary(mUseDitheringPref.getEntries()[index]); + } + return true; + } + +} diff --git a/src/com/android/settings/cyanogenmod/PowerMenu.java b/src/com/android/settings/cyanogenmod/PowerMenu.java new file mode 100644 index 0000000..1ad947c --- /dev/null +++ b/src/com/android/settings/cyanogenmod/PowerMenu.java @@ -0,0 +1,174 @@ +/* + * Copyright (C) 2012 CyanogenMod + * + * 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.android.settings.cyanogenmod; + +import android.content.res.Resources; +import android.os.Bundle; +import android.os.UserHandle; +import android.os.UserManager; +import android.preference.CheckBoxPreference; +import android.preference.ListPreference; +import android.preference.Preference; +import android.preference.Preference.OnPreferenceChangeListener; +import android.preference.PreferenceScreen; +import android.provider.Settings; + +import com.android.settings.R; +import com.android.settings.SettingsPreferenceFragment; + +public class PowerMenu extends SettingsPreferenceFragment implements + OnPreferenceChangeListener { + private static final String TAG = "PowerMenu"; + + private static final String KEY_REBOOT = "power_menu_reboot"; + private static final String KEY_SCREENSHOT = "power_menu_screenshot"; + private static final String KEY_EXPANDED_DESKTOP = "power_menu_expanded_desktop"; + private static final String KEY_PROFILES = "power_menu_profiles"; + private static final String KEY_AIRPLANE = "power_menu_airplane"; + private static final String KEY_USER = "power_menu_user"; + private static final String KEY_SOUND = "power_menu_sound"; + + private CheckBoxPreference mRebootPref; + private CheckBoxPreference mScreenshotPref; + ListPreference mExpandedDesktopPref; + private CheckBoxPreference mProfilesPref; + private CheckBoxPreference mAirplanePref; + private CheckBoxPreference mUserPref; + private CheckBoxPreference mSoundPref; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + addPreferencesFromResource(R.xml.power_menu_settings); + + mRebootPref = (CheckBoxPreference) findPreference(KEY_REBOOT); + mRebootPref.setChecked((Settings.System.getInt(getContentResolver(), + Settings.System.POWER_MENU_REBOOT_ENABLED, 1) == 1)); + + mScreenshotPref = (CheckBoxPreference) findPreference(KEY_SCREENSHOT); + mScreenshotPref.setChecked((Settings.System.getInt(getContentResolver(), + Settings.System.POWER_MENU_SCREENSHOT_ENABLED, 0) == 1)); + + PreferenceScreen prefSet = getPreferenceScreen(); + mExpandedDesktopPref = (ListPreference) prefSet.findPreference(KEY_EXPANDED_DESKTOP); + mExpandedDesktopPref.setOnPreferenceChangeListener(this); + int expandedDesktopValue = Settings.System.getInt(getContentResolver(), Settings.System.EXPANDED_DESKTOP_STYLE, 0); + mExpandedDesktopPref.setValue(String.valueOf(expandedDesktopValue)); + updateExpandedDesktopSummary(expandedDesktopValue); + + mProfilesPref = (CheckBoxPreference) findPreference(KEY_PROFILES); + mProfilesPref.setChecked((Settings.System.getInt(getContentResolver(), + Settings.System.POWER_MENU_PROFILES_ENABLED, 1) == 1)); + + // Only enable if System Profiles are also enabled + boolean enabled = Settings.System.getInt(getContentResolver(), + Settings.System.SYSTEM_PROFILES_ENABLED, 1) == 1; + mProfilesPref.setEnabled(enabled); + + mAirplanePref = (CheckBoxPreference) findPreference(KEY_AIRPLANE); + mAirplanePref.setChecked((Settings.System.getInt(getContentResolver(), + Settings.System.POWER_MENU_AIRPLANE_ENABLED, 1) == 1)); + + mUserPref = (CheckBoxPreference) findPreference(KEY_USER); + if (!UserHandle.MU_ENABLED + || !UserManager.supportsMultipleUsers()) { + getPreferenceScreen().removePreference(mUserPref); + } else { + mUserPref.setChecked((Settings.System.getInt(getContentResolver(), + Settings.System.POWER_MENU_USER_ENABLED, 0) == 1)); + } + + mSoundPref = (CheckBoxPreference) findPreference(KEY_SOUND); + mSoundPref.setChecked((Settings.System.getInt(getContentResolver(), + Settings.System.POWER_MENU_SOUND_ENABLED, 1) == 1)); + + } + + public boolean onPreferenceChange(Preference preference, Object newValue) { + if (preference == mExpandedDesktopPref) { + int expandedDesktopValue = Integer.valueOf((String) newValue); + Settings.System.putInt(getContentResolver(), + Settings.System.EXPANDED_DESKTOP_STYLE, expandedDesktopValue); + updateExpandedDesktopSummary(expandedDesktopValue); + return true; + } + return false; + } + + @Override + public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) { + boolean value; + + if (preference == mScreenshotPref) { + value = mScreenshotPref.isChecked(); + Settings.System.putInt(getContentResolver(), + Settings.System.POWER_MENU_SCREENSHOT_ENABLED, + value ? 1 : 0); + } else if (preference == mRebootPref) { + value = mRebootPref.isChecked(); + Settings.System.putInt(getContentResolver(), + Settings.System.POWER_MENU_REBOOT_ENABLED, + value ? 1 : 0); + } else if (preference == mProfilesPref) { + value = mProfilesPref.isChecked(); + Settings.System.putInt(getContentResolver(), + Settings.System.POWER_MENU_PROFILES_ENABLED, + value ? 1 : 0); + } else if (preference == mAirplanePref) { + value = mAirplanePref.isChecked(); + Settings.System.putInt(getContentResolver(), + Settings.System.POWER_MENU_AIRPLANE_ENABLED, + value ? 1 : 0); + } else if (preference == mUserPref) { + value = mUserPref.isChecked(); + Settings.System.putInt(getContentResolver(), + Settings.System.POWER_MENU_USER_ENABLED, + value ? 1 : 0); + } else if (preference == mSoundPref) { + value = mSoundPref.isChecked(); + Settings.System.putInt(getContentResolver(), + Settings.System.POWER_MENU_SOUND_ENABLED, + value ? 1 : 0); + } else { + return super.onPreferenceTreeClick(preferenceScreen, preference); + } + + return true; + } + + private void updateExpandedDesktopSummary(int value) { + Resources res = getResources(); + + if (value == 0) { + /* expanded desktop deactivated */ + Settings.System.putInt(getContentResolver(), + Settings.System.POWER_MENU_EXPANDED_DESKTOP_ENABLED, 0); + mExpandedDesktopPref.setSummary(res.getString(R.string.expanded_desktop_disabled)); + } else if (value == 1) { + Settings.System.putInt(getContentResolver(), + Settings.System.POWER_MENU_EXPANDED_DESKTOP_ENABLED, 1); + String statusBarPresent = res.getString(R.string.expanded_desktop_summary_status_bar); + mExpandedDesktopPref.setSummary(res.getString(R.string.summary_expanded_desktop, statusBarPresent)); + } else if (value == 2) { + Settings.System.putInt(getContentResolver(), + Settings.System.POWER_MENU_EXPANDED_DESKTOP_ENABLED, 1); + String statusBarPresent = res.getString(R.string.expanded_desktop_summary_no_status_bar); + mExpandedDesktopPref.setSummary(res.getString(R.string.summary_expanded_desktop, statusBarPresent)); + } + } +} diff --git a/src/com/android/settings/cyanogenmod/PowerWidget.java b/src/com/android/settings/cyanogenmod/PowerWidget.java new file mode 100644 index 0000000..cee2a17 --- /dev/null +++ b/src/com/android/settings/cyanogenmod/PowerWidget.java @@ -0,0 +1,580 @@ +/* + * Copyright (C) 2011 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.android.settings.cyanogenmod; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.Comparator; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; + +import android.app.ListFragment; +import android.content.Context; +import android.content.pm.PackageManager; +import android.content.res.Resources; +import android.graphics.drawable.Drawable; +import android.net.wimax.WimaxHelper; +import android.os.Bundle; +import android.preference.CheckBoxPreference; +import android.preference.ListPreference; +import android.preference.MultiSelectListPreference; +import android.preference.Preference; +import android.preference.PreferenceCategory; +import android.preference.PreferenceScreen; +import android.provider.Settings; +import android.text.TextUtils; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.BaseAdapter; +import android.widget.ImageView; +import android.widget.ListView; +import android.widget.TextView; + +import com.android.internal.telephony.Phone; +import com.android.settings.R; +import com.android.settings.SettingsPreferenceFragment; + +public class PowerWidget extends SettingsPreferenceFragment implements + Preference.OnPreferenceChangeListener { + private static final String TAG = "PowerWidget"; + private static final String SEPARATOR = "OV=I=XseparatorX=I=VO"; + private static final String UI_EXP_WIDGET = "expanded_widget"; + private static final String UI_EXP_WIDGET_HIDE_ONCHANGE = "expanded_hide_onchange"; + private static final String UI_EXP_WIDGET_HIDE_SCROLLBAR = "expanded_hide_scrollbar"; + private static final String UI_EXP_WIDGET_HAPTIC_FEEDBACK = "expanded_haptic_feedback"; + + private CheckBoxPreference mPowerWidget; + private CheckBoxPreference mPowerWidgetHideOnChange; + private CheckBoxPreference mPowerWidgetHideScrollBar; + private ListPreference mPowerWidgetHapticFeedback; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + if (getPreferenceManager() != null) { + addPreferencesFromResource(R.xml.power_widget_settings); + + PreferenceScreen prefSet = getPreferenceScreen(); + + mPowerWidget = (CheckBoxPreference) prefSet.findPreference(UI_EXP_WIDGET); + mPowerWidgetHideOnChange = (CheckBoxPreference) prefSet + .findPreference(UI_EXP_WIDGET_HIDE_ONCHANGE); + mPowerWidgetHideScrollBar = (CheckBoxPreference) prefSet + .findPreference(UI_EXP_WIDGET_HIDE_SCROLLBAR); + + mPowerWidgetHapticFeedback = (ListPreference) prefSet + .findPreference(UI_EXP_WIDGET_HAPTIC_FEEDBACK); + mPowerWidgetHapticFeedback.setOnPreferenceChangeListener(this); + mPowerWidgetHapticFeedback.setSummary(mPowerWidgetHapticFeedback.getEntry()); + + mPowerWidget.setChecked((Settings.System.getInt(getActivity().getApplicationContext() + .getContentResolver(), + Settings.System.EXPANDED_VIEW_WIDGET, 0) == 1)); + mPowerWidgetHideOnChange.setChecked((Settings.System.getInt(getActivity() + .getApplicationContext().getContentResolver(), + Settings.System.EXPANDED_HIDE_ONCHANGE, 0) == 1)); + mPowerWidgetHideScrollBar.setChecked((Settings.System.getInt(getActivity() + .getApplicationContext().getContentResolver(), + Settings.System.EXPANDED_HIDE_SCROLLBAR, 0) == 1)); + mPowerWidgetHapticFeedback.setValue(Integer.toString(Settings.System.getInt( + getActivity().getApplicationContext().getContentResolver(), + Settings.System.EXPANDED_HAPTIC_FEEDBACK, 2))); + } + } + + public boolean onPreferenceChange(Preference preference, Object newValue) { + if (preference == mPowerWidgetHapticFeedback) { + int intValue = Integer.parseInt((String) newValue); + int index = mPowerWidgetHapticFeedback.findIndexOfValue((String) newValue); + Settings.System.putInt(getActivity().getApplicationContext().getContentResolver(), + Settings.System.EXPANDED_HAPTIC_FEEDBACK, intValue); + mPowerWidgetHapticFeedback.setSummary(mPowerWidgetHapticFeedback.getEntries()[index]); + return true; + } + return false; + } + + public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) { + boolean value; + + if (preference == mPowerWidget) { + value = mPowerWidget.isChecked(); + Settings.System.putInt(getActivity().getApplicationContext().getContentResolver(), + Settings.System.EXPANDED_VIEW_WIDGET, + value ? 1 : 0); + } else if (preference == mPowerWidgetHideOnChange) { + value = mPowerWidgetHideOnChange.isChecked(); + Settings.System.putInt(getActivity().getApplicationContext().getContentResolver(), + Settings.System.EXPANDED_HIDE_ONCHANGE, + value ? 1 : 0); + } else if (preference == mPowerWidgetHideScrollBar) { + value = mPowerWidgetHideScrollBar.isChecked(); + Settings.System.putInt(getActivity().getApplicationContext().getContentResolver(), + Settings.System.EXPANDED_HIDE_SCROLLBAR, + value ? 1 : 0); + } else { + // If we didn't handle it, let preferences handle it. + return super.onPreferenceTreeClick(preferenceScreen, preference); + } + + return true; + } + + public static class PowerWidgetChooser extends SettingsPreferenceFragment + implements Preference.OnPreferenceChangeListener { + + public PowerWidgetChooser() { + } + + private static final String TAG = "PowerWidgetActivity"; + + private static final String BUTTONS_CATEGORY = "pref_buttons"; + private static final String BUTTON_MODES_CATEGORY = "pref_buttons_modes"; + private static final String SELECT_BUTTON_KEY_PREFIX = "pref_button_"; + + private static final String EXP_BRIGHTNESS_MODE = "pref_brightness_mode"; + private static final String EXP_NETWORK_MODE = "pref_network_mode"; + private static final String EXP_SCREENTIMEOUT_MODE = "pref_screentimeout_mode"; + private static final String EXP_RING_MODE = "pref_ring_mode"; + private static final String EXP_FLASH_MODE = "pref_flash_mode"; + + private HashMap<CheckBoxPreference, String> mCheckBoxPrefs = new HashMap<CheckBoxPreference, String>(); + + MultiSelectListPreference mBrightnessMode; + ListPreference mNetworkMode; + ListPreference mScreenTimeoutMode; + MultiSelectListPreference mRingMode; + ListPreference mFlashMode; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + } + + @Override + public void onActivityCreated(Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); + addPreferencesFromResource(R.xml.power_widget); + + PreferenceScreen prefSet = getPreferenceScreen(); + PackageManager pm = getPackageManager(); + + if (getActivity().getApplicationContext() == null) { + return; + } + + mBrightnessMode = (MultiSelectListPreference) prefSet + .findPreference(EXP_BRIGHTNESS_MODE); + String storedBrightnessMode = Settings.System.getString(getActivity() + .getApplicationContext().getContentResolver(), + Settings.System.EXPANDED_BRIGHTNESS_MODE); + if (storedBrightnessMode != null) { + String[] brightnessModeArray = TextUtils.split(storedBrightnessMode, SEPARATOR); + mBrightnessMode.setValues(new HashSet<String>(Arrays.asList(brightnessModeArray))); + updateSummary(storedBrightnessMode, mBrightnessMode, R.string.pref_brightness_mode_summary); + } + mBrightnessMode.setOnPreferenceChangeListener(this); + mNetworkMode = (ListPreference) prefSet.findPreference(EXP_NETWORK_MODE); + mNetworkMode.setOnPreferenceChangeListener(this); + mScreenTimeoutMode = (ListPreference) prefSet.findPreference(EXP_SCREENTIMEOUT_MODE); + mScreenTimeoutMode.setOnPreferenceChangeListener(this); + mRingMode = (MultiSelectListPreference) prefSet.findPreference(EXP_RING_MODE); + String storedRingMode = Settings.System.getString(getActivity() + .getApplicationContext().getContentResolver(), + Settings.System.EXPANDED_RING_MODE); + if (storedRingMode != null) { + String[] ringModeArray = TextUtils.split(storedRingMode, SEPARATOR); + mRingMode.setValues(new HashSet<String>(Arrays.asList(ringModeArray))); + updateSummary(storedRingMode, mRingMode, R.string.pref_ring_mode_summary); + } + mRingMode.setOnPreferenceChangeListener(this); + mFlashMode = (ListPreference) prefSet.findPreference(EXP_FLASH_MODE); + mFlashMode.setOnPreferenceChangeListener(this); + + // TODO: set the default values of the items + + // Update the summary text + mNetworkMode.setSummary(mNetworkMode.getEntry()); + mScreenTimeoutMode.setSummary(mScreenTimeoutMode.getEntry()); + mFlashMode.setSummary(mFlashMode.getEntry()); + + // Add the available buttons to the list + PreferenceCategory prefButtons = (PreferenceCategory) prefSet + .findPreference(BUTTONS_CATEGORY); + + // Add the available mode buttons, incase they need to be removed later + PreferenceCategory prefButtonsModes = (PreferenceCategory) prefSet + .findPreference(BUTTON_MODES_CATEGORY); + + // empty our preference category and set it to order as added + prefButtons.removeAll(); + prefButtons.setOrderingAsAdded(false); + + // emtpy our checkbox map + mCheckBoxPrefs.clear(); + + // get our list of buttons + ArrayList<String> buttonList = PowerWidgetUtil.getButtonListFromString(PowerWidgetUtil + .getCurrentButtons(getActivity().getApplicationContext())); + + // Don't show WiMAX option if not supported + boolean isWimaxEnabled = WimaxHelper.isWimaxSupported(getActivity()); + if (!isWimaxEnabled) { + PowerWidgetUtil.BUTTONS.remove(PowerWidgetUtil.BUTTON_WIMAX); + } + + // Don't show mobile data options if not supported + boolean isMobileData = pm.hasSystemFeature(PackageManager.FEATURE_TELEPHONY); + if (!isMobileData) { + PowerWidgetUtil.BUTTONS.remove(PowerWidgetUtil.BUTTON_MOBILEDATA); + PowerWidgetUtil.BUTTONS.remove(PowerWidgetUtil.BUTTON_NETWORKMODE); + PowerWidgetUtil.BUTTONS.remove(PowerWidgetUtil.BUTTON_WIFIAP); + prefButtonsModes.removePreference(mNetworkMode); + } + + // fill that checkbox map! + for (PowerWidgetUtil.ButtonInfo button : PowerWidgetUtil.BUTTONS.values()) { + // create a checkbox + CheckBoxPreference cb = new CheckBoxPreference(getActivity() + .getApplicationContext()); + + // set a dynamic key based on button id + cb.setKey(SELECT_BUTTON_KEY_PREFIX + button.getId()); + + // set vanity info + cb.setTitle(button.getTitleResId()); + + // set our checked state + if (buttonList.contains(button.getId())) { + cb.setChecked(true); + } else { + cb.setChecked(false); + } + + // add to our prefs set + mCheckBoxPrefs.put(cb, button.getId()); + + // specific checks for availability on some platforms + if (PowerWidgetUtil.BUTTON_FLASHLIGHT.equals(button.getId()) && + !getResources().getBoolean(R.bool.has_led_flash)) { + // disable flashlight if it's not supported + cb.setEnabled(false); + mFlashMode.setEnabled(false); + } else if (PowerWidgetUtil.BUTTON_NETWORKMODE.equals(button.getId())) { + // some phones run on networks not supported by this button, + // so disable it + int network_state = -99; + + try { + network_state = Settings.Global.getInt(getActivity() + .getApplicationContext().getContentResolver(), + Settings.Global.PREFERRED_NETWORK_MODE); + } catch (Settings.SettingNotFoundException e) { + Log.e(TAG, "Unable to retrieve PREFERRED_NETWORK_MODE", e); + } + + switch (network_state) { + // list of supported network modes + case Phone.NT_MODE_WCDMA_PREF: + case Phone.NT_MODE_WCDMA_ONLY: + case Phone.NT_MODE_GSM_UMTS: + case Phone.NT_MODE_GSM_ONLY: + break; + default: + cb.setEnabled(false); + break; + } + } + + // add to the category + prefButtons.addPreference(cb); + } + } + + public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, + Preference preference) { + // we only modify the button list if it was one of our checks that + // was clicked + boolean buttonWasModified = false; + ArrayList<String> buttonList = new ArrayList<String>(); + for (Map.Entry<CheckBoxPreference, String> entry : mCheckBoxPrefs.entrySet()) { + if (entry.getKey().isChecked()) { + buttonList.add(entry.getValue()); + } + + if (preference == entry.getKey()) { + buttonWasModified = true; + } + } + + if (buttonWasModified) { + // now we do some wizardry and reset the button list + PowerWidgetUtil.saveCurrentButtons(getActivity().getApplicationContext(), + PowerWidgetUtil.mergeInNewButtonString( + PowerWidgetUtil.getCurrentButtons(getActivity() + .getApplicationContext()), PowerWidgetUtil + .getButtonStringFromList(buttonList))); + return true; + } + + return false; + } + + private class MultiSelectListPreferenceComparator implements Comparator<String> { + private MultiSelectListPreference pref; + + MultiSelectListPreferenceComparator(MultiSelectListPreference p) { + pref = p; + } + + @Override + public int compare(String lhs, String rhs) { + return Integer.compare(pref.findIndexOfValue(lhs), + pref.findIndexOfValue(rhs)); + } + } + + public boolean onPreferenceChange(Preference preference, Object newValue) { + if (preference == mBrightnessMode) { + ArrayList<String> arrValue = new ArrayList<String>((Set<String>) newValue); + Collections.sort(arrValue, new MultiSelectListPreferenceComparator(mBrightnessMode)); + Settings.System.putString(getActivity().getApplicationContext().getContentResolver(), + Settings.System.EXPANDED_BRIGHTNESS_MODE, TextUtils.join(SEPARATOR, arrValue)); + updateSummary(TextUtils.join(SEPARATOR, arrValue), + mBrightnessMode, R.string.pref_brightness_mode_summary); + } else if (preference == mNetworkMode) { + int value = Integer.valueOf((String) newValue); + int index = mNetworkMode.findIndexOfValue((String) newValue); + Settings.System.putInt(getActivity().getApplicationContext().getContentResolver(), + Settings.System.EXPANDED_NETWORK_MODE, value); + mNetworkMode.setSummary(mNetworkMode.getEntries()[index]); + } else if (preference == mScreenTimeoutMode) { + int value = Integer.valueOf((String) newValue); + int index = mScreenTimeoutMode.findIndexOfValue((String) newValue); + Settings.System.putInt(getActivity().getApplicationContext().getContentResolver(), + Settings.System.EXPANDED_SCREENTIMEOUT_MODE, value); + mScreenTimeoutMode.setSummary(mScreenTimeoutMode.getEntries()[index]); + } else if (preference == mRingMode) { + ArrayList<String> arrValue = new ArrayList<String>((Set<String>) newValue); + Collections.sort(arrValue, new MultiSelectListPreferenceComparator(mRingMode)); + Settings.System.putString(getActivity().getApplicationContext().getContentResolver(), + Settings.System.EXPANDED_RING_MODE, TextUtils.join(SEPARATOR, arrValue)); + updateSummary(TextUtils.join(SEPARATOR, arrValue), mRingMode, R.string.pref_ring_mode_summary); + } else if (preference == mFlashMode) { + int value = Integer.valueOf((String) newValue); + int index = mFlashMode.findIndexOfValue((String) newValue); + Settings.System.putInt(getActivity().getApplicationContext().getContentResolver(), + Settings.System.EXPANDED_FLASH_MODE, value); + mFlashMode.setSummary(mFlashMode.getEntries()[index]); + } + return true; + } + + private void updateSummary(String val, MultiSelectListPreference pref, int defSummary) { + // Update summary message with current values + final String[] values = parseStoredValue(val); + if (values != null) { + final int length = values.length; + final CharSequence[] entries = pref.getEntries(); + StringBuilder summary = new StringBuilder(); + for (int i = 0; i < (length); i++) { + CharSequence entry = entries[Integer.parseInt(values[i])]; + if ((length - i) > 2) { + summary.append(entry).append(", "); + } else if ((length - i) == 2) { + summary.append(entry).append(" & "); + } else if ((length - i) == 1) { + summary.append(entry); + } + } + pref.setSummary(summary); + } else { + pref.setSummary(defSummary); + } + } + + public static String[] parseStoredValue(CharSequence val) { + if (TextUtils.isEmpty(val)) { + return null; + } else { + return val.toString().split(SEPARATOR); + } + } + + } + + public static class PowerWidgetOrder extends ListFragment + { + private static final String TAG = "PowerWidgetOrderActivity"; + + private ListView mButtonList; + private ButtonAdapter mButtonAdapter; + View mContentView = null; + Context mContext; + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + mContentView = inflater.inflate(R.layout.order_power_widget_buttons_activity, null); + return mContentView; + } + + /** Called when the activity is first created. */ + // @Override + // public void onCreate(Bundle icicle) + @Override + public void onActivityCreated(Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); + mContext = getActivity().getApplicationContext(); + + mButtonList = getListView(); + ((TouchInterceptor) mButtonList).setDropListener(mDropListener); + mButtonAdapter = new ButtonAdapter(mContext); + setListAdapter(mButtonAdapter); + } + + @Override + public void onDestroy() { + ((TouchInterceptor) mButtonList).setDropListener(null); + setListAdapter(null); + super.onDestroy(); + } + + @Override + public void onResume() { + super.onResume(); + // reload our buttons and invalidate the views for redraw + mButtonAdapter.reloadButtons(); + mButtonList.invalidateViews(); + } + + private TouchInterceptor.DropListener mDropListener = new TouchInterceptor.DropListener() { + public void drop(int from, int to) { + // get the current button list + ArrayList<String> buttons = PowerWidgetUtil.getButtonListFromString( + PowerWidgetUtil.getCurrentButtons(mContext)); + + // move the button + if (from < buttons.size()) { + String button = buttons.remove(from); + + if (to <= buttons.size()) { + buttons.add(to, button); + + // save our buttons + PowerWidgetUtil.saveCurrentButtons(mContext, + PowerWidgetUtil.getButtonStringFromList(buttons)); + + // tell our adapter/listview to reload + mButtonAdapter.reloadButtons(); + mButtonList.invalidateViews(); + } + } + } + }; + + private class ButtonAdapter extends BaseAdapter { + private Context mContext; + private Resources mSystemUIResources = null; + private LayoutInflater mInflater; + private ArrayList<PowerWidgetUtil.ButtonInfo> mButtons; + + public ButtonAdapter(Context c) { + mContext = c; + mInflater = LayoutInflater.from(mContext); + + PackageManager pm = mContext.getPackageManager(); + if (pm != null) { + try { + mSystemUIResources = pm.getResourcesForApplication("com.android.systemui"); + } catch (Exception e) { + mSystemUIResources = null; + Log.e(TAG, "Could not load SystemUI resources", e); + } + } + + reloadButtons(); + } + + public void reloadButtons() { + ArrayList<String> buttons = PowerWidgetUtil.getButtonListFromString( + PowerWidgetUtil.getCurrentButtons(mContext)); + + mButtons = new ArrayList<PowerWidgetUtil.ButtonInfo>(); + for (String button : buttons) { + if (PowerWidgetUtil.BUTTONS.containsKey(button)) { + mButtons.add(PowerWidgetUtil.BUTTONS.get(button)); + } + } + } + + public int getCount() { + return mButtons.size(); + } + + public Object getItem(int position) { + return mButtons.get(position); + } + + public long getItemId(int position) { + return position; + } + + public View getView(int position, View convertView, ViewGroup parent) { + final View v; + if (convertView == null) { + v = mInflater.inflate(R.layout.order_power_widget_button_list_item, null); + } else { + v = convertView; + } + + PowerWidgetUtil.ButtonInfo button = mButtons.get(position); + + final TextView name = (TextView) v.findViewById(R.id.name); + final ImageView icon = (ImageView) v.findViewById(R.id.icon); + + name.setText(button.getTitleResId()); + + // assume no icon first + icon.setVisibility(View.GONE); + + // attempt to load the icon for this button + if (mSystemUIResources != null) { + int resId = mSystemUIResources.getIdentifier(button.getIcon(), null, null); + if (resId > 0) { + try { + Drawable d = mSystemUIResources.getDrawable(resId); + icon.setVisibility(View.VISIBLE); + icon.setImageDrawable(d); + } catch (Exception e) { + Log.e(TAG, "Error retrieving icon drawable", e); + } + } + } + + return v; + } + } + } + +} diff --git a/src/com/android/settings/cyanogenmod/PowerWidgetEnabler.java b/src/com/android/settings/cyanogenmod/PowerWidgetEnabler.java new file mode 100644 index 0000000..c2b7ed4 --- /dev/null +++ b/src/com/android/settings/cyanogenmod/PowerWidgetEnabler.java @@ -0,0 +1,64 @@ +/* + * Copyright (C) 2012 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.android.settings.cyanogenmod; + +import android.provider.Settings; +import android.content.Context; +import android.widget.CompoundButton; +import android.widget.Switch; + +import com.android.settings.cyanogenmod.SwitchWidget; + +public class PowerWidgetEnabler extends SwitchWidget { + public PowerWidgetEnabler(Context context, Switch switch_) { + mContext = context; + mSwitch = switch_; + } + + public void resume() { + mSwitch.setOnCheckedChangeListener(this); + } + + public void pause() { + mSwitch.setOnCheckedChangeListener(null); + } + + public void setState(Switch switch_) { + boolean isEnabled = Settings.System.getInt(mContext.getContentResolver(), + Settings.System.EXPANDED_VIEW_WIDGET, 0) == 1; + mSwitch.setChecked(isEnabled); + return; + } + + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + // Do nothing if called as a result of a state machine event + if (mStateMachineEvent) { + return; + } + Settings.System.putInt(mContext.getContentResolver(), Settings.System.EXPANDED_VIEW_WIDGET, + isChecked ? 1 : 0); + return; + } + + private void setSwitchChecked(boolean checked) { + if (checked != mSwitch.isChecked()) { + mStateMachineEvent = true; + mSwitch.setChecked(checked); + mStateMachineEvent = false; + } + } +} diff --git a/src/com/android/settings/cyanogenmod/PowerWidgetUtil.java b/src/com/android/settings/cyanogenmod/PowerWidgetUtil.java new file mode 100644 index 0000000..ebd743e --- /dev/null +++ b/src/com/android/settings/cyanogenmod/PowerWidgetUtil.java @@ -0,0 +1,212 @@ +/* + * Copyright (C) 2012 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.android.settings.cyanogenmod; + +import com.android.internal.telephony.PhoneConstants; +import com.android.settings.R; + +import android.content.Context; +import android.net.wimax.WimaxHelper; +import android.provider.Settings; +import android.telephony.TelephonyManager; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; + +/** + * THIS CLASS'S DATA MUST BE KEPT UP-TO-DATE WITH THE DATA IN + * com.android.systemui.statusbar.powerwidget.PowerWidget AND + * com.android.systemui.statusbar.powerwidget.PowerButton IN THE SystemUI + * PACKAGE. + */ +public class PowerWidgetUtil { + public static final String BUTTON_WIFI = "toggleWifi"; + public static final String BUTTON_GPS = "toggleGPS"; + public static final String BUTTON_BLUETOOTH = "toggleBluetooth"; + public static final String BUTTON_BRIGHTNESS = "toggleBrightness"; + public static final String BUTTON_SOUND = "toggleSound"; + public static final String BUTTON_SYNC = "toggleSync"; + public static final String BUTTON_WIFIAP = "toggleWifiAp"; + public static final String BUTTON_SCREENTIMEOUT = "toggleScreenTimeout"; + public static final String BUTTON_MOBILEDATA = "toggleMobileData"; + public static final String BUTTON_LOCKSCREEN = "toggleLockScreen"; + public static final String BUTTON_NETWORKMODE = "toggleNetworkMode"; + public static final String BUTTON_AUTOROTATE = "toggleAutoRotate"; + public static final String BUTTON_AIRPLANE = "toggleAirplane"; + public static final String BUTTON_FLASHLIGHT = "toggleFlashlight"; + public static final String BUTTON_SLEEP = "toggleSleepMode"; + public static final String BUTTON_MEDIA_PLAY_PAUSE = "toggleMediaPlayPause"; + public static final String BUTTON_MEDIA_PREVIOUS = "toggleMediaPrevious"; + public static final String BUTTON_MEDIA_NEXT = "toggleMediaNext"; + public static final String BUTTON_LTE = "toggleLte"; + public static final String BUTTON_WIMAX = "toggleWimax"; + + public static final HashMap<String, ButtonInfo> BUTTONS = new HashMap<String, ButtonInfo>(); + static { + BUTTONS.put(BUTTON_AIRPLANE, new PowerWidgetUtil.ButtonInfo( + BUTTON_AIRPLANE, R.string.title_toggle_airplane, + "com.android.systemui:drawable/stat_airplane_on")); + BUTTONS.put(BUTTON_AUTOROTATE, new PowerWidgetUtil.ButtonInfo( + BUTTON_AUTOROTATE, R.string.title_toggle_autorotate, + "com.android.systemui:drawable/stat_orientation_on")); + BUTTONS.put(BUTTON_BLUETOOTH, new PowerWidgetUtil.ButtonInfo( + BUTTON_BLUETOOTH, R.string.title_toggle_bluetooth, + "com.android.systemui:drawable/stat_bluetooth_on")); + BUTTONS.put(BUTTON_BRIGHTNESS, new PowerWidgetUtil.ButtonInfo( + BUTTON_BRIGHTNESS, R.string.title_toggle_brightness, + "com.android.systemui:drawable/stat_brightness_on")); + BUTTONS.put(BUTTON_FLASHLIGHT, new PowerWidgetUtil.ButtonInfo( + BUTTON_FLASHLIGHT, R.string.title_toggle_flashlight, + "com.android.systemui:drawable/stat_flashlight_on")); + BUTTONS.put(BUTTON_GPS, new PowerWidgetUtil.ButtonInfo( + BUTTON_GPS, R.string.title_toggle_gps, "com.android.systemui:drawable/stat_gps_on")); + BUTTONS.put(BUTTON_LOCKSCREEN, new PowerWidgetUtil.ButtonInfo( + BUTTON_LOCKSCREEN, R.string.title_toggle_lockscreen, + "com.android.systemui:drawable/stat_lock_screen_on")); + BUTTONS.put(BUTTON_MOBILEDATA, new PowerWidgetUtil.ButtonInfo( + BUTTON_MOBILEDATA, R.string.title_toggle_mobiledata, + "com.android.systemui:drawable/stat_data_on")); + BUTTONS.put(BUTTON_NETWORKMODE, new PowerWidgetUtil.ButtonInfo( + BUTTON_NETWORKMODE, R.string.title_toggle_networkmode, + "com.android.systemui:drawable/stat_2g3g_on")); + BUTTONS.put(BUTTON_SCREENTIMEOUT, new PowerWidgetUtil.ButtonInfo( + BUTTON_SCREENTIMEOUT, R.string.title_toggle_screentimeout, + "com.android.systemui:drawable/stat_screen_timeout_on")); + BUTTONS.put(BUTTON_SLEEP, new PowerWidgetUtil.ButtonInfo( + BUTTON_SLEEP, R.string.title_toggle_sleep, + "com.android.systemui:drawable/stat_sleep")); + BUTTONS.put(BUTTON_SOUND, new PowerWidgetUtil.ButtonInfo( + BUTTON_SOUND, R.string.title_toggle_sound, + "com.android.systemui:drawable/stat_ring_on")); + BUTTONS.put(BUTTON_SYNC, new PowerWidgetUtil.ButtonInfo( + BUTTON_SYNC, R.string.title_toggle_sync, + "com.android.systemui:drawable/stat_sync_on")); + BUTTONS.put(BUTTON_WIFI, new PowerWidgetUtil.ButtonInfo( + BUTTON_WIFI, R.string.title_toggle_wifi, + "com.android.systemui:drawable/stat_wifi_on")); + BUTTONS.put(BUTTON_WIFIAP, new PowerWidgetUtil.ButtonInfo( + BUTTON_WIFIAP, R.string.title_toggle_wifiap, + "com.android.systemui:drawable/stat_wifi_ap_on")); + BUTTONS.put(BUTTON_MEDIA_PREVIOUS, new PowerWidgetUtil.ButtonInfo( + BUTTON_MEDIA_PREVIOUS, R.string.title_toggle_media_previous, + "com.android.systemui:drawable/stat_media_previous")); + BUTTONS.put(BUTTON_MEDIA_PLAY_PAUSE, new PowerWidgetUtil.ButtonInfo( + BUTTON_MEDIA_PLAY_PAUSE, R.string.title_toggle_media_play_pause, + "com.android.systemui:drawable/stat_media_play")); + BUTTONS.put(BUTTON_MEDIA_NEXT, new PowerWidgetUtil.ButtonInfo( + BUTTON_MEDIA_NEXT, R.string.title_toggle_media_next, + "com.android.systemui:drawable/stat_media_next")); + if(PhoneConstants.LTE_ON_CDMA_TRUE == TelephonyManager.getDefault().getLteOnCdmaMode() || + TelephonyManager.getDefault().getLteOnGsmMode() != 0) { + BUTTONS.put(BUTTON_LTE, new PowerWidgetUtil.ButtonInfo( + BUTTON_LTE, R.string.title_toggle_lte, + "com.android.systemui:drawable/stat_lte_on")); + } + BUTTONS.put(BUTTON_WIMAX, new PowerWidgetUtil.ButtonInfo( + BUTTON_WIMAX, R.string.title_toggle_wimax, + "com.android.systemui:drawable/stat_wimax_on")); + } + + private static final String BUTTON_DELIMITER = "|"; + private static final String BUTTONS_DEFAULT = BUTTON_WIFI + + BUTTON_DELIMITER + BUTTON_BLUETOOTH + + BUTTON_DELIMITER + BUTTON_GPS + + BUTTON_DELIMITER + BUTTON_SOUND; + + public static String getCurrentButtons(Context context) { + String buttons = Settings.System.getString(context.getContentResolver(), + Settings.System.WIDGET_BUTTONS); + if (buttons == null) { + buttons = BUTTONS_DEFAULT; + // Add the WiMAX button if it's supported + if (WimaxHelper.isWimaxSupported(context)) { + buttons += BUTTON_DELIMITER + BUTTON_WIMAX; + } + } + return buttons; + } + + public static void saveCurrentButtons(Context context, String buttons) { + Settings.System.putString(context.getContentResolver(), + Settings.System.WIDGET_BUTTONS, buttons); + } + + public static String mergeInNewButtonString(String oldString, String newString) { + ArrayList<String> oldList = getButtonListFromString(oldString); + ArrayList<String> newList = getButtonListFromString(newString); + ArrayList<String> mergedList = new ArrayList<String>(); + + // add any items from oldlist that are in new list + for (String button : oldList) { + if (newList.contains(button)) { + mergedList.add(button); + } + } + + // append anything in newlist that isn't already in the merged list to + // the end of the list + for (String button : newList) { + if (!mergedList.contains(button)) { + mergedList.add(button); + } + } + + // return merged list + return getButtonStringFromList(mergedList); + } + + public static ArrayList<String> getButtonListFromString(String buttons) { + return new ArrayList<String>(Arrays.asList(buttons.split("\\|"))); + } + + public static String getButtonStringFromList(ArrayList<String> buttons) { + if (buttons == null || buttons.size() <= 0) { + return ""; + } else { + String s = buttons.get(0); + for (int i = 1; i < buttons.size(); i++) { + s += BUTTON_DELIMITER + buttons.get(i); + } + return s; + } + } + + public static class ButtonInfo { + private String mId; + private int mTitleResId; + private String mIcon; + + public ButtonInfo(String id, int titleResId, String icon) { + mId = id; + mTitleResId = titleResId; + mIcon = icon; + } + + public String getId() { + return mId; + } + + public int getTitleResId() { + return mTitleResId; + } + + public String getIcon() { + return mIcon; + } + } +} diff --git a/src/com/android/settings/cyanogenmod/Processor.java b/src/com/android/settings/cyanogenmod/Processor.java new file mode 100644 index 0000000..ce2c404 --- /dev/null +++ b/src/com/android/settings/cyanogenmod/Processor.java @@ -0,0 +1,247 @@ +/* + * Copyright (C) 2012 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.android.settings.cyanogenmod; + +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.preference.ListPreference; +import android.preference.Preference; +import android.preference.PreferenceScreen; + +import com.android.settings.R; +import com.android.settings.SettingsPreferenceFragment; +import com.android.settings.Utils; + +// +// CPU Related Settings +// +public class Processor extends SettingsPreferenceFragment implements + Preference.OnPreferenceChangeListener { + + public static final String FREQ_CUR_PREF = "pref_cpu_freq_cur"; + public static final String SCALE_CUR_FILE = "/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq"; + public static final String FREQINFO_CUR_FILE = "/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq"; + private static String FREQ_CUR_FILE = SCALE_CUR_FILE; + public static final String GOV_PREF = "pref_cpu_gov"; + public static final String GOV_LIST_FILE = "/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors"; + public static final String GOV_FILE = "/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor"; + public static final String FREQ_MIN_PREF = "pref_cpu_freq_min"; + public static final String FREQ_MAX_PREF = "pref_cpu_freq_max"; + public static final String FREQ_LIST_FILE = "/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies"; + public static final String FREQ_MAX_FILE = "/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq"; + public static final String FREQ_MIN_FILE = "/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq"; + public static final String SOB_PREF = "pref_cpu_set_on_boot"; + + private static final String TAG = "CPUSettings"; + + private String mGovernorFormat; + private String mMinFrequencyFormat; + private String mMaxFrequencyFormat; + + private Preference mCurFrequencyPref; + private ListPreference mGovernorPref; + private ListPreference mMinFrequencyPref; + private ListPreference mMaxFrequencyPref; + + private class CurCPUThread extends Thread { + private boolean mInterrupt = false; + + public void interrupt() { + mInterrupt = true; + } + + @Override + public void run() { + try { + while (!mInterrupt) { + sleep(500); + final String curFreq = Utils.fileReadOneLine(FREQ_CUR_FILE); + if (curFreq != null) + mCurCPUHandler.sendMessage(mCurCPUHandler.obtainMessage(0, curFreq)); + } + } catch (InterruptedException e) { + } + } + }; + + private CurCPUThread mCurCPUThread = new CurCPUThread(); + + private Handler mCurCPUHandler = new Handler() { + public void handleMessage(Message msg) { + mCurFrequencyPref.setSummary(toMHz((String) msg.obj)); + } + }; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + mGovernorFormat = getString(R.string.cpu_governors_summary); + mMinFrequencyFormat = getString(R.string.cpu_min_freq_summary); + mMaxFrequencyFormat = getString(R.string.cpu_max_freq_summary); + + String[] availableFrequencies = new String[0]; + String[] availableGovernors = new String[0]; + String[] frequencies; + String availableGovernorsLine; + String availableFrequenciesLine; + String temp; + + addPreferencesFromResource(R.xml.processor_settings); + + PreferenceScreen prefScreen = getPreferenceScreen(); + + mGovernorPref = (ListPreference) prefScreen.findPreference(GOV_PREF); + mCurFrequencyPref = (Preference) prefScreen.findPreference(FREQ_CUR_PREF); + mMinFrequencyPref = (ListPreference) prefScreen.findPreference(FREQ_MIN_PREF); + mMaxFrequencyPref = (ListPreference) prefScreen.findPreference(FREQ_MAX_PREF); + + /* Governor + Some systems might not use governors */ + if (!Utils.fileExists(GOV_LIST_FILE) || !Utils.fileExists(GOV_FILE) || (temp = Utils.fileReadOneLine(GOV_FILE)) == null || (availableGovernorsLine = Utils.fileReadOneLine(GOV_LIST_FILE)) == null) { + prefScreen.removePreference(mGovernorPref); + + } else { + availableGovernors = availableGovernorsLine.split(" "); + + mGovernorPref.setEntryValues(availableGovernors); + mGovernorPref.setEntries(availableGovernors); + mGovernorPref.setValue(temp); + mGovernorPref.setSummary(String.format(mGovernorFormat, temp)); + mGovernorPref.setOnPreferenceChangeListener(this); + } + + // Disable the min/max list if we dont have a list file + if (!Utils.fileExists(FREQ_LIST_FILE) || (availableFrequenciesLine = Utils.fileReadOneLine(FREQ_LIST_FILE)) == null) { + mMinFrequencyPref.setEnabled(false); + mMaxFrequencyPref.setEnabled(false); + + } else { + availableFrequencies = availableFrequenciesLine.split(" "); + + frequencies = new String[availableFrequencies.length]; + for (int i = 0; i < frequencies.length; i++) { + frequencies[i] = toMHz(availableFrequencies[i]); + } + + // Min frequency + if (!Utils.fileExists(FREQ_MIN_FILE) || (temp = Utils.fileReadOneLine(FREQ_MIN_FILE)) == null) { + mMinFrequencyPref.setEnabled(false); + + } else { + mMinFrequencyPref.setEntryValues(availableFrequencies); + mMinFrequencyPref.setEntries(frequencies); + mMinFrequencyPref.setValue(temp); + mMinFrequencyPref.setSummary(String.format(mMinFrequencyFormat, toMHz(temp))); + mMinFrequencyPref.setOnPreferenceChangeListener(this); + } + + // Max frequency + if (!Utils.fileExists(FREQ_MAX_FILE) || (temp = Utils.fileReadOneLine(FREQ_MAX_FILE)) == null) { + mMaxFrequencyPref.setEnabled(false); + + } else { + mMaxFrequencyPref.setEntryValues(availableFrequencies); + mMaxFrequencyPref.setEntries(frequencies); + mMaxFrequencyPref.setValue(temp); + mMaxFrequencyPref.setSummary(String.format(mMaxFrequencyFormat, toMHz(temp))); + mMaxFrequencyPref.setOnPreferenceChangeListener(this); + } + } + + // Cur frequency + if (!Utils.fileExists(FREQ_CUR_FILE)) { + FREQ_CUR_FILE = FREQINFO_CUR_FILE; + } + + if (!Utils.fileExists(FREQ_CUR_FILE) || (temp = Utils.fileReadOneLine(FREQ_CUR_FILE)) == null) { + mCurFrequencyPref.setEnabled(false); + + } else { + mCurFrequencyPref.setSummary(toMHz(temp)); + + mCurCPUThread.start(); + } + } + + @Override + public void onResume() { + String temp; + + super.onResume(); + + if (Utils.fileExists(FREQ_MIN_FILE) && (temp = Utils.fileReadOneLine(FREQ_MIN_FILE)) != null) { + mMinFrequencyPref.setValue(temp); + mMinFrequencyPref.setSummary(String.format(mMinFrequencyFormat, toMHz(temp))); + } + + if (Utils.fileExists(FREQ_MAX_FILE) && (temp = Utils.fileReadOneLine(FREQ_MAX_FILE)) != null) { + mMaxFrequencyPref.setValue(temp); + mMaxFrequencyPref.setSummary(String.format(mMaxFrequencyFormat, toMHz(temp))); + } + + if (Utils.fileExists(GOV_FILE) && (temp = Utils.fileReadOneLine(GOV_FILE)) != null) { + mGovernorPref.setSummary(String.format(mGovernorFormat, temp)); + } + } + + @Override + public void onDestroy() { + super.onDestroy(); + mCurCPUThread.interrupt(); + try { + mCurCPUThread.join(); + } catch (InterruptedException e) { + } + } + + public boolean onPreferenceChange(Preference preference, Object newValue) { + String fname = ""; + + if (newValue != null) { + if (preference == mGovernorPref) { + fname = GOV_FILE; + } else if (preference == mMinFrequencyPref) { + fname = FREQ_MIN_FILE; + } else if (preference == mMaxFrequencyPref) { + fname = FREQ_MAX_FILE; + } + + if (Utils.fileWriteOneLine(fname, (String) newValue)) { + if (preference == mGovernorPref) { + mGovernorPref.setSummary(String.format(mGovernorFormat, (String) newValue)); + } else if (preference == mMinFrequencyPref) { + mMinFrequencyPref.setSummary(String.format(mMinFrequencyFormat, + toMHz((String) newValue))); + } else if (preference == mMaxFrequencyPref) { + mMaxFrequencyPref.setSummary(String.format(mMaxFrequencyFormat, + toMHz((String) newValue))); + } + return true; + } else { + return false; + } + } + return false; + } + + private String toMHz(String mhzString) { + return new StringBuilder().append(Integer.valueOf(mhzString) / 1000).append(" MHz") + .toString(); + } +}
\ No newline at end of file diff --git a/src/com/android/settings/cyanogenmod/QuickSettings.java b/src/com/android/settings/cyanogenmod/QuickSettings.java new file mode 100644 index 0000000..9e73c4a --- /dev/null +++ b/src/com/android/settings/cyanogenmod/QuickSettings.java @@ -0,0 +1,340 @@ +/* + * Copyright (C) 2012 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.android.settings.cyanogenmod; + +import android.bluetooth.BluetoothAdapter; +import android.content.ContentResolver; +import android.content.Context; +import android.content.pm.PackageManager; +import android.content.res.Resources; +import android.hardware.display.DisplayManager; +import android.hardware.display.WifiDisplayStatus; +import android.net.ConnectivityManager; +import android.nfc.NfcAdapter; +import android.os.Bundle; +import android.preference.CheckBoxPreference; +import android.preference.ListPreference; +import android.preference.MultiSelectListPreference; +import android.preference.Preference; +import android.preference.Preference.OnPreferenceChangeListener; +import android.preference.PreferenceScreen; +import android.preference.PreferenceCategory; +import android.provider.Settings; +import android.text.TextUtils; +import android.util.Log; + +import com.android.internal.telephony.Phone; +import com.android.settings.R; +import com.android.settings.SettingsPreferenceFragment; +import com.android.settings.Utils; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.Comparator; +import java.util.HashSet; +import java.util.Set; + +public class QuickSettings extends SettingsPreferenceFragment implements OnPreferenceChangeListener { + private static final String TAG = "QuickSettings"; + + private static final String SEPARATOR = "OV=I=XseparatorX=I=VO"; + private static final String EXP_RING_MODE = "pref_ring_mode"; + private static final String EXP_NETWORK_MODE = "pref_network_mode"; + private static final String EXP_SCREENTIMEOUT_MODE = "pref_screentimeout_mode"; + private static final String DYNAMIC_ALARM = "dynamic_alarm"; + private static final String DYNAMIC_BUGREPORT = "dynamic_bugreport"; + private static final String DYNAMIC_IME = "dynamic_ime"; + private static final String DYNAMIC_USBTETHER = "dynamic_usbtether"; + private static final String DYNAMIC_WIFI = "dynamic_wifi"; + private static final String QUICK_PULLDOWN = "quick_pulldown"; + private static final String COLLAPSE_PANEL = "collapse_panel"; + private static final String GENERAL_SETTINGS = "pref_general_settings"; + private static final String STATIC_TILES = "static_tiles"; + private static final String DYNAMIC_TILES = "pref_dynamic_tiles"; + + MultiSelectListPreference mRingMode; + ListPreference mNetworkMode; + ListPreference mScreenTimeoutMode; + CheckBoxPreference mDynamicAlarm; + CheckBoxPreference mDynamicBugReport; + CheckBoxPreference mDynamicWifi; + CheckBoxPreference mDynamicIme; + CheckBoxPreference mDynamicUsbTether; + CheckBoxPreference mCollapsePanel; + ListPreference mQuickPulldown; + PreferenceCategory mGeneralSettings; + PreferenceCategory mStaticTiles; + PreferenceCategory mDynamicTiles; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + addPreferencesFromResource(R.xml.quick_settings_panel_settings); + } + + @Override + public void onActivityCreated(Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); + + PreferenceScreen prefSet = getPreferenceScreen(); + PackageManager pm = getPackageManager(); + ContentResolver resolver = getActivity().getContentResolver(); + mGeneralSettings = (PreferenceCategory) prefSet.findPreference(GENERAL_SETTINGS); + mStaticTiles = (PreferenceCategory) prefSet.findPreference(STATIC_TILES); + mDynamicTiles = (PreferenceCategory) prefSet.findPreference(DYNAMIC_TILES); + mQuickPulldown = (ListPreference) prefSet.findPreference(QUICK_PULLDOWN); + if (!Utils.isPhone(getActivity())) { + if(mQuickPulldown != null) + mGeneralSettings.removePreference(mQuickPulldown); + } else { + mQuickPulldown.setOnPreferenceChangeListener(this); + int quickPulldownValue = Settings.System.getInt(resolver, Settings.System.QS_QUICK_PULLDOWN, 0); + mQuickPulldown.setValue(String.valueOf(quickPulldownValue)); + updatePulldownSummary(quickPulldownValue); + } + + mCollapsePanel = (CheckBoxPreference) prefSet.findPreference(COLLAPSE_PANEL); + mCollapsePanel.setChecked(Settings.System.getInt(resolver, Settings.System.QS_COLLAPSE_PANEL, 0) == 1); + + // Add the sound mode + mRingMode = (MultiSelectListPreference) prefSet.findPreference(EXP_RING_MODE); + String storedRingMode = Settings.System.getString(resolver, + Settings.System.EXPANDED_RING_MODE); + if (storedRingMode != null) { + String[] ringModeArray = TextUtils.split(storedRingMode, SEPARATOR); + mRingMode.setValues(new HashSet<String>(Arrays.asList(ringModeArray))); + updateSummary(storedRingMode, mRingMode, R.string.pref_ring_mode_summary); + } + mRingMode.setOnPreferenceChangeListener(this); + + // Add the network mode preference + mNetworkMode = (ListPreference) prefSet.findPreference(EXP_NETWORK_MODE); + if(mNetworkMode != null){ + mNetworkMode.setSummary(mNetworkMode.getEntry()); + mNetworkMode.setOnPreferenceChangeListener(this); + } + + // Screen timeout mode + mScreenTimeoutMode = (ListPreference) prefSet.findPreference(EXP_SCREENTIMEOUT_MODE); + mScreenTimeoutMode.setSummary(mScreenTimeoutMode.getEntry()); + mScreenTimeoutMode.setOnPreferenceChangeListener(this); + + // Add the dynamic tiles checkboxes + mDynamicAlarm = (CheckBoxPreference) prefSet.findPreference(DYNAMIC_ALARM); + mDynamicAlarm.setChecked(Settings.System.getInt(resolver, Settings.System.QS_DYNAMIC_ALARM, 1) == 1); + mDynamicBugReport = (CheckBoxPreference) prefSet.findPreference(DYNAMIC_BUGREPORT); + mDynamicBugReport.setChecked(Settings.System.getInt(resolver, Settings.System.QS_DYNAMIC_BUGREPORT, 1) == 1); + mDynamicIme = (CheckBoxPreference) prefSet.findPreference(DYNAMIC_IME); + mDynamicIme.setChecked(Settings.System.getInt(resolver, Settings.System.QS_DYNAMIC_IME, 1) == 1); + mDynamicUsbTether = (CheckBoxPreference) prefSet.findPreference(DYNAMIC_USBTETHER); + mDynamicUsbTether.setChecked(Settings.System.getInt(resolver, Settings.System.QS_DYNAMIC_USBTETHER, 1) == 1); + mDynamicWifi = (CheckBoxPreference) prefSet.findPreference(DYNAMIC_WIFI); + mDynamicWifi.setChecked(Settings.System.getInt(resolver, Settings.System.QS_DYNAMIC_WIFI, 1) == 1); + + if (!deviceSupportsUsbTether()) { + mDynamicTiles.removePreference(mDynamicUsbTether); + } + + if (!deviceSupportsWifiDisplay()) { + mDynamicTiles.removePreference(mDynamicWifi); + } + + // Don't show mobile data options if not supported + boolean isMobileData = pm.hasSystemFeature(PackageManager.FEATURE_TELEPHONY); + if (!isMobileData) { + QuickSettingsUtil.TILES.remove(QuickSettingsUtil.TILE_MOBILEDATA); + QuickSettingsUtil.TILES.remove(QuickSettingsUtil.TILE_WIFIAP); + QuickSettingsUtil.TILES.remove(QuickSettingsUtil.TILE_NETWORKMODE); + if(mNetworkMode != null) + mStaticTiles.removePreference(mNetworkMode); + QuickSettingsUtil.TILES_DEFAULT.remove(QuickSettingsUtil.TILE_WIFIAP); + QuickSettingsUtil.TILES_DEFAULT.remove(QuickSettingsUtil.TILE_MOBILEDATA); + QuickSettingsUtil.TILES_DEFAULT.remove(QuickSettingsUtil.TILE_NETWORKMODE); + } else { + // We have telephony support however, some phones run on networks not supported + // by the networkmode tile so remove both it and the associated options list + int network_state = -99; + try { + network_state = Settings.Global.getInt(resolver, + Settings.Global.PREFERRED_NETWORK_MODE); + } catch (Settings.SettingNotFoundException e) { + Log.e(TAG, "Unable to retrieve PREFERRED_NETWORK_MODE", e); + } + + switch (network_state) { + // list of supported network modes + case Phone.NT_MODE_WCDMA_PREF: + case Phone.NT_MODE_WCDMA_ONLY: + case Phone.NT_MODE_GSM_UMTS: + case Phone.NT_MODE_GSM_ONLY: + break; + default: + QuickSettingsUtil.TILES.remove(QuickSettingsUtil.TILE_NETWORKMODE); + mStaticTiles.removePreference(mNetworkMode); + break; + } + } + + // Don't show the bluetooth options if not supported + if (BluetoothAdapter.getDefaultAdapter() == null) { + QuickSettingsUtil.TILES.remove(QuickSettingsUtil.TILE_BLUETOOTH); + QuickSettingsUtil.TILES_DEFAULT.remove(QuickSettingsUtil.TILE_BLUETOOTH); + } + + // Dont show the profiles tile if profiles are disabled + if (Settings.System.getInt(resolver, Settings.System.SYSTEM_PROFILES_ENABLED, 1) != 1) { + QuickSettingsUtil.TILES.remove(QuickSettingsUtil.TILE_PROFILE); + } + + // Dont show the NFC tile if not supported + if (NfcAdapter.getDefaultAdapter(getActivity()) == null) { + QuickSettingsUtil.TILES.remove(QuickSettingsUtil.TILE_NFC); + } + + } + + public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) { + ContentResolver resolver = getActivity().getContentResolver(); + if (preference == mDynamicAlarm) { + Settings.System.putInt(resolver, Settings.System.QS_DYNAMIC_ALARM, + mDynamicAlarm.isChecked() ? 1 : 0); + return true; + } else if (preference == mDynamicBugReport) { + Settings.System.putInt(resolver, Settings.System.QS_DYNAMIC_BUGREPORT, + mDynamicBugReport.isChecked() ? 1 : 0); + return true; + } else if (preference == mDynamicIme) { + Settings.System.putInt(resolver, Settings.System.QS_DYNAMIC_IME, + mDynamicIme.isChecked() ? 1 : 0); + return true; + } else if (preference == mDynamicUsbTether) { + Settings.System.putInt(resolver, Settings.System.QS_DYNAMIC_USBTETHER, + mDynamicUsbTether.isChecked() ? 1 : 0); + return true; + } else if (preference == mDynamicWifi) { + Settings.System.putInt(resolver, Settings.System.QS_DYNAMIC_WIFI, + mDynamicWifi.isChecked() ? 1 : 0); + return true; + } else if (preference == mCollapsePanel) { + Settings.System.putInt(resolver, Settings.System.QS_COLLAPSE_PANEL, + mCollapsePanel.isChecked() ? 1 : 0); + return true; + } + return super.onPreferenceTreeClick(preferenceScreen, preference); + } + + private class MultiSelectListPreferenceComparator implements Comparator<String> { + private MultiSelectListPreference pref; + + MultiSelectListPreferenceComparator(MultiSelectListPreference p) { + pref = p; + } + + @Override + public int compare(String lhs, String rhs) { + return Integer.compare(pref.findIndexOfValue(lhs), + pref.findIndexOfValue(rhs)); + } + } + + public boolean onPreferenceChange(Preference preference, Object newValue) { + ContentResolver resolver = getActivity().getContentResolver(); + if (preference == mRingMode) { + ArrayList<String> arrValue = new ArrayList<String>((Set<String>) newValue); + Collections.sort(arrValue, new MultiSelectListPreferenceComparator(mRingMode)); + Settings.System.putString(resolver, Settings.System.EXPANDED_RING_MODE, + TextUtils.join(SEPARATOR, arrValue)); + updateSummary(TextUtils.join(SEPARATOR, arrValue), mRingMode, R.string.pref_ring_mode_summary); + return true; + } else if (preference == mNetworkMode) { + int value = Integer.valueOf((String) newValue); + int index = mNetworkMode.findIndexOfValue((String) newValue); + Settings.System.putInt(resolver, + Settings.System.EXPANDED_NETWORK_MODE, value); + mNetworkMode.setSummary(mNetworkMode.getEntries()[index]); + return true; + } else if (preference == mQuickPulldown) { + int quickPulldownValue = Integer.valueOf((String) newValue); + Settings.System.putInt(resolver, Settings.System.QS_QUICK_PULLDOWN, + quickPulldownValue); + updatePulldownSummary(quickPulldownValue); + return true; + } else if (preference == mScreenTimeoutMode) { + int value = Integer.valueOf((String) newValue); + int index = mScreenTimeoutMode.findIndexOfValue((String) newValue); + Settings.System.putInt(getActivity().getApplicationContext().getContentResolver(), + Settings.System.EXPANDED_SCREENTIMEOUT_MODE, value); + mScreenTimeoutMode.setSummary(mScreenTimeoutMode.getEntries()[index]); + return true; + } + return false; + } + + private void updateSummary(String val, MultiSelectListPreference pref, int defSummary) { + // Update summary message with current values + final String[] values = parseStoredValue(val); + if (values != null) { + final int length = values.length; + final CharSequence[] entries = pref.getEntries(); + StringBuilder summary = new StringBuilder(); + for (int i = 0; i < (length); i++) { + CharSequence entry = entries[Integer.parseInt(values[i])]; + if ((length - i) > 1) { + summary.append(entry).append(" | "); + } else { + summary.append(entry); + } + } + pref.setSummary(summary); + } else { + pref.setSummary(defSummary); + } + } + + private void updatePulldownSummary(int value) { + Resources res = getResources(); + + if (value == 0) { + /* quick pulldown deactivated */ + mQuickPulldown.setSummary(res.getString(R.string.quick_pulldown_off)); + } else { + String direction = res.getString(value == 2 + ? R.string.quick_pulldown_summary_left + : R.string.quick_pulldown_summary_right); + mQuickPulldown.setSummary(res.getString(R.string.summary_quick_pulldown, direction)); + } + } + + public static String[] parseStoredValue(CharSequence val) { + if (TextUtils.isEmpty(val)) { + return null; + } else { + return val.toString().split(SEPARATOR); + } + } + + private boolean deviceSupportsUsbTether() { + ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); + return (cm.getTetherableUsbRegexs().length != 0); + } + + private boolean deviceSupportsWifiDisplay() { + DisplayManager dm = (DisplayManager) getSystemService(Context.DISPLAY_SERVICE); + return (dm.getWifiDisplayStatus().getFeatureState() != WifiDisplayStatus.FEATURE_STATE_UNAVAILABLE); + } +} diff --git a/src/com/android/settings/cyanogenmod/QuickSettingsEnabler.java b/src/com/android/settings/cyanogenmod/QuickSettingsEnabler.java new file mode 100644 index 0000000..5e0894c --- /dev/null +++ b/src/com/android/settings/cyanogenmod/QuickSettingsEnabler.java @@ -0,0 +1,64 @@ +/* + * Copyright (C) 2012 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.android.settings.cyanogenmod; + +import android.provider.Settings; +import android.content.Context; +import android.widget.CompoundButton; +import android.widget.Switch; + +import com.android.settings.cyanogenmod.SwitchWidget; + +public class QuickSettingsEnabler extends SwitchWidget { + public QuickSettingsEnabler(Context context, Switch switch_) { + mContext = context; + mSwitch = switch_; + } + + public void resume() { + mSwitch.setOnCheckedChangeListener(this); + } + + public void pause() { + mSwitch.setOnCheckedChangeListener(null); + } + + public void setState(Switch switch_) { + boolean isEnabled = Settings.System.getInt(mContext.getContentResolver(), + Settings.System.EXPANDED_VIEW_WIDGET, 0) == 1; + mSwitch.setChecked(isEnabled); + return; + } + + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + // Do nothing if called as a result of a state machine event + if (mStateMachineEvent) { + return; + } + Settings.System.putInt(mContext.getContentResolver(), Settings.System.EXPANDED_VIEW_WIDGET, + isChecked ? 1 : 0); + return; + } + + private void setSwitchChecked(boolean checked) { + if (checked != mSwitch.isChecked()) { + mStateMachineEvent = true; + mSwitch.setChecked(checked); + mStateMachineEvent = false; + } + } +} diff --git a/src/com/android/settings/cyanogenmod/QuickSettingsTiles.java b/src/com/android/settings/cyanogenmod/QuickSettingsTiles.java new file mode 100644 index 0000000..90ebd30 --- /dev/null +++ b/src/com/android/settings/cyanogenmod/QuickSettingsTiles.java @@ -0,0 +1,234 @@ +/* + * Copyright (C) 2012 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.android.settings.cyanogenmod; + +import android.app.AlertDialog; +import android.app.Fragment; +import android.content.Context; +import android.content.DialogInterface; +import android.content.pm.PackageManager; +import android.content.res.Resources; +import android.graphics.drawable.Drawable; +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; +import android.widget.AdapterView; +import android.widget.AdapterView.OnItemClickListener; +import android.widget.ArrayAdapter; +import android.widget.TextView; + +import com.android.settings.R; +import com.android.settings.Utils; +import com.android.settings.cyanogenmod.QuickSettingsUtil.TileInfo; + +import java.util.ArrayList; +public class QuickSettingsTiles extends Fragment { + + private static final int MENU_RESET = Menu.FIRST; + + DraggableGridView mDragView; + private ViewGroup mContainer; + LayoutInflater mInflater; + Resources mSystemUiResources; + TileAdapter mTileAdapter; + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + mDragView = new DraggableGridView(getActivity(), null); + mContainer = container; + mInflater = inflater; + PackageManager pm = getActivity().getPackageManager(); + if (pm != null) { + try { + mSystemUiResources = pm.getResourcesForApplication("com.android.systemui"); + } catch (Exception e) { + mSystemUiResources = null; + } + } + mTileAdapter = new TileAdapter(getActivity(), 0); + return mDragView; + } + + void genTiles() { + mDragView.removeAllViews(); + ArrayList<String> tiles = QuickSettingsUtil.getTileListFromString(QuickSettingsUtil.getCurrentTiles(getActivity())); + for (String tileindex : tiles) { + QuickSettingsUtil.TileInfo tile = QuickSettingsUtil.TILES.get(tileindex); + if (tile != null) { + addTile(tile.getTitleResId(), tile.getIcon(), 0, false); + } + } + addTile(R.string.profiles_add, null, R.drawable.ic_menu_add, false); + } + + /** + * Adds a tile to the dragview + * @param titleId - string id for tile text in systemui + * @param iconSysId - resource id for icon in systemui + * @param iconRegId - resource id for icon in local package + * @param newTile - whether a new tile is being added by user + */ + void addTile(int titleId, String iconSysId, int iconRegId, boolean newTile) { + View v = (View) mInflater.inflate(R.layout.qs_tile, null, false); + final TextView name = (TextView) v.findViewById(R.id.qs_text); + name.setText(titleId); + if (mSystemUiResources != null && iconSysId != null) { + int resId = mSystemUiResources.getIdentifier(iconSysId, null, null); + if (resId > 0) { + try { + Drawable d = mSystemUiResources.getDrawable(resId); + name.setCompoundDrawablesRelativeWithIntrinsicBounds(null, d, null, null); + } catch (Exception e) { + e.printStackTrace(); + } + } + } else { + name.setCompoundDrawablesRelativeWithIntrinsicBounds(0, iconRegId, 0, 0); + } + mDragView.addView(v, newTile ? mDragView.getChildCount() - 1 : mDragView.getChildCount()); + } + + @Override + public void onActivityCreated(Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); + genTiles(); + mDragView.setOnRearrangeListener(new OnRearrangeListener() { + public void onRearrange(int oldIndex, int newIndex) { + ArrayList<String> tiles = QuickSettingsUtil.getTileListFromString(QuickSettingsUtil.getCurrentTiles(getActivity())); + String oldTile = tiles.get(oldIndex); + tiles.remove(oldIndex); + tiles.add(newIndex, oldTile); + QuickSettingsUtil.saveCurrentTiles(getActivity(), QuickSettingsUtil.getTileStringFromList(tiles)); + } + @Override + public void onDelete(int index) { + ArrayList<String> tiles = QuickSettingsUtil.getTileListFromString(QuickSettingsUtil.getCurrentTiles(getActivity())); + tiles.remove(index); + QuickSettingsUtil.saveCurrentTiles(getActivity(), QuickSettingsUtil.getTileStringFromList(tiles)); + } + }); + mDragView.setOnItemClickListener(new OnItemClickListener() { + @Override + public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { + if (arg2 != mDragView.getChildCount() - 1) return; + AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + builder.setTitle(R.string.tile_choose_title) + .setAdapter(mTileAdapter, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, final int position) { + new Thread(new Runnable() { + @Override + public void run() { + ArrayList<String> curr = QuickSettingsUtil.getTileListFromString(QuickSettingsUtil.getCurrentTiles(getActivity())); + curr.add(mTileAdapter.getTileId(position)); + QuickSettingsUtil.saveCurrentTiles(getActivity(), QuickSettingsUtil.getTileStringFromList(curr)); + } + }).start(); + TileInfo info = QuickSettingsUtil.TILES.get(mTileAdapter.getTileId(position)); + addTile(info.getTitleResId(), info.getIcon(), 0, true); + } + }); + builder.create().show(); + } + }); + + setHasOptionsMenu(true); + } + + @Override + public void onResume() { + super.onResume(); + if (Utils.isPhone(getActivity())) { + mContainer.setPadding(20, 0, 0, 0); + } + } + + @Override + public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { + + menu.add(0, MENU_RESET, 0, R.string.profile_reset_title) + .setIcon(R.drawable.ic_settings_backup) // use the backup icon + .setAlphabeticShortcut('r') + .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | + MenuItem.SHOW_AS_ACTION_WITH_TEXT); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case MENU_RESET: + resetTiles(); + return true; + default: + return false; + } + } + + private void resetTiles() { + AlertDialog.Builder alert = new AlertDialog.Builder(getActivity()); + alert.setTitle(R.string.tiles_reset_title); + alert.setMessage(R.string.tiles_reset_message); + alert.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + QuickSettingsUtil.resetTiles(getActivity()); + genTiles(); + } + }); + alert.setNegativeButton(R.string.cancel, null); + alert.create().show(); + } + + @SuppressWarnings("rawtypes") + static class TileAdapter extends ArrayAdapter { + + String[] mTileKeys; + Resources mResources; + + public TileAdapter(Context context, int textViewResourceId) { + super(context, android.R.layout.simple_list_item_1); + mTileKeys = new String[getCount()]; + QuickSettingsUtil.TILES.keySet().toArray(mTileKeys); + mResources = context.getResources(); + } + + @Override + public int getCount() { + return QuickSettingsUtil.TILES.size(); + } + + @Override + public Object getItem(int position) { + int resid = QuickSettingsUtil.TILES.get(mTileKeys[position]) + .getTitleResId(); + return mResources.getString(resid); + } + + public String getTileId(int position) { + return QuickSettingsUtil.TILES.get(mTileKeys[position]) + .getId(); + } + + } + + public interface OnRearrangeListener { + public abstract void onRearrange(int oldIndex, int newIndex); + public abstract void onDelete(int index); + } +} diff --git a/src/com/android/settings/cyanogenmod/QuickSettingsUtil.java b/src/com/android/settings/cyanogenmod/QuickSettingsUtil.java new file mode 100644 index 0000000..100dd76 --- /dev/null +++ b/src/com/android/settings/cyanogenmod/QuickSettingsUtil.java @@ -0,0 +1,248 @@ +/* + * Copyright (C) 2012 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.android.settings.cyanogenmod; + +import com.android.internal.telephony.PhoneConstants; +import com.android.settings.R; + +import android.content.Context; +import android.net.wimax.WimaxHelper; +import android.provider.Settings; +import android.telephony.TelephonyManager; +import android.text.TextUtils; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.LinkedHashMap; + +/** + * THIS CLASS'S DATA MUST BE KEPT UP-TO-DATE WITH THE DATA IN + * com.android.systemui.statusbar.phone.QuickSettingsController + * IN THE SystemUI PACKAGE. + */ +public class QuickSettingsUtil { + /** + * START OF DATA MATCHING BLOCK + */ + public static final String TILE_USER = "toggleUser"; + public static final String TILE_BATTERY = "toggleBattery"; + public static final String TILE_SETTINGS = "toggleSettings"; + public static final String TILE_WIFI = "toggleWifi"; + public static final String TILE_GPS = "toggleGPS"; + public static final String TILE_BLUETOOTH = "toggleBluetooth"; + public static final String TILE_BRIGHTNESS = "toggleBrightness"; + public static final String TILE_SOUND = "toggleSound"; + public static final String TILE_SYNC = "toggleSync"; + public static final String TILE_WIFIAP = "toggleWifiAp"; + public static final String TILE_SCREENTIMEOUT = "toggleScreenTimeout"; + public static final String TILE_MOBILEDATA = "toggleMobileData"; + public static final String TILE_LOCKSCREEN = "toggleLockScreen"; + public static final String TILE_NETWORKMODE = "toggleNetworkMode"; + public static final String TILE_AUTOROTATE = "toggleAutoRotate"; + public static final String TILE_AIRPLANE = "toggleAirplane"; + public static final String TILE_TORCH = "toggleFlashlight"; // Keep old string for compatibility + public static final String TILE_SLEEP = "toggleSleepMode"; + public static final String TILE_LTE = "toggleLte"; + public static final String TILE_WIMAX = "toggleWimax"; + public static final String TILE_PROFILE = "toggleProfile"; + public static final String TILE_NFC = "toggleNfc"; + public static final String TILE_QUIETHOURS = "toggleQuietHours"; + + private static final String TILE_DELIMITER = "|"; + protected static ArrayList<String> TILES_DEFAULT = new ArrayList<String>(); + + static { + TILES_DEFAULT.add(TILE_USER); + TILES_DEFAULT.add(TILE_BRIGHTNESS); + TILES_DEFAULT.add(TILE_SETTINGS); + TILES_DEFAULT.add(TILE_WIFI); + TILES_DEFAULT.add(TILE_MOBILEDATA); + TILES_DEFAULT.add(TILE_BATTERY); + TILES_DEFAULT.add(TILE_AIRPLANE); + TILES_DEFAULT.add(TILE_BLUETOOTH); + } + + /** + * END OF DATA MATCHING BLOCK + */ + + // Keep sorted according to titleResId's string value + public static final LinkedHashMap<String, TileInfo> TILES = new LinkedHashMap<String, TileInfo>(); + static { + TILES.put(TILE_AIRPLANE, new QuickSettingsUtil.TileInfo( + TILE_AIRPLANE, R.string.title_tile_airplane, + "com.android.systemui:drawable/ic_qs_airplane_off")); + TILES.put(TILE_AUTOROTATE, new QuickSettingsUtil.TileInfo( + TILE_AUTOROTATE, R.string.title_tile_autorotate, + "com.android.systemui:drawable/ic_qs_auto_rotate")); + TILES.put(TILE_BATTERY, new QuickSettingsUtil.TileInfo( + TILE_BATTERY, R.string.title_tile_battery, + "com.android.systemui:drawable/ic_qs_battery_neutral")); + TILES.put(TILE_BLUETOOTH, new QuickSettingsUtil.TileInfo( + TILE_BLUETOOTH, R.string.title_tile_bluetooth, + "com.android.systemui:drawable/ic_qs_bluetooth_neutral")); + TILES.put(TILE_BRIGHTNESS, new QuickSettingsUtil.TileInfo( + TILE_BRIGHTNESS, R.string.title_tile_brightness, + "com.android.systemui:drawable/ic_qs_brightness_auto_off")); + TILES.put(TILE_SLEEP, new QuickSettingsUtil.TileInfo( + TILE_SLEEP, R.string.title_tile_sleep, + "com.android.systemui:drawable/ic_qs_sleep")); + TILES.put(TILE_GPS, new QuickSettingsUtil.TileInfo( + TILE_GPS, R.string.title_tile_gps, + "com.android.systemui:drawable/ic_qs_gps_neutral")); + TILES.put(TILE_LOCKSCREEN, new QuickSettingsUtil.TileInfo( + TILE_LOCKSCREEN, R.string.title_tile_lockscreen, + "com.android.systemui:drawable/ic_qs_lock_screen_off")); + TILES.put(TILE_MOBILEDATA, new QuickSettingsUtil.TileInfo( + TILE_MOBILEDATA, R.string.title_tile_mobiledata, + "com.android.systemui:drawable/ic_qs_signal_4")); + TILES.put(TILE_NETWORKMODE, new QuickSettingsUtil.TileInfo( + TILE_NETWORKMODE, R.string.title_tile_networkmode, + "com.android.systemui:drawable/ic_qs_2g3g_on")); + TILES.put(TILE_NFC, new QuickSettingsUtil.TileInfo( + TILE_NFC, R.string.title_tile_nfc, + "com.android.systemui:drawable/ic_qs_nfc_off")); + TILES.put(TILE_PROFILE, new QuickSettingsUtil.TileInfo( + TILE_PROFILE, R.string.title_tile_profile, + "com.android.systemui:drawable/ic_qs_profiles")); + TILES.put(TILE_QUIETHOURS, new QuickSettingsUtil.TileInfo( + TILE_QUIETHOURS, R.string.title_tile_quiet_hours, + "com.android.systemui:drawable/ic_qs_quiet_hours_off")); + TILES.put(TILE_SETTINGS, new QuickSettingsUtil.TileInfo( + TILE_SETTINGS, R.string.title_tile_settings, + "com.android.systemui:drawable/ic_qs_settings")); + TILES.put(TILE_SLEEP, new QuickSettingsUtil.TileInfo( + TILE_SLEEP, R.string.title_tile_sleep, + "com.android.systemui:drawable/ic_qs_sleep")); + TILES.put(TILE_SOUND, new QuickSettingsUtil.TileInfo( + TILE_SOUND, R.string.title_tile_sound, + "com.android.systemui:drawable/ic_qs_ring_on")); + TILES.put(TILE_SYNC, new QuickSettingsUtil.TileInfo( + TILE_SYNC, R.string.title_tile_sync, + "com.android.systemui:drawable/ic_qs_sync_off")); + TILES.put(TILE_SCREENTIMEOUT, new QuickSettingsUtil.TileInfo( + TILE_SCREENTIMEOUT, R.string.title_tile_screen_timeout, + "com.android.systemui:drawable/ic_qs_screen_timeout_off")); + TILES.put(TILE_TORCH, new QuickSettingsUtil.TileInfo( + TILE_TORCH, R.string.title_tile_torch, + "com.android.systemui:drawable/ic_qs_torch_off")); + TILES.put(TILE_WIFI, new QuickSettingsUtil.TileInfo( + TILE_WIFI, R.string.title_tile_wifi, + "com.android.systemui:drawable/ic_qs_wifi_4")); + TILES.put(TILE_WIFIAP, new QuickSettingsUtil.TileInfo( + TILE_WIFIAP, R.string.title_tile_wifiap, + "com.android.systemui:drawable/ic_qs_wifi_ap_neutral")); + TILES.put(TILE_USER, new QuickSettingsUtil.TileInfo( + TILE_USER, R.string.title_tile_user, + "com.android.systemui:drawable/ic_qs_default_user")); + +// These toggles are not available yet. Comment out for now +// if(PhoneConstants.LTE_ON_CDMA_TRUE == TelephonyManager.getDefault().getLteOnCdmaMode() || +// TelephonyManager.getDefault().getLteOnGsmMode() != 0) { +// TILES.put(TILE_LTE, new QuickSettingsUtil.TileInfo( +// TILE_LTE, R.string.title_tile_lte, +// "com.android.systemui:drawable/stat_lte_on")); +// } +// TILES.put(TILE_WIMAX, new QuickSettingsUtil.TileInfo( +// TILE_WIMAX, R.string.title_tile_wimax, +// "com.android.systemui:drawable/stat_wimax_on")); + } + + public static String getCurrentTiles(Context context) { + String tiles = Settings.System.getString(context.getContentResolver(), + Settings.System.QUICK_SETTINGS_TILES); + if (tiles == null) { + tiles = TextUtils.join(TILE_DELIMITER, TILES_DEFAULT); + } + return tiles; + } + + public static void saveCurrentTiles(Context context, String tiles) { + Settings.System.putString(context.getContentResolver(), + Settings.System.QUICK_SETTINGS_TILES, tiles); + } + + public static void resetTiles(Context context) { + String defaultTiles = TextUtils.join(TILE_DELIMITER, TILES_DEFAULT); + Settings.System.putString(context.getContentResolver(), + Settings.System.QUICK_SETTINGS_TILES, defaultTiles); + } + + public static String mergeInNewTileString(String oldString, String newString) { + ArrayList<String> oldList = getTileListFromString(oldString); + ArrayList<String> newList = getTileListFromString(newString); + ArrayList<String> mergedList = new ArrayList<String>(); + + // add any items from oldlist that are in new list + for (String tile : oldList) { + if (newList.contains(tile)) { + mergedList.add(tile); + } + } + + // append anything in newlist that isn't already in the merged list to + // the end of the list + for (String tile : newList) { + if (!mergedList.contains(tile)) { + mergedList.add(tile); + } + } + + // return merged list + return getTileStringFromList(mergedList); + } + + public static ArrayList<String> getTileListFromString(String tiles) { + return new ArrayList<String>(Arrays.asList(tiles.split("\\|"))); + } + + public static String getTileStringFromList(ArrayList<String> tiles) { + if (tiles == null || tiles.size() <= 0) { + return ""; + } else { + String s = tiles.get(0); + for (int i = 1; i < tiles.size(); i++) { + s += TILE_DELIMITER + tiles.get(i); + } + return s; + } + } + + public static class TileInfo { + private String mId; + private int mTitleResId; + private String mIcon; + + public TileInfo(String id, int titleResId, String icon) { + mId = id; + mTitleResId = titleResId; + mIcon = icon; + } + + public String getId() { + return mId; + } + + public int getTitleResId() { + return mTitleResId; + } + + public String getIcon() { + return mIcon; + } + } +} diff --git a/src/com/android/settings/cyanogenmod/QuietHours.java b/src/com/android/settings/cyanogenmod/QuietHours.java new file mode 100644 index 0000000..60132d5 --- /dev/null +++ b/src/com/android/settings/cyanogenmod/QuietHours.java @@ -0,0 +1,131 @@ +/* + * Copyright (C) 2012 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.android.settings.cyanogenmod; + +import android.content.ContentResolver; +import android.os.Bundle; +import android.preference.CheckBoxPreference; +import android.preference.Preference; +import android.preference.PreferenceScreen; +import android.provider.Settings; + +import com.android.settings.R; +import com.android.settings.SettingsPreferenceFragment; + +public class QuietHours extends SettingsPreferenceFragment implements + Preference.OnPreferenceChangeListener { + + private static final String TAG = "QuietHours"; + private static final String KEY_QUIET_HOURS_ENABLED = "quiet_hours_enabled"; + private static final String KEY_QUIET_HOURS_MUTE = "quiet_hours_mute"; + private static final String KEY_QUIET_HOURS_STILL = "quiet_hours_still"; + private static final String KEY_QUIET_HOURS_DIM = "quiet_hours_dim"; + private static final String KEY_QUIET_HOURS_HAPTIC = "quiet_hours_haptic"; + private static final String KEY_QUIET_HOURS_NOTE = "quiet_hours_note"; + private static final String KEY_QUIET_HOURS_TIMERANGE = "quiet_hours_timerange"; + + private CheckBoxPreference mQuietHoursEnabled; + private Preference mQuietHoursNote; + private CheckBoxPreference mQuietHoursMute; + private CheckBoxPreference mQuietHoursStill; + private CheckBoxPreference mQuietHoursDim; + private CheckBoxPreference mQuietHoursHaptic; + private TimeRangePreference mQuietHoursTimeRange; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + if (getPreferenceManager() != null) { + addPreferencesFromResource(R.xml.quiet_hours_settings); + + ContentResolver resolver = getActivity().getApplicationContext().getContentResolver(); + + PreferenceScreen prefSet = getPreferenceScreen(); + + // Load the preferences + mQuietHoursNote = prefSet.findPreference(KEY_QUIET_HOURS_NOTE); + mQuietHoursEnabled = (CheckBoxPreference) prefSet.findPreference(KEY_QUIET_HOURS_ENABLED); + mQuietHoursTimeRange = (TimeRangePreference) prefSet.findPreference(KEY_QUIET_HOURS_TIMERANGE); + mQuietHoursMute = (CheckBoxPreference) prefSet.findPreference(KEY_QUIET_HOURS_MUTE); + mQuietHoursStill = (CheckBoxPreference) prefSet.findPreference(KEY_QUIET_HOURS_STILL); + mQuietHoursHaptic = (CheckBoxPreference) prefSet.findPreference(KEY_QUIET_HOURS_HAPTIC); + mQuietHoursDim = (CheckBoxPreference) findPreference(KEY_QUIET_HOURS_DIM); + + // Remove the "Incoming calls behaviour" note if the device does not support phone calls + if (mQuietHoursNote != null && getResources().getBoolean(com.android.internal.R.bool.config_voice_capable) == false) { + getPreferenceScreen().removePreference(mQuietHoursNote); + } + + // Set the preference state and listeners where applicable + mQuietHoursEnabled.setChecked(Settings.System.getInt(resolver, Settings.System.QUIET_HOURS_ENABLED, 0) == 1); + mQuietHoursTimeRange.setTimeRange(Settings.System.getInt(resolver, Settings.System.QUIET_HOURS_START, 0), + Settings.System.getInt(resolver, Settings.System.QUIET_HOURS_END, 0)); + mQuietHoursTimeRange.setOnPreferenceChangeListener(this); + mQuietHoursMute.setChecked(Settings.System.getInt(resolver, Settings.System.QUIET_HOURS_MUTE, 0) == 1); + mQuietHoursStill.setChecked(Settings.System.getInt(resolver, Settings.System.QUIET_HOURS_STILL, 0) == 1); + mQuietHoursHaptic.setChecked(Settings.System.getInt(resolver, Settings.System.QUIET_HOURS_HAPTIC, 0) == 1); + + // Remove the notification light setting if the device does not support it + if (mQuietHoursDim != null && getResources().getBoolean(com.android.internal.R.bool.config_intrusiveNotificationLed) == false) { + getPreferenceScreen().removePreference(mQuietHoursDim); + } else { + mQuietHoursDim.setChecked(Settings.System.getInt(resolver, Settings.System.QUIET_HOURS_DIM, 0) == 1); + } + } + } + + @Override + public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) { + ContentResolver resolver = getActivity().getApplicationContext().getContentResolver(); + + if (preference == mQuietHoursEnabled) { + Settings.System.putInt(resolver, Settings.System.QUIET_HOURS_ENABLED, + mQuietHoursEnabled.isChecked() ? 1 : 0); + return true; + } else if (preference == mQuietHoursMute) { + Settings.System.putInt(resolver, Settings.System.QUIET_HOURS_MUTE, + mQuietHoursMute.isChecked() ? 1 : 0); + return true; + } else if (preference == mQuietHoursStill) { + Settings.System.putInt(resolver, Settings.System.QUIET_HOURS_STILL, + mQuietHoursStill.isChecked() ? 1 : 0); + return true; + } else if (preference == mQuietHoursDim) { + Settings.System.putInt(resolver, Settings.System.QUIET_HOURS_DIM, + mQuietHoursDim.isChecked() ? 1 : 0); + return true; + } else if (preference == mQuietHoursHaptic) { + Settings.System.putInt(resolver, Settings.System.QUIET_HOURS_HAPTIC, + mQuietHoursHaptic.isChecked() ? 1 : 0); + return true; + } + return super.onPreferenceTreeClick(preferenceScreen, preference); + } + + public boolean onPreferenceChange(Preference preference, Object newValue) { + ContentResolver resolver = getActivity().getApplicationContext().getContentResolver(); + if (preference == mQuietHoursTimeRange) { + Settings.System.putInt(resolver, Settings.System.QUIET_HOURS_START, + mQuietHoursTimeRange.getStartTime()); + Settings.System.putInt(resolver, Settings.System.QUIET_HOURS_END, + mQuietHoursTimeRange.getEndTime()); + return true; + } + return false; + } +}
\ No newline at end of file diff --git a/src/com/android/settings/cyanogenmod/ShortcutPickHelper.java b/src/com/android/settings/cyanogenmod/ShortcutPickHelper.java new file mode 100644 index 0000000..07a4ee1 --- /dev/null +++ b/src/com/android/settings/cyanogenmod/ShortcutPickHelper.java @@ -0,0 +1,324 @@ +/* + * Copyright (C) 2011 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.android.settings.cyanogenmod; + +import java.net.URISyntaxException; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; + +import android.app.Activity; +import android.app.AlertDialog; +import android.app.AlertDialog.Builder; +import android.app.Fragment; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.Intent.ShortcutIconResource; +import android.content.pm.ActivityInfo; +import android.content.pm.PackageInfo; +import android.content.pm.PackageManager; +import android.os.Bundle; +import android.view.View; +import android.view.ViewGroup; +import android.widget.BaseExpandableListAdapter; +import android.widget.ExpandableListView; +import android.widget.TextView; + +import com.android.settings.R; +import com.android.settings.cyanogenmod.ShortcutPickHelper.AppExpandableAdapter.GroupInfo; + +public class ShortcutPickHelper { + + private Activity mParent; + private AlertDialog mAlertDialog; + private OnPickListener mListener; + private PackageManager mPackageManager; + private static final int REQUEST_PICK_SHORTCUT = 100; + private static final int REQUEST_PICK_APPLICATION = 101; + private static final int REQUEST_CREATE_SHORTCUT = 102; + private int lastFragmentId; + + public interface OnPickListener { + void shortcutPicked(String uri, String friendlyName, boolean isApplication); + } + + public ShortcutPickHelper(Activity parent, OnPickListener listener) { + mParent = parent; + mPackageManager = mParent.getPackageManager(); + mListener = listener; + } + + public void onActivityResult(int requestCode, int resultCode, Intent data) { + if (resultCode == Activity.RESULT_OK) { + switch (requestCode) { + case REQUEST_PICK_APPLICATION: + completeSetCustomApp(data); + break; + case REQUEST_CREATE_SHORTCUT: + completeSetCustomShortcut(data); + break; + case REQUEST_PICK_SHORTCUT: + processShortcut(data, REQUEST_PICK_APPLICATION, REQUEST_CREATE_SHORTCUT); + break; + } + } + } + + public void pickShortcut(String[] names, ShortcutIconResource[] icons, int fragmentId) { + Bundle bundle = new Bundle(); + + ArrayList<String> shortcutNames = new ArrayList<String>(); + if (names != null) { + for (String s : names) { + shortcutNames.add(s); + } + } + shortcutNames.add(mParent.getString(R.string.profile_applist_title)); + shortcutNames.add(mParent.getString(R.string.picker_activities)); + bundle.putStringArrayList(Intent.EXTRA_SHORTCUT_NAME, shortcutNames); + + ArrayList<ShortcutIconResource> shortcutIcons = new ArrayList<ShortcutIconResource>(); + if (icons != null) { + for (ShortcutIconResource s : icons) { + shortcutIcons.add(s); + } + } + shortcutIcons.add(ShortcutIconResource.fromContext(mParent, android.R.drawable.sym_def_app_icon)); + shortcutIcons.add(ShortcutIconResource.fromContext(mParent, R.drawable.activities_icon)); + bundle.putParcelableArrayList(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, shortcutIcons); + + Intent pickIntent = new Intent(Intent.ACTION_PICK_ACTIVITY); + pickIntent.putExtra(Intent.EXTRA_INTENT, new Intent(Intent.ACTION_CREATE_SHORTCUT)); + pickIntent.putExtra(Intent.EXTRA_TITLE, mParent.getText(R.string.select_custom_app_title)); + pickIntent.putExtras(bundle); + lastFragmentId = fragmentId; + startFragmentOrActivity(pickIntent, REQUEST_PICK_SHORTCUT); + } + + private void startFragmentOrActivity(Intent pickIntent, int requestCode) { + if (lastFragmentId == 0) { + mParent.startActivityForResult(pickIntent, requestCode); + } else { + Fragment cFrag = mParent.getFragmentManager().findFragmentById(lastFragmentId); + if (cFrag != null) { + mParent.startActivityFromFragment(cFrag, pickIntent, requestCode); + } + } + } + + private void processShortcut(final Intent intent, int requestCodeApplication, int requestCodeShortcut) { + // Handle case where user selected "Applications" + String applicationName = mParent.getString(R.string.profile_applist_title); + String application2name = mParent.getString(R.string.picker_activities); + String shortcutName = intent.getStringExtra(Intent.EXTRA_SHORTCUT_NAME); + if (applicationName != null && applicationName.equals(shortcutName)) { + Intent mainIntent = new Intent(Intent.ACTION_MAIN, null); + mainIntent.addCategory(Intent.CATEGORY_LAUNCHER); + + Intent pickIntent = new Intent(Intent.ACTION_PICK_ACTIVITY); + pickIntent.putExtra(Intent.EXTRA_INTENT, mainIntent); + startFragmentOrActivity(pickIntent, requestCodeApplication); + } else if (application2name != null && application2name.equals(shortcutName)){ + final List<PackageInfo> pInfos = mPackageManager.getInstalledPackages(PackageManager.GET_ACTIVITIES); + ExpandableListView appListView = new ExpandableListView(mParent); + AppExpandableAdapter appAdapter = new AppExpandableAdapter(pInfos, mParent); + appListView.setAdapter(appAdapter); + appListView.setOnChildClickListener(new ExpandableListView.OnChildClickListener() { + @Override + public boolean onChildClick(ExpandableListView parent, View v, + int groupPosition, int childPosition, long id) { + Intent shortIntent = new Intent(Intent.ACTION_MAIN); + String pkgName = ((GroupInfo)parent.getExpandableListAdapter().getGroup(groupPosition)) + .info.packageName; + String actName = ((GroupInfo)parent.getExpandableListAdapter().getGroup(groupPosition)) + .info.activities[childPosition].name; + shortIntent.setClassName(pkgName, actName); + completeSetCustomApp(shortIntent); + mAlertDialog.dismiss(); + return true; + } + }); + Builder builder = new Builder(mParent); + builder.setView(appListView); + mAlertDialog = builder.create(); + mAlertDialog.setTitle(mParent.getString(R.string.select_custom_activity_title)); + mAlertDialog.show(); + mAlertDialog.setOnCancelListener(new DialogInterface.OnCancelListener() { + @Override + public void onCancel(DialogInterface dialog) { + mListener.shortcutPicked(null, null, false); + } + }); + } else { + startFragmentOrActivity(intent, requestCodeShortcut); + } + } + + public class AppExpandableAdapter extends BaseExpandableListAdapter { + + ArrayList<GroupInfo> allList = new ArrayList<GroupInfo>(); + final int groupPadding; + + public class LabelCompare implements Comparator<GroupInfo>{ + @Override + public int compare(GroupInfo item1, GroupInfo item2) { + String rank1 = item1.label.toLowerCase(); + String rank2 = item2.label.toLowerCase(); + int result = rank1.compareTo(rank2); + if(result == 0) { + return 0; + } else if(result < 0) { + return -1; + } else { + return +1; + } + } + } + + class GroupInfo { + String label; + PackageInfo info; + GroupInfo (String l, PackageInfo p) { + label = l; + info = p; + } + } + + public AppExpandableAdapter(List<PackageInfo> pInfos, Context context) { + for (PackageInfo i : pInfos) { + allList.add(new GroupInfo(i.applicationInfo.loadLabel(mPackageManager).toString(), i)); + } + Collections.sort(allList, new LabelCompare()); + groupPadding = context.getResources().getDimensionPixelSize(R.dimen.shortcut_picker_left_padding); + } + + public String getChild(int groupPosition, int childPosition) { + return allList.get(groupPosition).info.activities[childPosition].name; + } + + public long getChildId(int groupPosition, int childPosition) { + return childPosition; + } + + public int getChildrenCount(int groupPosition) { + if (allList.get(groupPosition).info.activities != null) { + return allList.get(groupPosition).info.activities.length; + } else { + return 0; + } + } + + + public View getChildView(int groupPosition, int childPosition, boolean isLastChild, + View convertView, ViewGroup parent) { + if (convertView == null) { + convertView = View.inflate(mParent, android.R.layout.simple_list_item_1, null); + convertView.setPadding(groupPadding, 0, 0, 0); + + } + TextView textView = (TextView)convertView.findViewById(android.R.id.text1); + textView.setText(getChild(groupPosition, childPosition).replaceFirst(allList.get(groupPosition).info.packageName + ".", "")); + return convertView; + } + + public GroupInfo getGroup(int groupPosition) { + return allList.get(groupPosition); + } + + public int getGroupCount() { + return allList.size(); + } + + public long getGroupId(int groupPosition) { + return groupPosition; + } + + public View getGroupView(int groupPosition, boolean isExpanded, View convertView, + ViewGroup parent) { + if (convertView == null) { + convertView = View.inflate(mParent, android.R.layout.simple_list_item_1, null); + convertView.setPadding(70, 0, 0, 0); + } + TextView textView = (TextView)convertView.findViewById(android.R.id.text1); + textView.setText(getGroup(groupPosition).label.toString()); + return convertView; + } + + public boolean isChildSelectable(int groupPosition, int childPosition) { + return true; + } + + public boolean hasStableIds() { + return true; + } + + } + + private void completeSetCustomApp(Intent data) { + mListener.shortcutPicked(data.toUri(0), getFriendlyActivityName(data, false), true); + } + + private void completeSetCustomShortcut(Intent data) { + Intent intent = data.getParcelableExtra(Intent.EXTRA_SHORTCUT_INTENT); + /* preserve shortcut name, we want to restore it later */ + intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, data.getStringExtra(Intent.EXTRA_SHORTCUT_NAME)); + String appUri = intent.toUri(0); + appUri = appUri.replaceAll("com.android.contacts.action.QUICK_CONTACT", "android.intent.action.VIEW"); + mListener.shortcutPicked(appUri, getFriendlyShortcutName(intent), false); + } + + private String getFriendlyActivityName(Intent intent, boolean labelOnly) { + ActivityInfo ai = intent.resolveActivityInfo(mPackageManager, PackageManager.GET_ACTIVITIES); + String friendlyName = null; + if (ai != null) { + friendlyName = ai.loadLabel(mPackageManager).toString(); + if (friendlyName == null && !labelOnly) { + friendlyName = ai.name; + } + } + return friendlyName != null || labelOnly ? friendlyName : intent.toUri(0); + } + + private String getFriendlyShortcutName(Intent intent) { + String activityName = getFriendlyActivityName(intent, true); + String name = intent.getStringExtra(Intent.EXTRA_SHORTCUT_NAME); + + if (activityName != null && name != null) { + return activityName + ": " + name; + } + return name != null ? name : intent.toUri(0); + } + + public String getFriendlyNameForUri(String uri) { + if (uri == null) { + return null; + } + + try { + Intent intent = Intent.parseUri(uri, 0); + if (Intent.ACTION_MAIN.equals(intent.getAction())) { + return getFriendlyActivityName(intent, false); + } + return getFriendlyShortcutName(intent); + } catch (URISyntaxException e) { + } + + return uri; + } +}
\ No newline at end of file diff --git a/src/com/android/settings/cyanogenmod/StatusBar.java b/src/com/android/settings/cyanogenmod/StatusBar.java new file mode 100644 index 0000000..6c10d13 --- /dev/null +++ b/src/com/android/settings/cyanogenmod/StatusBar.java @@ -0,0 +1,170 @@ +/* + * Copyright (C) 2012 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.android.settings.cyanogenmod; + +import android.os.Bundle; +import android.preference.CheckBoxPreference; +import android.preference.ListPreference; +import android.preference.Preference; +import android.preference.Preference.OnPreferenceChangeListener; +import android.preference.PreferenceCategory; +import android.preference.PreferenceScreen; +import android.provider.Settings; +import android.provider.Settings.SettingNotFoundException; +import android.util.Log; + +import com.android.settings.R; +import com.android.settings.SettingsPreferenceFragment; +import com.android.settings.Utils; + +public class StatusBar extends SettingsPreferenceFragment implements OnPreferenceChangeListener { + + private static final String STATUS_BAR_AM_PM = "status_bar_am_pm"; + private static final String STATUS_BAR_BATTERY = "status_bar_battery"; + private static final String STATUS_BAR_CLOCK = "status_bar_show_clock"; + private static final String STATUS_BAR_BRIGHTNESS_CONTROL = "status_bar_brightness_control"; + private static final String STATUS_BAR_SIGNAL = "status_bar_signal"; + private static final String STATUS_BAR_NOTIF_COUNT = "status_bar_notif_count"; + private static final String STATUS_BAR_CATEGORY_GENERAL = "status_bar_general"; + + private ListPreference mStatusBarAmPm; + private ListPreference mStatusBarBattery; + private ListPreference mStatusBarCmSignal; + private CheckBoxPreference mStatusBarClock; + private CheckBoxPreference mStatusBarBrightnessControl; + private CheckBoxPreference mStatusBarNotifCount; + private PreferenceCategory mPrefCategoryGeneral; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + addPreferencesFromResource(R.xml.status_bar); + + PreferenceScreen prefSet = getPreferenceScreen(); + + mStatusBarClock = (CheckBoxPreference) prefSet.findPreference(STATUS_BAR_CLOCK); + mStatusBarBrightnessControl = (CheckBoxPreference) prefSet.findPreference(STATUS_BAR_BRIGHTNESS_CONTROL); + mStatusBarAmPm = (ListPreference) prefSet.findPreference(STATUS_BAR_AM_PM); + mStatusBarBattery = (ListPreference) prefSet.findPreference(STATUS_BAR_BATTERY); + mStatusBarCmSignal = (ListPreference) prefSet.findPreference(STATUS_BAR_SIGNAL); + + mStatusBarClock.setChecked((Settings.System.getInt(getActivity().getApplicationContext().getContentResolver(), + Settings.System.STATUS_BAR_CLOCK, 1) == 1)); + mStatusBarBrightnessControl.setChecked((Settings.System.getInt(getActivity().getApplicationContext().getContentResolver(), + Settings.System.STATUS_BAR_BRIGHTNESS_CONTROL, 0) == 1)); + + try { + if (Settings.System.getInt(getActivity().getApplicationContext().getContentResolver(), + Settings.System.SCREEN_BRIGHTNESS_MODE) == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC) { + mStatusBarBrightnessControl.setEnabled(false); + mStatusBarBrightnessControl.setSummary(R.string.status_bar_toggle_info); + } + } catch (SettingNotFoundException e) { + } + + try { + if (Settings.System.getInt(getActivity().getApplicationContext().getContentResolver(), + Settings.System.TIME_12_24) == 24) { + mStatusBarAmPm.setEnabled(false); + mStatusBarAmPm.setSummary(R.string.status_bar_am_pm_info); + } + } catch (SettingNotFoundException e ) { + } + + int statusBarAmPm = Settings.System.getInt(getActivity().getApplicationContext().getContentResolver(), + Settings.System.STATUS_BAR_AM_PM, 2); + mStatusBarAmPm.setValue(String.valueOf(statusBarAmPm)); + mStatusBarAmPm.setSummary(mStatusBarAmPm.getEntry()); + mStatusBarAmPm.setOnPreferenceChangeListener(this); + + int statusBarBattery = Settings.System.getInt(getActivity().getApplicationContext().getContentResolver(), + Settings.System.STATUS_BAR_BATTERY, 0); + mStatusBarBattery.setValue(String.valueOf(statusBarBattery)); + mStatusBarBattery.setSummary(mStatusBarBattery.getEntry()); + mStatusBarBattery.setOnPreferenceChangeListener(this); + + int signalStyle = Settings.System.getInt(getActivity().getApplicationContext().getContentResolver(), + Settings.System.STATUS_BAR_SIGNAL_TEXT, 0); + mStatusBarCmSignal.setValue(String.valueOf(signalStyle)); + mStatusBarCmSignal.setSummary(mStatusBarCmSignal.getEntry()); + mStatusBarCmSignal.setOnPreferenceChangeListener(this); + + mStatusBarNotifCount = (CheckBoxPreference) prefSet.findPreference(STATUS_BAR_NOTIF_COUNT); + mStatusBarNotifCount.setChecked((Settings.System.getInt(getActivity().getApplicationContext().getContentResolver(), + Settings.System.STATUS_BAR_NOTIF_COUNT, 0) == 1)); + + mPrefCategoryGeneral = (PreferenceCategory) findPreference(STATUS_BAR_CATEGORY_GENERAL); + + if (Utils.isWifiOnly(getActivity())) { + mPrefCategoryGeneral.removePreference(mStatusBarCmSignal); + } + + if (Utils.isTablet(getActivity())) { + mPrefCategoryGeneral.removePreference(mStatusBarBrightnessControl); + } + + } + + public boolean onPreferenceChange(Preference preference, Object newValue) { + if (preference == mStatusBarAmPm) { + int statusBarAmPm = Integer.valueOf((String) newValue); + int index = mStatusBarAmPm.findIndexOfValue((String) newValue); + Settings.System.putInt(getActivity().getApplicationContext().getContentResolver(), + Settings.System.STATUS_BAR_AM_PM, statusBarAmPm); + mStatusBarAmPm.setSummary(mStatusBarAmPm.getEntries()[index]); + return true; + } else if (preference == mStatusBarBattery) { + int statusBarBattery = Integer.valueOf((String) newValue); + int index = mStatusBarBattery.findIndexOfValue((String) newValue); + Settings.System.putInt(getActivity().getApplicationContext().getContentResolver(), + Settings.System.STATUS_BAR_BATTERY, statusBarBattery); + mStatusBarBattery.setSummary(mStatusBarBattery.getEntries()[index]); + return true; + } else if (preference == mStatusBarCmSignal) { + int signalStyle = Integer.valueOf((String) newValue); + int index = mStatusBarCmSignal.findIndexOfValue((String) newValue); + Settings.System.putInt(getActivity().getApplicationContext().getContentResolver(), + Settings.System.STATUS_BAR_SIGNAL_TEXT, signalStyle); + mStatusBarCmSignal.setSummary(mStatusBarCmSignal.getEntries()[index]); + return true; + } + return false; + } + + public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) { + boolean value; + + if (preference == mStatusBarClock) { + value = mStatusBarClock.isChecked(); + Settings.System.putInt(getActivity().getApplicationContext().getContentResolver(), + Settings.System.STATUS_BAR_CLOCK, value ? 1 : 0); + return true; + } else if (preference == mStatusBarBrightnessControl) { + value = mStatusBarBrightnessControl.isChecked(); + Settings.System.putInt(getActivity().getApplicationContext().getContentResolver(), + Settings.System.STATUS_BAR_BRIGHTNESS_CONTROL, value ? 1 : 0); + return true; + } else if (preference == mStatusBarNotifCount) { + value = mStatusBarNotifCount.isChecked(); + Settings.System.putInt(getActivity().getApplicationContext().getContentResolver(), + Settings.System.STATUS_BAR_NOTIF_COUNT, value ? 1 : 0); + return true; + } + return false; + } +} diff --git a/src/com/android/settings/cyanogenmod/SwitchWidget.java b/src/com/android/settings/cyanogenmod/SwitchWidget.java new file mode 100644 index 0000000..d55ac71 --- /dev/null +++ b/src/com/android/settings/cyanogenmod/SwitchWidget.java @@ -0,0 +1,75 @@ +/* + * Copyright (C) 2011 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.android.settings.cyanogenmod; + +import java.util.concurrent.atomic.AtomicBoolean; + +import android.content.Context; +import android.widget.CompoundButton; +import android.widget.Switch; + +public class SwitchWidget implements CompoundButton.OnCheckedChangeListener { + public static Context mContext; + public Switch mSwitch; + public AtomicBoolean mConnected = new AtomicBoolean(false); + + public boolean mStateMachineEvent; + + /* + * public SwitchWidget(Context context, Switch switch_) { super(context, + * switch_); mContext = context; mSwitch = switch_; } + */ + public SwitchWidget() { + } + + public void resume() { + mSwitch.setOnCheckedChangeListener(this); + } + + public void pause() { + mSwitch.setOnCheckedChangeListener(null); + } + + public void setSwitch(Switch switch_) { + /* Stub! */ + if (mSwitch == switch_) + return; + mSwitch.setOnCheckedChangeListener(null); + mSwitch = switch_; + mSwitch.setOnCheckedChangeListener(this); + + setState(switch_); + } + + public void setState(Switch switch_) { + /* Stub */ + return; + } + + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + /* Stub! */ + return; + } + + private void setSwitchChecked(boolean checked) { + if (checked != mSwitch.isChecked()) { + mStateMachineEvent = true; + mSwitch.setChecked(checked); + mStateMachineEvent = false; + } + } +} diff --git a/src/com/android/settings/cyanogenmod/SystemSettings.java b/src/com/android/settings/cyanogenmod/SystemSettings.java new file mode 100644 index 0000000..d34b00d --- /dev/null +++ b/src/com/android/settings/cyanogenmod/SystemSettings.java @@ -0,0 +1,178 @@ +/* + * Copyright (C) 2012 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.android.settings.cyanogenmod; + +import android.content.Context; +import android.content.pm.PackageManager.NameNotFoundException; +import android.os.Bundle; +import android.os.RemoteException; +import android.os.ServiceManager; +import android.os.UserHandle; +import android.preference.Preference; +import android.preference.PreferenceScreen; +import android.provider.Settings; +import android.util.Log; +import android.view.IWindowManager; + +import com.android.settings.R; +import com.android.settings.SettingsPreferenceFragment; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class SystemSettings extends SettingsPreferenceFragment { + private static final String TAG = "SystemSettings"; + + private static final String KEY_NOTIFICATION_PULSE = "notification_pulse"; + private static final String KEY_BATTERY_LIGHT = "battery_light"; + private static final String KEY_HARDWARE_KEYS = "hardware_keys"; + private static final String KEY_NAVIGATION_BAR = "navigation_bar"; + private static final String KEY_LOCK_CLOCK = "lock_clock"; + private static final String KEY_STATUS_BAR = "status_bar"; + private static final String KEY_QUICK_SETTINGS = "quick_settings_panel"; + private static final String KEY_NOTIFICATION_DRAWER = "notification_drawer"; + private static final String KEY_POWER_MENU = "power_menu"; + + private PreferenceScreen mNotificationPulse; + private PreferenceScreen mBatteryPulse; + private boolean mIsPrimary; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + addPreferencesFromResource(R.xml.system_settings); + PreferenceScreen prefScreen = getPreferenceScreen(); + + // Determine which user is logged in + mIsPrimary = UserHandle.myUserId() == UserHandle.USER_OWNER; + if (mIsPrimary) { + // Primary user only preferences + // Battery lights + mBatteryPulse = (PreferenceScreen) findPreference(KEY_BATTERY_LIGHT); + if (mBatteryPulse != null) { + if (getResources().getBoolean( + com.android.internal.R.bool.config_intrusiveBatteryLed) == false) { + prefScreen.removePreference(mBatteryPulse); + } else { + updateBatteryPulseDescription(); + } + } + + // Only show the hardware keys config on a device that does not have a navbar + // and the navigation bar config on phones that has a navigation bar + boolean removeKeys = false; + boolean removeNavbar = false; + IWindowManager windowManager = IWindowManager.Stub.asInterface( + ServiceManager.getService(Context.WINDOW_SERVICE)); + try { + if (windowManager.hasNavigationBar()) { + removeKeys = true; + } else { + removeNavbar = true; + } + } catch (RemoteException e) { + // Do nothing + } + + // Act on the above + if (removeKeys) { + prefScreen.removePreference(findPreference(KEY_HARDWARE_KEYS)); + } + if (removeNavbar) { + prefScreen.removePreference(findPreference(KEY_NAVIGATION_BAR)); + } + } else { + // Secondary user is logged in, remove all primary user specific preferences + prefScreen.removePreference(findPreference(KEY_BATTERY_LIGHT)); + prefScreen.removePreference(findPreference(KEY_HARDWARE_KEYS)); + prefScreen.removePreference(findPreference(KEY_NAVIGATION_BAR)); + prefScreen.removePreference(findPreference(KEY_STATUS_BAR)); + prefScreen.removePreference(findPreference(KEY_QUICK_SETTINGS)); + prefScreen.removePreference(findPreference(KEY_POWER_MENU)); + prefScreen.removePreference(findPreference(KEY_NOTIFICATION_DRAWER)); + } + + // Preferences that applies to all users + // Notification lights + mNotificationPulse = (PreferenceScreen) findPreference(KEY_NOTIFICATION_PULSE); + if (mNotificationPulse != null) { + if (!getResources().getBoolean(com.android.internal.R.bool.config_intrusiveNotificationLed)) { + prefScreen.removePreference(mNotificationPulse); + } else { + updateLightPulseDescription(); + } + } + + // Don't display the lock clock preference if its not installed + removePreferenceIfPackageNotInstalled(findPreference(KEY_LOCK_CLOCK)); + } + + private void updateLightPulseDescription() { + if (Settings.System.getInt(getActivity().getContentResolver(), + Settings.System.NOTIFICATION_LIGHT_PULSE, 0) == 1) { + mNotificationPulse.setSummary(getString(R.string.notification_light_enabled)); + } else { + mNotificationPulse.setSummary(getString(R.string.notification_light_disabled)); + } + } + + private void updateBatteryPulseDescription() { + if (Settings.System.getInt(getActivity().getContentResolver(), + Settings.System.BATTERY_LIGHT_ENABLED, 1) == 1) { + mBatteryPulse.setSummary(getString(R.string.notification_light_enabled)); + } else { + mBatteryPulse.setSummary(getString(R.string.notification_light_disabled)); + } + } + + @Override + public void onResume() { + super.onResume(); + + // All users + updateLightPulseDescription(); + + // Primary user only + if (mIsPrimary) { + updateBatteryPulseDescription(); + } + } + + @Override + public void onPause() { + super.onPause(); + } + + private boolean removePreferenceIfPackageNotInstalled(Preference preference) { + String intentUri = ((PreferenceScreen) preference).getIntent().toUri(1); + Pattern pattern = Pattern.compile("component=([^/]+)/"); + Matcher matcher = pattern.matcher(intentUri); + + String packageName = matcher.find() ? matcher.group(1) : null; + if (packageName != null) { + try { + getPackageManager().getPackageInfo(packageName, 0); + } catch (NameNotFoundException e) { + Log.e(TAG, "package " + packageName + " not installed, hiding preference."); + getPreferenceScreen().removePreference(preference); + return true; + } + } + return false; + } +} diff --git a/src/com/android/settings/cyanogenmod/TimeRangePreference.java b/src/com/android/settings/cyanogenmod/TimeRangePreference.java new file mode 100644 index 0000000..feb0e55 --- /dev/null +++ b/src/com/android/settings/cyanogenmod/TimeRangePreference.java @@ -0,0 +1,186 @@ +/* + * Copyright (C) 2012 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.android.settings.cyanogenmod; + +import java.util.Calendar; +import java.util.Date; + +import android.app.TimePickerDialog; +import android.content.Context; +import android.preference.Preference; +import android.text.format.DateFormat; +import android.util.AttributeSet; +import android.view.View; +import android.widget.CheckBox; +import android.widget.CompoundButton; +import android.widget.LinearLayout; +import android.widget.TextView; +import android.widget.TimePicker; + +import com.android.settings.R; + +public class TimeRangePreference extends Preference implements + View.OnClickListener { + + private static final String TAG = TimeRangePreference.class.getSimpleName(); + private static final int DIALOG_START_TIME = 1; + private static final int DIALOG_END_TIME = 2; + + private TextView mStartTimeText; + private TextView mEndTimeText; + private int mStartTime; + private int mEndTime; + + /** + * @param context + * @param attrs + */ + public TimeRangePreference(Context context, AttributeSet attrs) { + super(context, attrs); + init(); + } + + /** + * @param context + * @param stime + * @param etime + */ + public TimeRangePreference(Context context, int stime, int etime) { + super(context); + mStartTime = stime; + mEndTime = etime; + init(); + } + + @Override + protected void onBindView(View view) { + super.onBindView(view); + + View startTimeLayout = view.findViewById(R.id.start_time); + if ((startTimeLayout != null) && startTimeLayout instanceof LinearLayout) { + startTimeLayout.setOnClickListener(this); + } + + View endTimeLayout = view.findViewById(R.id.end_time); + if ((endTimeLayout != null) && endTimeLayout instanceof LinearLayout) { + endTimeLayout.setOnClickListener(this); + } + + mStartTimeText = (TextView) view.findViewById(R.id.start_time_text); + mEndTimeText = (TextView) view.findViewById(R.id.end_time_text); + + updatePreferenceViews(); + } + + private void init() { + setLayoutResource(R.layout.preference_time_range); + } + + private void updatePreferenceViews() { + if (mStartTimeText != null) { + mStartTimeText.setText(returnTime(mStartTime)); + } + if (mEndTimeText != null) { + mEndTimeText.setText(returnTime(mEndTime)); + } + } + + public void setStartTime(int time) { + mStartTime = time; + updatePreferenceViews(); + } + + public void setEndTime(int time) { + mEndTime = time; + updatePreferenceViews(); + } + + public void setTimeRange(int stime, int etime) { + mStartTime = stime; + mEndTime = etime; + updatePreferenceViews(); + } + + public int getStartTime() { + return(mStartTime); + } + + public int getEndTime() { + return(mEndTime); + } + + @Override + public void onClick(android.view.View v) { + if (v != null) { + if (R.id.start_time == v.getId()) { + TimePicker(DIALOG_START_TIME); + } else if (R.id.end_time == v.getId()) { + TimePicker(DIALOG_END_TIME); + } + } + } + + private void TimePicker(final int key) { + int hour; + int minutes; + int value = (key == DIALOG_START_TIME ? mStartTime : mEndTime); + + if (value < 0) { + Calendar calendar = Calendar.getInstance(); + hour = calendar.get(Calendar.HOUR_OF_DAY); + minutes = calendar.get(Calendar.MINUTE); + } else { + hour = value / 60; + minutes = value % 60; + } + + Context context = getContext(); + TimePickerDialog dlg = new TimePickerDialog(context, + new TimePickerDialog.OnTimeSetListener() { + @Override + public void onTimeSet(TimePicker v, int hours, int minutes) { + int time = hours * 60 + minutes; + if (key == DIALOG_START_TIME) { + mStartTime = time; + mStartTimeText.setText(returnTime(time)); + } else { + mEndTime = time; + mEndTimeText.setText(returnTime(time)); + } + callChangeListener(this); + }; + }, hour, minutes, DateFormat.is24HourFormat(context)); + dlg.show(); + } + + private String returnTime(int t) { + if (t < 0) { + return ""; + } + + int hr = t; + int mn = t; + + hr = hr / 60; + mn = mn % 60; + Calendar cal = Calendar.getInstance(); + cal.set(Calendar.HOUR_OF_DAY, hr); + cal.set(Calendar.MINUTE, mn); + Date date = cal.getTime(); + return DateFormat.getTimeFormat(getContext()).format(date); + } +} diff --git a/src/com/android/settings/cyanogenmod/TouchInterceptor.java b/src/com/android/settings/cyanogenmod/TouchInterceptor.java new file mode 100644 index 0000000..27556df --- /dev/null +++ b/src/com/android/settings/cyanogenmod/TouchInterceptor.java @@ -0,0 +1,365 @@ +/* + * Copyright (C) 2008 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settings.cyanogenmod; + +import com.android.settings.R; + +import android.content.Context; +import android.content.res.Resources; +import android.graphics.Bitmap; +import android.graphics.PixelFormat; +import android.graphics.Rect; +import android.util.AttributeSet; +import android.view.Gravity; +import android.view.MotionEvent; +import android.view.View; +import android.view.ViewConfiguration; +import android.view.ViewGroup; +import android.view.WindowManager; +import android.widget.AdapterView; +import android.widget.ImageView; +import android.widget.ListView; + +public class TouchInterceptor extends ListView { + + private ImageView mDragView; + private WindowManager mWindowManager; + private WindowManager.LayoutParams mWindowParams; + private int mDragPos; // which item is being dragged + private int mFirstDragPos; // where was the dragged item originally + private int mDragPoint; // at what offset inside the item did the user grab + // it + private int mCoordOffset; // the difference between screen coordinates and + // coordinates in this view + private DragListener mDragListener; + private DropListener mDropListener; + private int mUpperBound; + private int mLowerBound; + private int mHeight; + private Rect mTempRect = new Rect(); + private Bitmap mDragBitmap; + private final int mTouchSlop; + private int mItemHeightNormal; + private int mItemHeightExpanded; + private int mItemHeightHalf; + + public TouchInterceptor(Context context, AttributeSet attrs) { + super(context, attrs); + mTouchSlop = ViewConfiguration.get(context).getScaledTouchSlop(); + Resources res = getResources(); + mItemHeightNormal = res.getDimensionPixelSize(R.dimen.normal_height); + mItemHeightHalf = mItemHeightNormal / 2; + mItemHeightExpanded = res.getDimensionPixelSize(R.dimen.expanded_height); + } + + @Override + public boolean onInterceptTouchEvent(MotionEvent ev) { + if (mDragListener != null || mDropListener != null) { + switch (ev.getAction()) { + case MotionEvent.ACTION_DOWN: + int x = (int) ev.getX(); + int y = (int) ev.getY(); + int itemnum = pointToPosition(x, y); + if (itemnum == AdapterView.INVALID_POSITION) { + break; + } + ViewGroup item = (ViewGroup) getChildAt(itemnum - getFirstVisiblePosition()); + mDragPoint = y - item.getTop(); + mCoordOffset = ((int) ev.getRawY()) - y; + View dragger = item.findViewById(R.id.grabber); + Rect r = mTempRect; + dragger.getDrawingRect(r); + // The dragger icon itself is quite small, so pretend the + // touch area is bigger + if (x < r.right * 2) { + // Fix x position while dragging + int[] itemPos = new int[2]; + item.getLocationOnScreen(itemPos); + + item.setDrawingCacheEnabled(true); + // Create a copy of the drawing cache so that it does + // not get recycled + // by the framework when the list tries to clean up + // memory + Bitmap bitmap = Bitmap.createBitmap(item.getDrawingCache()); + startDragging(bitmap, itemPos[0], y); + mDragPos = itemnum; + mFirstDragPos = mDragPos; + mHeight = getHeight(); + int touchSlop = mTouchSlop; + mUpperBound = Math.min(y - touchSlop, mHeight / 3); + mLowerBound = Math.max(y + touchSlop, mHeight * 2 / 3); + return false; + } + stopDragging(); + break; + } + } + return super.onInterceptTouchEvent(ev); + } + + /* + * pointToPosition() doesn't consider invisible views, but we need to, so + * implement a slightly different version. + */ + private int myPointToPosition(int x, int y) { + + if (y < 0) { + // when dragging off the top of the screen, calculate position + // by going back from a visible item + int pos = myPointToPosition(x, y + mItemHeightNormal); + if (pos > 0) { + return pos - 1; + } + } + + Rect frame = mTempRect; + final int count = getChildCount(); + for (int i = count - 1; i >= 0; i--) { + final View child = getChildAt(i); + child.getHitRect(frame); + if (frame.contains(x, y)) { + return getFirstVisiblePosition() + i; + } + } + return INVALID_POSITION; + } + + private int getItemForPosition(int y) { + int adjustedy = y - mDragPoint - mItemHeightHalf; + int pos = myPointToPosition(0, adjustedy); + if (pos >= 0) { + if (pos <= mFirstDragPos) { + pos += 1; + } + } else if (adjustedy < 0) { + // this shouldn't happen anymore now that myPointToPosition deals + // with this situation + pos = 0; + } + return pos; + } + + private void adjustScrollBounds(int y) { + if (y >= mHeight / 3) { + mUpperBound = mHeight / 3; + } + if (y <= mHeight * 2 / 3) { + mLowerBound = mHeight * 2 / 3; + } + } + + /* + * Restore size and visibility for all listitems + */ + private void unExpandViews(boolean deletion) { + for (int i = 0;; i++) { + View v = getChildAt(i); + if (v == null) { + if (deletion) { + // HACK force update of mItemCount + int position = getFirstVisiblePosition(); + int y = getChildAt(0).getTop(); + setAdapter(getAdapter()); + setSelectionFromTop(position, y); + // end hack + } + layoutChildren(); // force children to be recreated where needed + v = getChildAt(i); + if (v == null) { + break; + } + } + ViewGroup.LayoutParams params = v.getLayoutParams(); + params.height = mItemHeightNormal; + v.setLayoutParams(params); + v.setVisibility(View.VISIBLE); + v.setDrawingCacheEnabled(false); //Resets the drawing cache, the positions might have changed. We don't want the cache to be wrong. + } + } + + /* + * Adjust visibility and size to make it appear as though an item is being + * dragged around and other items are making room for it: If dropping the + * item would result in it still being in the same place, then make the + * dragged listitem's size normal, but make the item invisible. Otherwise, + * if the dragged listitem is still on screen, make it as small as possible + * and expand the item below the insert point. If the dragged item is not on + * screen, only expand the item below the current insertpoint. + */ + private void doExpansion() { + int childnum = mDragPos - getFirstVisiblePosition(); + if (mDragPos > mFirstDragPos) { + childnum++; + } + + View first = getChildAt(mFirstDragPos - getFirstVisiblePosition()); + + for (int i = 0;; i++) { + View vv = getChildAt(i); + if (vv == null) { + break; + } + int height = mItemHeightNormal; + int visibility = View.VISIBLE; + if (vv.equals(first)) { + // processing the item that is being dragged + if (mDragPos == mFirstDragPos) { + // hovering over the original location + visibility = View.INVISIBLE; + } else { + // not hovering over it + height = 1; + } + } else if (i == childnum) { + if (mDragPos < getCount() - 1) { + height = mItemHeightExpanded; + } + } + ViewGroup.LayoutParams params = vv.getLayoutParams(); + params.height = height; + vv.setLayoutParams(params); + vv.setVisibility(visibility); + } + } + + @Override + public boolean onTouchEvent(MotionEvent ev) { + if ((mDragListener != null || mDropListener != null) && mDragView != null) { + int action = ev.getAction(); + switch (action) { + case MotionEvent.ACTION_UP: + case MotionEvent.ACTION_CANCEL: + Rect r = mTempRect; + mDragView.getDrawingRect(r); + stopDragging(); + if (mDropListener != null && mDragPos >= 0 && mDragPos < getCount()) { + mDropListener.drop(mFirstDragPos, mDragPos); + } + unExpandViews(false); + break; + + case MotionEvent.ACTION_DOWN: + case MotionEvent.ACTION_MOVE: + int x = (int) ev.getX(); + int y = (int) ev.getY(); + dragView(x, y); + int itemnum = getItemForPosition(y); + if (itemnum >= 0) { + if (action == MotionEvent.ACTION_DOWN || itemnum != mDragPos) { + if (mDragListener != null) { + mDragListener.drag(mDragPos, itemnum); + } + mDragPos = itemnum; + doExpansion(); + } + int speed = 0; + adjustScrollBounds(y); + if (y > mLowerBound) { + // scroll the list up a bit + speed = y > (mHeight + mLowerBound) / 2 ? 16 : 4; + } else if (y < mUpperBound) { + // scroll the list down a bit + speed = y < mUpperBound / 2 ? -16 : -4; + } + if (speed != 0) { + int ref = pointToPosition(0, mHeight / 2); + if (ref == AdapterView.INVALID_POSITION) { + // we hit a divider or an invisible view, check + // somewhere else + ref = pointToPosition(0, mHeight / 2 + getDividerHeight() + 64); + } + View v = getChildAt(ref - getFirstVisiblePosition()); + if (v != null) { + int pos = v.getTop(); + setSelectionFromTop(ref, pos - speed); + } + } + } + break; + } + return true; + } + return super.onTouchEvent(ev); + } + + private void startDragging(Bitmap bm, int x, int y) { + stopDragging(); + + mWindowParams = new WindowManager.LayoutParams(); + mWindowParams.gravity = Gravity.TOP | Gravity.LEFT; + mWindowParams.x = x; + mWindowParams.y = y - mDragPoint + mCoordOffset; + + mWindowParams.height = WindowManager.LayoutParams.WRAP_CONTENT; + mWindowParams.width = WindowManager.LayoutParams.WRAP_CONTENT; + mWindowParams.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE + | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE + | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON + | WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN + | WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS; + mWindowParams.format = PixelFormat.TRANSLUCENT; + mWindowParams.windowAnimations = 0; + + Context context = getContext(); + ImageView v = new ImageView(context); + int backGroundColor = context.getResources().getColor(android.R.color.holo_blue_dark); + v.setAlpha((float) 0.7); + v.setBackgroundColor(backGroundColor); + v.setImageBitmap(bm); + mDragBitmap = bm; + + mWindowManager = (WindowManager) context.getSystemService("window"); + mWindowManager.addView(v, mWindowParams); + mDragView = v; + } + + private void dragView(int x, int y) { + mWindowParams.y = y - mDragPoint + mCoordOffset; + mWindowManager.updateViewLayout(mDragView, mWindowParams); + } + + private void stopDragging() { + if (mDragView != null) { + mDragView.setVisibility(GONE); + WindowManager wm = (WindowManager) getContext().getSystemService("window"); + wm.removeView(mDragView); + mDragView.setImageDrawable(null); + mDragView = null; + } + if (mDragBitmap != null) { + mDragBitmap.recycle(); + mDragBitmap = null; + } + } + + public void setDragListener(DragListener l) { + mDragListener = l; + } + + public void setDropListener(DropListener l) { + mDropListener = l; + } + + public interface DragListener { + void drag(int from, int to); + } + + public interface DropListener { + void drop(int from, int to); + } +} diff --git a/src/com/android/settings/deviceinfo/Memory.java b/src/com/android/settings/deviceinfo/Memory.java index 825a7be..529c81c 100644 --- a/src/com/android/settings/deviceinfo/Memory.java +++ b/src/com/android/settings/deviceinfo/Memory.java @@ -174,7 +174,7 @@ public class Memory extends SettingsPreferenceFragment { @Override public void onPrepareOptionsMenu(Menu menu) { final MenuItem usb = menu.findItem(R.id.storage_usb); - usb.setVisible(!isMassStorageEnabled()); + usb.setVisible(true); } @Override diff --git a/src/com/android/settings/deviceinfo/MiscFilesHandler.java b/src/com/android/settings/deviceinfo/MiscFilesHandler.java index 1e0cc46..1a3591c 100644 --- a/src/com/android/settings/deviceinfo/MiscFilesHandler.java +++ b/src/com/android/settings/deviceinfo/MiscFilesHandler.java @@ -18,8 +18,13 @@ package com.android.settings.deviceinfo; import android.app.Activity; import android.app.ListActivity; +import android.content.ComponentName; import android.content.Context; +import android.content.Intent; +import android.content.ServiceConnection; import android.os.Bundle; +import android.os.IBinder; +import android.os.UserHandle; import android.os.storage.StorageVolume; import android.text.format.Formatter; import android.util.Log; @@ -38,6 +43,7 @@ import android.widget.CompoundButton; import android.widget.CompoundButton.OnCheckedChangeListener; import android.widget.ListView; +import com.android.internal.app.IMediaContainerService; import com.android.settings.R; import com.android.settings.deviceinfo.StorageMeasurement.FileInfo; @@ -113,12 +119,7 @@ public class MiscFilesHandler extends ListActivity { Log.i(TAG, "deleting: " + mAdapter.getItem(i)); } // delete the file - File file = new File(mAdapter.getItem(i).mFileName); - if (file.isDirectory()) { - deleteDir(file); - } else { - file.delete(); - } + new DeleteHandler(mAdapter.getItem(i).mFileName); toRemove.add(mAdapter.getItem(i)); } mAdapter.removeAll(toRemove); @@ -140,21 +141,34 @@ public class MiscFilesHandler extends ListActivity { return true; } - // Deletes all files and subdirectories under given dir. - // Returns true if all deletions were successful. - // If a deletion fails, the method stops attempting to delete and returns false. - private boolean deleteDir(File dir) { - if (dir.isDirectory()) { - String[] children = dir.list(); - for (int i=0; i < children.length; i++) { - boolean success = deleteDir(new File(dir, children[i])); - if (!success) { - return false; + private class DeleteHandler { + private ServiceConnection mDefContainerConn = new ServiceConnection() { + @Override + public void onServiceConnected(ComponentName name, IBinder service) { + final IMediaContainerService imcs = IMediaContainerService.Stub.asInterface( + service); + try { + imcs.deleteFile(mPath); // Works for file and directory + } catch (Exception e) { + Log.w(TAG, "Problem in container service", e); } + unbindService(mDefContainerConn); + } + + @Override + public void onServiceDisconnected(ComponentName name) { } + }; + + private String mPath; + + public DeleteHandler(String path) { + mPath = path; + Intent service = new Intent().setComponent( + StorageMeasurement.DEFAULT_CONTAINER_COMPONENT); + bindService(service, mDefContainerConn, Context.BIND_AUTO_CREATE, + UserHandle.USER_OWNER); } - // The directory is now empty so delete it - return dir.delete(); } public void onDestroyActionMode(ActionMode mode) { diff --git a/src/com/android/settings/deviceinfo/StorageMeasurement.java b/src/com/android/settings/deviceinfo/StorageMeasurement.java index 772ac0d..73c41ae 100644 --- a/src/com/android/settings/deviceinfo/StorageMeasurement.java +++ b/src/com/android/settings/deviceinfo/StorageMeasurement.java @@ -33,6 +33,7 @@ import android.os.HandlerThread; import android.os.IBinder; import android.os.Looper; import android.os.Message; +import android.os.Parcel; import android.os.UserHandle; import android.os.UserManager; import android.os.storage.StorageVolume; @@ -422,7 +423,7 @@ public class StorageMeasurement { } // Measure misc files not counted under media - if (mIsInternal || mIsPrimary) { + if (measureMedia) { final File path = mIsInternal ? currentEnv.getExternalStorageDirectory() : mVolume.getPathFile(); details.miscSize = measureMisc(imcs, path); @@ -473,26 +474,37 @@ public class StorageMeasurement { private long measureMisc(IMediaContainerService imcs, File dir) { mFileInfoForMisc = new ArrayList<FileInfo>(); - final File[] files = dir.listFiles(); - if (files == null) return 0; + final Parcel p = Parcel.obtain(); + try { + final byte[] bytes = imcs.listDirectory(dir.toString()); + p.unmarshall(bytes, 0, bytes.length); + p.setDataPosition(0); + } catch (Exception e) { + Log.w(TAG, "Could not list directory from default container service for " + dir, e); + return 0; + } // Get sizes of all top level nodes except the ones already computed long counter = 0; long miscSize = 0; - for (File file : files) { - final String path = file.getAbsolutePath(); - final String name = file.getName(); + int count = p.readInt(); + for (int i = 0; i < count; i++) { + final String path = p.readString(); + final String name = p.readString(); + final boolean isDirectory = p.readInt() == 1; + final boolean isFile = p.readInt() == 1; + final long fileSize = isFile ? p.readLong() : 0; + if (sMeasureMediaTypes.contains(name)) { continue; } - if (file.isFile()) { - final long fileSize = file.length(); + if (isFile) { mFileInfoForMisc.add(new FileInfo(path, fileSize, counter++)); miscSize += fileSize; - } else if (file.isDirectory()) { - final long dirSize = getDirectorySize(imcs, file); + } else if (isDirectory) { + final long dirSize = getDirectorySize(imcs, new File(path)); mFileInfoForMisc.add(new FileInfo(path, dirSize, counter++)); miscSize += dirSize; } else { diff --git a/src/com/android/settings/deviceinfo/StorageVolumePreferenceCategory.java b/src/com/android/settings/deviceinfo/StorageVolumePreferenceCategory.java index 1599ec7..61188ec 100644 --- a/src/com/android/settings/deviceinfo/StorageVolumePreferenceCategory.java +++ b/src/com/android/settings/deviceinfo/StorageVolumePreferenceCategory.java @@ -194,8 +194,9 @@ public class StorageVolumePreferenceCategory extends PreferenceCategory { } final boolean isRemovable = mVolume != null ? mVolume.isRemovable() : false; + // Always create the preference since many code rely on it existing + mMountTogglePreference = new Preference(context); if (isRemovable) { - mMountTogglePreference = new Preference(context); mMountTogglePreference.setTitle(R.string.sd_eject); mMountTogglePreference.setSummary(R.string.sd_eject_summary); addPreference(mMountTogglePreference); @@ -240,12 +241,12 @@ public class StorageVolumePreferenceCategory extends PreferenceCategory { final String state = mStorageManager.getVolumeState(mVolume.getPath()); if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) { - mItemAvailable.setSummary(R.string.memory_available_read_only); + mItemAvailable.setTitle(R.string.memory_available_read_only); if (mFormatPreference != null) { removePreference(mFormatPreference); } } else { - mItemAvailable.setSummary(R.string.memory_available); + mItemAvailable.setTitle(R.string.memory_available); } if (Environment.MEDIA_MOUNTED.equals(state) @@ -310,7 +311,9 @@ public class StorageVolumePreferenceCategory extends PreferenceCategory { private static long totalValues(HashMap<String, Long> map, String... keys) { long total = 0; for (String key : keys) { - total += map.get(key); + if (map.containsKey(key)) { + total += map.get(key); + } } return total; } diff --git a/src/com/android/settings/deviceinfo/UsbSettings.java b/src/com/android/settings/deviceinfo/UsbSettings.java index b8290fc..79f315f 100644 --- a/src/com/android/settings/deviceinfo/UsbSettings.java +++ b/src/com/android/settings/deviceinfo/UsbSettings.java @@ -26,6 +26,8 @@ import android.content.Intent; import android.content.IntentFilter; import android.hardware.usb.UsbManager; import android.os.Bundle; +import android.os.storage.StorageManager; +import android.os.storage.StorageVolume; import android.preference.CheckBoxPreference; import android.preference.Preference; import android.preference.PreferenceScreen; @@ -45,10 +47,14 @@ public class UsbSettings extends SettingsPreferenceFragment { private static final String KEY_MTP = "usb_mtp"; private static final String KEY_PTP = "usb_ptp"; + private static final String KEY_MASS_STORAGE = "usb_mass_storage"; private UsbManager mUsbManager; + private StorageManager storageManager; + private StorageVolume[] storageVolumes; private CheckBoxPreference mMtp; private CheckBoxPreference mPtp; + private CheckBoxPreference mUms; private boolean mUsbAccessoryMode; private final BroadcastReceiver mStateReceiver = new BroadcastReceiver() { @@ -72,6 +78,10 @@ public class UsbSettings extends SettingsPreferenceFragment { mMtp = (CheckBoxPreference)root.findPreference(KEY_MTP); mPtp = (CheckBoxPreference)root.findPreference(KEY_PTP); + mUms = (CheckBoxPreference)root.findPreference(KEY_MASS_STORAGE); + if (!storageVolumes[0].allowMassStorage()) { + root.removePreference(mUms); + } return root; } @@ -80,6 +90,8 @@ public class UsbSettings extends SettingsPreferenceFragment { public void onCreate(Bundle icicle) { super.onCreate(icicle); mUsbManager = (UsbManager)getSystemService(Context.USB_SERVICE); + storageManager = (StorageManager) getSystemService(Context.STORAGE_SERVICE); + storageVolumes = storageManager.getVolumeList(); } @Override @@ -105,12 +117,19 @@ public class UsbSettings extends SettingsPreferenceFragment { if (UsbManager.USB_FUNCTION_MTP.equals(function)) { mMtp.setChecked(true); mPtp.setChecked(false); + mUms.setChecked(false); } else if (UsbManager.USB_FUNCTION_PTP.equals(function)) { mMtp.setChecked(false); + mUms.setChecked(false); mPtp.setChecked(true); + } else if (UsbManager.USB_FUNCTION_MASS_STORAGE.equals(function)) { + mMtp.setChecked(false); + mPtp.setChecked(false); + mUms.setChecked(true); } else { mMtp.setChecked(false); mPtp.setChecked(false); + mUms.setChecked(false); } if (!mUsbAccessoryMode) { @@ -144,11 +163,17 @@ public class UsbSettings extends SettingsPreferenceFragment { } } if (preference == mMtp) { + Settings.Secure.putInt(getContentResolver(), Settings.Secure.USB_MASS_STORAGE_ENABLED, 0 ); mUsbManager.setCurrentFunction(UsbManager.USB_FUNCTION_MTP, true); updateToggles(UsbManager.USB_FUNCTION_MTP); } else if (preference == mPtp) { + Settings.Secure.putInt(getContentResolver(), Settings.Secure.USB_MASS_STORAGE_ENABLED, 0 ); mUsbManager.setCurrentFunction(UsbManager.USB_FUNCTION_PTP, true); updateToggles(UsbManager.USB_FUNCTION_PTP); + } else if (preference == mUms) { + Settings.Secure.putInt(getContentResolver(), Settings.Secure.USB_MASS_STORAGE_ENABLED, 1 ); + mUsbManager.setCurrentFunction(UsbManager.USB_FUNCTION_MASS_STORAGE, true); + updateToggles(UsbManager.USB_FUNCTION_MASS_STORAGE); } return true; } diff --git a/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java b/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java index c2ff0d9..5ce6644 100644 --- a/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java +++ b/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java @@ -60,6 +60,9 @@ public class InputMethodAndLanguageSettings extends SettingsPreferenceFragment private static final String KEY_CURRENT_INPUT_METHOD = "current_input_method"; private static final String KEY_INPUT_METHOD_SELECTOR = "input_method_selector"; private static final String KEY_USER_DICTIONARY_SETTINGS = "key_user_dictionary_settings"; + private static final String KEY_IME_SWITCHER = "status_bar_ime_switcher"; + private static final String VOLUME_KEY_CURSOR_CONTROL = "volume_key_cursor_control"; + private static final String KEY_STYLUS_ICON_ENABLED = "stylus_icon_enabled"; // false: on ICS or later private static final boolean SHOW_INPUT_METHOD_SWITCHER_SETTINGS = false; @@ -71,6 +74,8 @@ public class InputMethodAndLanguageSettings extends SettingsPreferenceFragment "auto_replace", "auto_caps", "auto_punctuate", }; + private CheckBoxPreference mStylusIconEnabled; + private CheckBoxPreference mStatusBarImeSwitcher; private int mDefaultInputMethodSelectorVisibility = 0; private ListPreference mShowInputMethodSelectorPref; private PreferenceCategory mKeyboardSettingsCategory; @@ -89,6 +94,7 @@ public class InputMethodAndLanguageSettings extends SettingsPreferenceFragment @SuppressWarnings("unused") private SettingsObserver mSettingsObserver; private Intent mIntentWaitingForResult; + private ListPreference mVolumeKeyCursorControl; @Override public void onCreate(Bundle icicle) { @@ -169,6 +175,18 @@ public class InputMethodAndLanguageSettings extends SettingsPreferenceFragment mIm = (InputManager)getActivity().getSystemService(Context.INPUT_SERVICE); updateInputDevices(); + // Enable or disable mStatusBarImeSwitcher based on boolean value: config_show_cmIMESwitcher + final Preference keyImeSwitcherPref = findPreference(KEY_IME_SWITCHER); + if (keyImeSwitcherPref != null) { + if (!getResources().getBoolean(com.android.internal.R.bool.config_show_cmIMESwitcher)) { + getPreferenceScreen().removePreference(keyImeSwitcherPref); + } else { + mStatusBarImeSwitcher = (CheckBoxPreference) keyImeSwitcherPref; + } + } + + mStylusIconEnabled = (CheckBoxPreference) findPreference(KEY_STYLUS_ICON_ENABLED); + // Spell Checker final Intent intent = new Intent(Intent.ACTION_MAIN); intent.setClass(getActivity(), SpellCheckersSettingsActivity.class); @@ -178,6 +196,14 @@ public class InputMethodAndLanguageSettings extends SettingsPreferenceFragment scp.setFragmentIntent(this, intent); } + mVolumeKeyCursorControl = (ListPreference) findPreference(VOLUME_KEY_CURSOR_CONTROL); + if(mVolumeKeyCursorControl != null) { + mVolumeKeyCursorControl.setOnPreferenceChangeListener(this); + mVolumeKeyCursorControl.setValue(Integer.toString(Settings.System.getInt(getActivity() + .getContentResolver(), Settings.System.VOLUME_KEY_CURSOR_CONTROL, 0))); + mVolumeKeyCursorControl.setSummary(mVolumeKeyCursorControl.getEntry()); + } + mHandler = new Handler(); mSettingsObserver = new SettingsObserver(mHandler, getActivity()); } @@ -257,6 +283,16 @@ public class InputMethodAndLanguageSettings extends SettingsPreferenceFragment } } + if (mStatusBarImeSwitcher != null) { + mStatusBarImeSwitcher.setChecked(Settings.System.getInt(getActivity().getContentResolver(), + Settings.System.STATUS_BAR_IME_SWITCHER, 1) != 0); + } + + if (mStylusIconEnabled != null) { + mStylusIconEnabled.setChecked(Settings.System.getInt(getActivity().getContentResolver(), + Settings.System.STYLUS_ICON_ENABLED, 0) == 1); + } + // Hard keyboard if (!mHardKeyboardPreferenceList.isEmpty()) { for (int i = 0; i < sHardKeyboardKeys.length; ++i) { @@ -310,7 +346,14 @@ public class InputMethodAndLanguageSettings extends SettingsPreferenceFragment if (Utils.isMonkeyRunning()) { return false; } - if (preference instanceof PreferenceScreen) { + if (preference == mStatusBarImeSwitcher) { + Settings.System.putInt(getActivity().getContentResolver(), + Settings.System.STATUS_BAR_IME_SWITCHER, mStatusBarImeSwitcher.isChecked() ? 1 : 0); + return true; + } else if (preference == mStylusIconEnabled) { + Settings.System.putInt(getActivity().getContentResolver(), + Settings.System.STYLUS_ICON_ENABLED, mStylusIconEnabled.isChecked() ? 1 : 0); + } else if (preference instanceof PreferenceScreen) { if (preference.getFragment() != null) { // Fragment will be handled correctly by the super class. } else if (KEY_CURRENT_INPUT_METHOD.equals(preference.getKey())) { @@ -377,6 +420,15 @@ public class InputMethodAndLanguageSettings extends SettingsPreferenceFragment } } } + if (preference == mVolumeKeyCursorControl) { + String volumeKeyCursorControl = (String) value; + int val = Integer.parseInt(volumeKeyCursorControl); + Settings.System.putInt(getActivity().getContentResolver(), + Settings.System.VOLUME_KEY_CURSOR_CONTROL, val); + int index = mVolumeKeyCursorControl.findIndexOfValue(volumeKeyCursorControl); + mVolumeKeyCursorControl.setSummary(mVolumeKeyCursorControl.getEntries()[index]); + return true; + } return false; } diff --git a/src/com/android/settings/nfc/AndroidBeam.java b/src/com/android/settings/nfc/AndroidBeam.java index 032681a..833711a 100644 --- a/src/com/android/settings/nfc/AndroidBeam.java +++ b/src/com/android/settings/nfc/AndroidBeam.java @@ -52,7 +52,7 @@ public class AndroidBeam extends Fragment PreferenceActivity preferenceActivity = (PreferenceActivity) activity; final int padding = activity.getResources().getDimensionPixelSize( R.dimen.action_bar_switch_padding); - mActionBarSwitch.setPadding(0, 0, padding, 0); + mActionBarSwitch.setPaddingRelative(0, 0, padding, 0); activity.getActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM, ActionBar.DISPLAY_SHOW_CUSTOM); activity.getActionBar().setCustomView(mActionBarSwitch, new ActionBar.LayoutParams( diff --git a/src/com/android/settings/notificationlight/AlphaPatternDrawable.java b/src/com/android/settings/notificationlight/AlphaPatternDrawable.java new file mode 100644 index 0000000..04fa0b6 --- /dev/null +++ b/src/com/android/settings/notificationlight/AlphaPatternDrawable.java @@ -0,0 +1,123 @@ +/* + * Copyright (C) 2010 Daniel Nilsson + * Copyright (C) 2012 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.android.settings.notificationlight; + +import android.graphics.Bitmap; +import android.graphics.Canvas; +import android.graphics.ColorFilter; +import android.graphics.Paint; +import android.graphics.Rect; +import android.graphics.Bitmap.Config; +import android.graphics.drawable.Drawable; + +/** + * This drawable that draws a simple white and gray chess board pattern. It's + * pattern you will often see as a background behind a partly transparent image + * in many applications. + * + * @author Daniel Nilsson + */ +public class AlphaPatternDrawable extends Drawable { + + private int mRectangleSize = 10; + + private Paint mPaint = new Paint(); + private Paint mPaintWhite = new Paint(); + private Paint mPaintGray = new Paint(); + + private int numRectanglesHorizontal; + private int numRectanglesVertical; + + /** + * Bitmap in which the pattern will be cached. + */ + private Bitmap mBitmap; + + public AlphaPatternDrawable(int rectangleSize) { + mRectangleSize = rectangleSize; + mPaintWhite.setColor(0xffffffff); + mPaintGray.setColor(0xffcbcbcb); + } + + @Override + public void draw(Canvas canvas) { + canvas.drawBitmap(mBitmap, null, getBounds(), mPaint); + } + + @Override + public int getOpacity() { + return 0; + } + + @Override + public void setAlpha(int alpha) { + throw new UnsupportedOperationException("Alpha is not supported by this drawwable."); + } + + @Override + public void setColorFilter(ColorFilter cf) { + throw new UnsupportedOperationException("ColorFilter is not supported by this drawwable."); + } + + @Override + protected void onBoundsChange(Rect bounds) { + super.onBoundsChange(bounds); + + int height = bounds.height(); + int width = bounds.width(); + + numRectanglesHorizontal = (int) Math.ceil((width / mRectangleSize)); + numRectanglesVertical = (int) Math.ceil(height / mRectangleSize); + + generatePatternBitmap(); + } + + /** + * This will generate a bitmap with the pattern as big as the rectangle we + * were allow to draw on. We do this to cache the bitmap so we don't need + * to recreate it each time draw() is called since it takes a few + * milliseconds. + */ + private void generatePatternBitmap() { + + if (getBounds().width() <= 0 || getBounds().height() <= 0) { + return; + } + + mBitmap = Bitmap.createBitmap(getBounds().width(), getBounds().height(), Config.ARGB_8888); + Canvas canvas = new Canvas(mBitmap); + + Rect r = new Rect(); + boolean verticalStartWhite = true; + for (int i = 0; i <= numRectanglesVertical; i++) { + boolean isWhite = verticalStartWhite; + for (int j = 0; j <= numRectanglesHorizontal; j++) { + r.top = i * mRectangleSize; + r.left = j * mRectangleSize; + r.bottom = r.top + mRectangleSize; + r.right = r.left + mRectangleSize; + + canvas.drawRect(r, isWhite ? mPaintWhite : mPaintGray); + + isWhite = !isWhite; + } + + verticalStartWhite = !verticalStartWhite; + } + } +} diff --git a/src/com/android/settings/notificationlight/ApplicationLightPreference.java b/src/com/android/settings/notificationlight/ApplicationLightPreference.java new file mode 100644 index 0000000..f76b0fd --- /dev/null +++ b/src/com/android/settings/notificationlight/ApplicationLightPreference.java @@ -0,0 +1,395 @@ +/* + * Copyright (C) 2012 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.android.settings.notificationlight; + +import android.app.AlertDialog; +import android.app.Notification; +import android.app.NotificationManager; +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.IntentFilter; +import android.content.res.Resources; +import android.graphics.drawable.ShapeDrawable; +import android.graphics.drawable.shapes.RectShape; +import android.preference.Preference; +import android.util.AttributeSet; +import android.view.View; +import android.view.View.OnLongClickListener; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; + +import com.android.settings.R; + +public class ApplicationLightPreference extends Preference implements + View.OnClickListener { + + private static String TAG = "AppLightPreference"; + public static final int DEFAULT_TIME = 1000; + public static final int DEFAULT_COLOR = 0xFFFFFF; //White + + private ImageView mLightColorView; + private TextView mOnValueView; + private TextView mOffValueView; + + private int mColorValue; + private int mOnValue; + private int mOffValue; + private boolean mOnOffChangeable; + + private OnLongClickListener mParent; + private Resources mResources; + private ScreenReceiver mReceiver = null; + private AlertDialog mTestDialog; + + /** + * @param context + * @param attrs + */ + public ApplicationLightPreference(Context context, AttributeSet attrs) { + super(context, attrs); + mColorValue = DEFAULT_COLOR; + mOnValue = DEFAULT_TIME; + mOffValue = DEFAULT_TIME; + mOnOffChangeable = true; + mParent = null; + init(); + } + + /** + * @param context + * @param color + * @param onValue + * @param offValue + */ + public ApplicationLightPreference(Context context, int color, int onValue, int offValue) { + super(context); + mColorValue = color; + mOnValue = onValue; + mOffValue = offValue; + mParent = null; + mOnOffChangeable = true; + init(); + } + + /** + * @param context + * @param onLongClickListener + * @param color + * @param onValue + * @param offValue + */ + public ApplicationLightPreference(Context context, int color, int onValue, int offValue, boolean onOffChangeable) { + super(context); + mColorValue = color; + mOnValue = onValue; + mOffValue = offValue; + mOnOffChangeable = onOffChangeable; + init(); + } + + /** + * @param context + * @param onLongClickListener + * @param color + * @param onValue + * @param offValue + */ + public ApplicationLightPreference(Context context, OnLongClickListener parent, int color, int onValue, int offValue) { + super(context); + mColorValue = color; + mOnValue = onValue; + mOffValue = offValue; + mParent = parent; + mOnOffChangeable = true; + init(); + } + + private void init() { + setLayoutResource(R.layout.preference_application_light); + mResources = getContext().getResources(); + } + + @Override + public View getView(View convertView, ViewGroup parent) { + View view = super.getView(convertView, parent); + + View lightPref = (LinearLayout) view.findViewById(R.id.app_light_pref); + if ((lightPref != null) && lightPref instanceof LinearLayout) { + lightPref.setOnClickListener(this); + if (mParent != null) { + lightPref.setOnLongClickListener(mParent); + } + } + + return view; + } + + @Override + protected void onBindView(View view) { + super.onBindView(view); + mLightColorView = (ImageView) view.findViewById(R.id.light_color); + mOnValueView = (TextView) view.findViewById(R.id.textViewTimeOnValue); + mOffValueView = (TextView) view.findViewById(R.id.textViewTimeOffValue); + + // Hide the summary text - it takes up too much space on a low res device + // We use it for storing the package name for the longClickListener + TextView tView = (TextView) view.findViewById(android.R.id.summary); + tView.setVisibility(View.GONE); + + updatePreferenceViews(); + } + + private void updatePreferenceViews() { + final int width = (int) mResources.getDimension(R.dimen.device_memory_usage_button_width); + final int height = (int) mResources.getDimension(R.dimen.device_memory_usage_button_height); + + if (mLightColorView != null) { + mLightColorView.setEnabled(true); + mLightColorView.setImageDrawable(createRectShape(width, height, 0xFF000000 + mColorValue)); + } + if (mOnValueView != null) { + mOnValueView.setText(mapLengthValue(mOnValue)); + } + if (mOffValueView != null) { + if (mOnValue == 1) { + mOffValueView.setVisibility(View.GONE); + } else { + mOffValueView.setVisibility(View.VISIBLE); + } + mOffValueView.setText(mapSpeedValue(mOffValue)); + } + } + + @Override + public void onClick(View v) { + if ((v != null) && (R.id.app_light_pref == v.getId())) { + editPreferenceValues(); + } + } + + private void editPreferenceValues() { + final LightSettingsDialog d = new LightSettingsDialog(getContext(), 0xFF000000 + mColorValue, + mOnValue, mOffValue, + mOnOffChangeable); + final int width = (int) mResources.getDimension(R.dimen.dialog_light_settings_width); + d.setAlphaSliderVisible(false); + Resources resources = getContext().getResources(); + + d.setButton(AlertDialog.BUTTON_POSITIVE, resources.getString(R.string.ok), new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + mColorValue = d.getColor() - 0xFF000000; // strip alpha, led does not support it + mOnValue = d.getPulseSpeedOn(); + mOffValue = d.getPulseSpeedOff(); + updatePreferenceViews(); + callChangeListener(this); + } + }); + d.setButton(AlertDialog.BUTTON_NEUTRAL, resources.getString(R.string.dialog_test), (DialogInterface.OnClickListener) null); + d.setButton(AlertDialog.BUTTON_NEGATIVE, resources.getString(R.string.cancel), (DialogInterface.OnClickListener) null); + d.show(); + + // Intercept the click on the middle button to show the test dialog and prevent the onDismiss + d.findViewById(android.R.id.button3).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + int onTime = d.getPulseSpeedOn(); + int offTime = d.getPulseSpeedOff(); + + showTestDialog(d.getColor() - 0xFF000000, onTime, offTime); + } + }); + + /*if (Utils.isTablet(getContext())) { + // Make the dialog smaller on large screen devices + d.getWindow().setLayout(width, LayoutParams.WRAP_CONTENT); + }*/ + } + + private void showTestDialog(int color, int speedOn, int speedOff) { + final Context context = getContext(); + + if (mReceiver != null) { + context.getApplicationContext().unregisterReceiver(mReceiver); + } + if (mTestDialog != null) { + mTestDialog.dismiss(); + } + + mReceiver = new ScreenReceiver(color, speedOn, speedOff); + + IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_OFF); + filter.addAction(Intent.ACTION_SCREEN_ON); + context.getApplicationContext().registerReceiver(mReceiver, filter); + + mTestDialog = new AlertDialog.Builder(context) + .setTitle(R.string.dialog_test) + .setMessage(R.string.dialog_test_message) + .setPositiveButton(R.string.dialog_test_button, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + if (mReceiver != null) { + context.getApplicationContext().unregisterReceiver(mReceiver); + mReceiver = null; + } + } + }) + .create(); + + mTestDialog.show(); + } + + /** + * Getters and Setters + */ + + public int getColor() { + return mColorValue; + } + + public void setColor(int color) { + mColorValue = color; + updatePreferenceViews(); + } + + public void setOnValue(int value) { + mOnValue = value; + updatePreferenceViews(); + } + + public int getOnValue() { + return mOnValue; + } + + public void setOffValue(int value) { + mOffValue = value; + updatePreferenceViews(); + } + + public int getOffValue() { + return mOffValue; + } + + public void setAllValues(int color, int onValue, int offValue) { + mColorValue = color; + mOnValue = onValue; + mOffValue = offValue; + mOnOffChangeable = true; + updatePreferenceViews(); + } + + public void setAllValues(int color, int onValue, int offValue, boolean onOffChangeable) { + mColorValue = color; + mOnValue = onValue; + mOffValue = offValue; + mOnOffChangeable = onOffChangeable; + updatePreferenceViews(); + } + + public void setOnOffValue(int onValue, int offValue) { + mOnValue = onValue; + mOffValue = offValue; + updatePreferenceViews(); + } + + public void setOnOffChangeable(boolean value) { + mOnOffChangeable = value; + } + + /** + * Utility methods + */ + public class ScreenReceiver extends BroadcastReceiver { + protected int timeon; + protected int timeoff; + protected int color; + + public ScreenReceiver(int color, int timeon, int timeoff) { + this.timeon = timeon; + this.timeoff = timeoff; + this.color = color; + } + + @Override + public void onReceive(Context context, Intent intent) { + final NotificationManager nm = + (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); + + if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) { + Notification.Builder builder = new Notification.Builder(context); + builder.setAutoCancel(true); + builder.setLights(color, timeon, timeoff); + Notification n = builder.getNotification(); + n.flags |= Notification.FLAG_SHOW_LIGHTS; + nm.notify(1, n); + } else if(intent.getAction().equals(Intent.ACTION_SCREEN_ON)) { + nm.cancel(1); + context.getApplicationContext().unregisterReceiver(mReceiver); + mReceiver = null; + mTestDialog.dismiss(); + mTestDialog = null; + } + } + } + + private static ShapeDrawable createRectShape(int width, int height, int color) { + ShapeDrawable shape = new ShapeDrawable(new RectShape()); + shape.setIntrinsicHeight(height); + shape.setIntrinsicWidth(width); + shape.getPaint().setColor(color); + return shape; + } + + private String mapLengthValue(Integer time) { + if (time == DEFAULT_TIME) { + return getContext().getString(R.string.default_time); + } + + String[] timeNames = mResources.getStringArray(R.array.notification_pulse_length_entries); + String[] timeValues = mResources.getStringArray(R.array.notification_pulse_length_values); + + for (int i = 0; i < timeValues.length; i++) { + if (Integer.decode(timeValues[i]).equals(time)) { + return timeNames[i]; + } + } + + return getContext().getString(R.string.custom_time); + } + + private String mapSpeedValue(Integer time) { + if (time == DEFAULT_TIME) { + return getContext().getString(R.string.default_time); + } + + String[] timeNames = mResources.getStringArray(R.array.notification_pulse_speed_entries); + String[] timeValues = mResources.getStringArray(R.array.notification_pulse_speed_values); + + for (int i = 0; i < timeValues.length; i++) { + if (Integer.decode(timeValues[i]).equals(time)) { + return timeNames[i]; + } + } + + return getContext().getString(R.string.custom_time); + } + +} diff --git a/src/com/android/settings/notificationlight/BatteryLightSettings.java b/src/com/android/settings/notificationlight/BatteryLightSettings.java new file mode 100644 index 0000000..a8fd5bd --- /dev/null +++ b/src/com/android/settings/notificationlight/BatteryLightSettings.java @@ -0,0 +1,216 @@ +/* + * Copyright (C) 2012 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.android.settings.notificationlight; + +import android.content.ContentResolver; +import android.content.res.Resources; +import android.os.Bundle; +import android.preference.CheckBoxPreference; +import android.preference.Preference; +import android.preference.PreferenceGroup; +import android.preference.PreferenceScreen; +import android.provider.Settings; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; + +import com.android.settings.R; +import com.android.settings.SettingsPreferenceFragment; + +public class BatteryLightSettings extends SettingsPreferenceFragment implements + Preference.OnPreferenceChangeListener { + private static final String TAG = "BatteryLightSettings"; + + private static final String ENABLED_PREF = "battery_light"; + private static final String PULSE_PREF = "battery_low_pulse"; + private static final String LOW_COLOR_PREF = "low_color"; + private static final String MEDIUM_COLOR_PREF = "medium_color"; + private static final String FULL_COLOR_PREF = "full_color"; + + private boolean mLightEnabled; + private boolean mLightPulse; + private boolean mMultiColorLed; + private CheckBoxPreference mPulsePref; + private ApplicationLightPreference mLowColorPref; + private ApplicationLightPreference mMediumColorPref; + private ApplicationLightPreference mFullColorPref; + private static final int MENU_RESET = Menu.FIRST; + private Menu mOptionsMenu; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + addPreferencesFromResource(R.xml.battery_light_settings); + + // Retrieve general settings + ContentResolver resolver = getContentResolver(); + mLightEnabled = Settings.System.getInt(resolver, + Settings.System.BATTERY_LIGHT_ENABLED, 1) == 1; + mLightPulse = Settings.System.getInt(resolver, + Settings.System.BATTERY_LIGHT_PULSE, 1) == 1; + + // Does the Device support changing battery LED colors? + mMultiColorLed = getResources().getBoolean(com.android.internal.R.bool.config_multiColorBatteryLed); + + if(mMultiColorLed) { + // Only used when the colors are changeable + setHasOptionsMenu(true); + } + } + + @Override + public void onResume() { + super.onResume(); + refreshDefault(); + } + + private void refreshDefault() { + ContentResolver resolver = getContentResolver(); + int lowColor = Settings.System.getInt(resolver, + Settings.System.BATTERY_LIGHT_LOW_COLOR, + getResources().getInteger(com.android.internal.R.integer.config_notificationsBatteryLowARGB)); + int mediumColor = Settings.System.getInt(resolver, + Settings.System.BATTERY_LIGHT_MEDIUM_COLOR, + getResources().getInteger(com.android.internal.R.integer.config_notificationsBatteryMediumARGB)); + int fullColor = Settings.System.getInt(resolver, + Settings.System.BATTERY_LIGHT_FULL_COLOR, + getResources().getInteger(com.android.internal.R.integer.config_notificationsBatteryFullARGB)); + + PreferenceScreen prefSet = getPreferenceScreen(); + PreferenceGroup generalPrefs = (PreferenceGroup) prefSet.findPreference("general_section"); + if (generalPrefs != null) { + + // Enabled preference + CheckBoxPreference cPref = (CheckBoxPreference) prefSet.findPreference(ENABLED_PREF); + cPref.setChecked(mLightEnabled); + cPref.setOnPreferenceChangeListener(this); + + // Custom enabled preference + mPulsePref = (CheckBoxPreference) prefSet.findPreference(PULSE_PREF); + mPulsePref.setChecked(mLightPulse); + mPulsePref.setEnabled(mLightEnabled); + mPulsePref.setOnPreferenceChangeListener(this); + } + + PreferenceGroup colorPrefs = (PreferenceGroup) prefSet.findPreference("colors_list"); + if (colorPrefs != null) { + if (!mMultiColorLed) { + prefSet.removePreference(colorPrefs); + } else { + // Low, Medium and full color preferences + mLowColorPref = (ApplicationLightPreference) prefSet.findPreference(LOW_COLOR_PREF); + mLowColorPref.setAllValues(lowColor, 0, 0, false); + mLowColorPref.setEnabled(mLightEnabled); + mLowColorPref.setOnPreferenceChangeListener(this); + + mMediumColorPref = (ApplicationLightPreference) prefSet.findPreference(MEDIUM_COLOR_PREF); + mMediumColorPref.setAllValues(mediumColor, 0, 0, false); + mMediumColorPref.setEnabled(mLightEnabled); + mMediumColorPref.setOnPreferenceChangeListener(this); + + mFullColorPref = (ApplicationLightPreference) prefSet.findPreference(FULL_COLOR_PREF); + mFullColorPref.setAllValues(fullColor, 0, 0, false); + mFullColorPref.setEnabled(mLightEnabled); + mFullColorPref.setOnPreferenceChangeListener(this); + } + } + } + + /** + * Updates the default or application specific notification settings. + * + * @param key of the specific setting to update + * @param color + */ + protected void updateValues(String key, Integer color) { + ContentResolver resolver = getContentResolver(); + + if (key.equals(LOW_COLOR_PREF)) { + Settings.System.putInt(resolver, Settings.System.BATTERY_LIGHT_LOW_COLOR, color); + refreshDefault(); + return; + } else if (key.equals(MEDIUM_COLOR_PREF)) { + Settings.System.putInt(resolver, Settings.System.BATTERY_LIGHT_MEDIUM_COLOR, color); + refreshDefault(); + return; + } else if (key.equals(FULL_COLOR_PREF)) { + Settings.System.putInt(resolver, Settings.System.BATTERY_LIGHT_FULL_COLOR, color); + refreshDefault(); + return; + } + } + + @Override + public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { + mOptionsMenu = menu; + + mOptionsMenu.add(0, MENU_RESET, 0, R.string.profile_reset_title) + .setIcon(R.drawable.ic_settings_backup) // use the backup icon + .setAlphabeticShortcut('r') + .setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case MENU_RESET: + resetColors(); + return true; + } + return false; + } + + + protected void resetColors() { + ContentResolver resolver = getContentResolver(); + Resources res = getResources(); + + // Reset to the framework default colors + Settings.System.putInt(resolver, Settings.System.BATTERY_LIGHT_LOW_COLOR, + res.getInteger(com.android.internal.R.integer.config_notificationsBatteryLowARGB)); + Settings.System.putInt(resolver, Settings.System.BATTERY_LIGHT_MEDIUM_COLOR, + res.getInteger(com.android.internal.R.integer.config_notificationsBatteryMediumARGB)); + Settings.System.putInt(resolver, Settings.System.BATTERY_LIGHT_FULL_COLOR, + res.getInteger(com.android.internal.R.integer.config_notificationsBatteryFullARGB)); + refreshDefault(); + } + + public boolean onPreferenceChange(Preference preference, Object objValue) { + String key = preference.getKey(); + + if (ENABLED_PREF.equals(key)) { + mLightEnabled = (Boolean) objValue; + Settings.System.putInt(getContentResolver(), Settings.System.BATTERY_LIGHT_ENABLED, + mLightEnabled ? 1 : 0); + + mPulsePref.setEnabled(mLightEnabled); + if(mMultiColorLed) { + mLowColorPref.setEnabled(mLightEnabled); + mMediumColorPref.setEnabled(mLightEnabled); + mFullColorPref.setEnabled(mLightEnabled); + } + } else if (PULSE_PREF.equals(key)) { + mLightPulse = (Boolean) objValue; + Settings.System.putInt(getContentResolver(), Settings.System.BATTERY_LIGHT_PULSE, + mLightPulse ? 1 : 0); + } else { + ApplicationLightPreference tPref = (ApplicationLightPreference) preference; + updateValues(key, tPref.getColor()); + } + return true; + } +} diff --git a/src/com/android/settings/notificationlight/ColorPanelView.java b/src/com/android/settings/notificationlight/ColorPanelView.java new file mode 100644 index 0000000..a464484 --- /dev/null +++ b/src/com/android/settings/notificationlight/ColorPanelView.java @@ -0,0 +1,171 @@ +/* + * Copyright (C) 2010 Daniel Nilsson + * Copyright (C) 2012 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.android.settings.notificationlight; + +import android.content.Context; +import android.graphics.Canvas; +import android.graphics.Paint; +import android.graphics.RectF; +import android.util.AttributeSet; +import android.view.View; + +/** + * This class draws a panel which which will be filled with a color which can be + * set. It can be used to show the currently selected color which you will get + * from the {@link ColorPickerView}. + * + * @author Daniel Nilsson + */ +public class ColorPanelView extends View { + + /** + * The width in pixels of the border surrounding the color panel. + */ + private final static float BORDER_WIDTH_PX = 1; + + private static float mDensity = 1f; + + private int mBorderColor = 0xff6E6E6E; + private int mColor = 0xff000000; + + private Paint mBorderPaint; + private Paint mColorPaint; + + private RectF mDrawingRect; + private RectF mColorRect; + + private AlphaPatternDrawable mAlphaPattern; + + public ColorPanelView(Context context) { + this(context, null); + } + + public ColorPanelView(Context context, AttributeSet attrs) { + this(context, attrs, 0); + } + + public ColorPanelView(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + + init(); + } + + private void init() { + mBorderPaint = new Paint(); + mColorPaint = new Paint(); + mDensity = getContext().getResources().getDisplayMetrics().density; + } + + @Override + protected void onDraw(Canvas canvas) { + + final RectF rect = mColorRect; + + if (BORDER_WIDTH_PX > 0) { + mBorderPaint.setColor(mBorderColor); + canvas.drawRect(mDrawingRect, mBorderPaint); + } + + if (mAlphaPattern != null) { + mAlphaPattern.draw(canvas); + } + + mColorPaint.setColor(mColor); + + canvas.drawRect(rect, mColorPaint); + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + + int width = MeasureSpec.getSize(widthMeasureSpec); + int height = MeasureSpec.getSize(heightMeasureSpec); + + setMeasuredDimension(width, height); + } + + @Override + protected void onSizeChanged(int w, int h, int oldw, int oldh) { + super.onSizeChanged(w, h, oldw, oldh); + + mDrawingRect = new RectF(); + mDrawingRect.left = getPaddingLeft(); + mDrawingRect.right = w - getPaddingRight(); + mDrawingRect.top = getPaddingTop(); + mDrawingRect.bottom = h - getPaddingBottom(); + + setUpColorRect(); + + } + + private void setUpColorRect() { + final RectF dRect = mDrawingRect; + + float left = dRect.left + BORDER_WIDTH_PX; + float top = dRect.top + BORDER_WIDTH_PX; + float bottom = dRect.bottom - BORDER_WIDTH_PX; + float right = dRect.right - BORDER_WIDTH_PX; + + mColorRect = new RectF(left, top, right, bottom); + + mAlphaPattern = new AlphaPatternDrawable((int) (5 * mDensity)); + + mAlphaPattern.setBounds(Math.round(mColorRect.left), + Math.round(mColorRect.top), + Math.round(mColorRect.right), + Math.round(mColorRect.bottom)); + + } + + /** + * Set the color that should be shown by this view. + * + * @param color + */ + public void setColor(int color) { + mColor = color; + invalidate(); + } + + /** + * Get the color currently show by this view. + * + * @return + */ + public int getColor() { + return mColor; + } + + /** + * Set the color of the border surrounding the panel. + * + * @param color + */ + public void setBorderColor(int color) { + mBorderColor = color; + invalidate(); + } + + /** + * Get the color of the border surrounding the panel. + */ + public int getBorderColor() { + return mBorderColor; + } + +} diff --git a/src/com/android/settings/notificationlight/ColorPickerView.java b/src/com/android/settings/notificationlight/ColorPickerView.java new file mode 100644 index 0000000..817e397 --- /dev/null +++ b/src/com/android/settings/notificationlight/ColorPickerView.java @@ -0,0 +1,835 @@ +/* + * Copyright (C) 2010 Daniel Nilsson + * Copyright (C) 2012 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.android.settings.notificationlight; + +import android.content.Context; +import android.graphics.Canvas; +import android.graphics.Color; +import android.graphics.ComposeShader; +import android.graphics.LinearGradient; +import android.graphics.Paint; +import android.graphics.Point; +import android.graphics.PorterDuff.Mode; +import android.graphics.RectF; +import android.graphics.Shader; +import android.graphics.Paint.Align; +import android.graphics.Paint.Style; +import android.graphics.Shader.TileMode; +import android.os.Build; +import android.util.AttributeSet; +import android.view.MotionEvent; +import android.view.View; + +/** + * Displays a color picker to the user and allow them to select a color. A + * slider for the alpha channel is also available. Enable it by setting + * setAlphaSliderVisible(boolean) to true. + * + * @author Daniel Nilsson + */ +public class ColorPickerView extends View { + + public interface OnColorChangedListener { + public void onColorChanged(int color); + } + + private final static int PANEL_SAT_VAL = 0; + private final static int PANEL_HUE = 1; + private final static int PANEL_ALPHA = 2; + + /** + * The width in pixels of the border surrounding all color panels. + */ + private final static float BORDER_WIDTH_PX = 1; + + /** + * The width in dp of the hue panel. + */ + private float HUE_PANEL_WIDTH = 30f; + /** + * The height in dp of the alpha panel + */ + private float ALPHA_PANEL_HEIGHT = 20f; + /** + * The distance in dp between the different color panels. + */ + private float PANEL_SPACING = 10f; + /** + * The radius in dp of the color palette tracker circle. + */ + private float PALETTE_CIRCLE_TRACKER_RADIUS = 5f; + /** + * The dp which the tracker of the hue or alpha panel will extend outside of + * its bounds. + */ + private float RECTANGLE_TRACKER_OFFSET = 2f; + + private static float mDensity = 1f; + + private OnColorChangedListener mListener; + + private Paint mSatValPaint; + private Paint mSatValTrackerPaint; + + private Paint mHuePaint; + private Paint mHueTrackerPaint; + + private Paint mAlphaPaint; + private Paint mAlphaTextPaint; + + private Paint mBorderPaint; + + private Shader mValShader; + private Shader mSatShader; + private Shader mHueShader; + private Shader mAlphaShader; + + private int mAlpha = 0xff; + private float mHue = 360f; + private float mSat = 0f; + private float mVal = 0f; + + private String mAlphaSliderText = "Alpha"; + private int mSliderTrackerColor = 0xff1c1c1c; + private int mBorderColor = 0xff6E6E6E; + private boolean mShowAlphaPanel = false; + + /* + * To remember which panel that has the "focus" when processing hardware + * button data. + */ + private int mLastTouchedPanel = PANEL_SAT_VAL; + + /** + * Offset from the edge we must have or else the finger tracker will get + * clipped when it is drawn outside of the view. + */ + private float mDrawingOffset; + + /* + * Distance form the edges of the view of where we are allowed to draw. + */ + private RectF mDrawingRect; + + private RectF mSatValRect; + private RectF mHueRect; + private RectF mAlphaRect; + + private AlphaPatternDrawable mAlphaPattern; + + private Point mStartTouchPoint = null; + + public ColorPickerView(Context context) { + this(context, null); + } + + public ColorPickerView(Context context, AttributeSet attrs) { + this(context, attrs, 0); + } + + public ColorPickerView(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + init(); + } + + private void init() { + mDensity = getContext().getResources().getDisplayMetrics().density; + PALETTE_CIRCLE_TRACKER_RADIUS *= mDensity; + RECTANGLE_TRACKER_OFFSET *= mDensity; + HUE_PANEL_WIDTH *= mDensity; + ALPHA_PANEL_HEIGHT *= mDensity; + PANEL_SPACING = PANEL_SPACING * mDensity; + + mDrawingOffset = calculateRequiredOffset(); + initPaintTools(); + + // Needed for receiving track ball motion events. + setFocusable(true); + setFocusableInTouchMode(true); + } + + private void initPaintTools() { + mSatValPaint = new Paint(); + mSatValTrackerPaint = new Paint(); + mHuePaint = new Paint(); + mHueTrackerPaint = new Paint(); + mAlphaPaint = new Paint(); + mAlphaTextPaint = new Paint(); + mBorderPaint = new Paint(); + + mSatValTrackerPaint.setStyle(Style.STROKE); + mSatValTrackerPaint.setStrokeWidth(2f * mDensity); + mSatValTrackerPaint.setAntiAlias(true); + + mHueTrackerPaint.setColor(mSliderTrackerColor); + mHueTrackerPaint.setStyle(Style.STROKE); + mHueTrackerPaint.setStrokeWidth(2f * mDensity); + mHueTrackerPaint.setAntiAlias(true); + + mAlphaTextPaint.setColor(0xff1c1c1c); + mAlphaTextPaint.setTextSize(14f * mDensity); + mAlphaTextPaint.setAntiAlias(true); + mAlphaTextPaint.setTextAlign(Align.CENTER); + mAlphaTextPaint.setFakeBoldText(true); + } + + private float calculateRequiredOffset() { + float offset = Math.max(PALETTE_CIRCLE_TRACKER_RADIUS, RECTANGLE_TRACKER_OFFSET); + offset = Math.max(offset, BORDER_WIDTH_PX * mDensity); + + return offset * 1.5f; + } + + private int[] buildHueColorArray() { + int[] hue = new int[361]; + + int count = 0; + for (int i = hue.length - 1; i >= 0; i--, count++) { + hue[count] = Color.HSVToColor(new float[] { + i, 1f, 1f + }); + } + return hue; + } + + @Override + protected void onDraw(Canvas canvas) { + if (mDrawingRect.width() <= 0 || mDrawingRect.height() <= 0) { + return; + } + drawSatValPanel(canvas); + drawHuePanel(canvas); + drawAlphaPanel(canvas); + } + + private void drawSatValPanel(Canvas canvas) { + final RectF rect = mSatValRect; + int rgb = Color.HSVToColor(new float[] { + mHue, 1f, 1f + }); + + if (BORDER_WIDTH_PX > 0) { + mBorderPaint.setColor(mBorderColor); + canvas.drawRect(mDrawingRect.left, mDrawingRect.top, rect.right + BORDER_WIDTH_PX, + rect.bottom + BORDER_WIDTH_PX, mBorderPaint); + } + + // On Honeycomb+ we need to use software rendering to create the shader properly + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { + setLayerType(View.LAYER_TYPE_SOFTWARE, null); + } + + // Get the overlaying gradients ready and create the ComposeShader + if (mValShader == null) { + mValShader = new LinearGradient(rect.left, rect.top, rect.left, rect.bottom, + 0xffffffff, 0xff000000, TileMode.CLAMP); + } + mSatShader = new LinearGradient(rect.left, rect.top, rect.right, rect.top, + 0xffffffff, rgb, TileMode.CLAMP); + ComposeShader mShader = new ComposeShader(mValShader, mSatShader, Mode.MULTIPLY); + mSatValPaint.setShader(mShader); + canvas.drawRect(rect, mSatValPaint); + + Point p = satValToPoint(mSat, mVal); + mSatValTrackerPaint.setColor(0xff000000); + canvas.drawCircle(p.x, p.y, PALETTE_CIRCLE_TRACKER_RADIUS - 1f * mDensity, + mSatValTrackerPaint); + + mSatValTrackerPaint.setColor(0xffdddddd); + canvas.drawCircle(p.x, p.y, PALETTE_CIRCLE_TRACKER_RADIUS, mSatValTrackerPaint); + } + + private void drawHuePanel(Canvas canvas) { + final RectF rect = mHueRect; + + if (BORDER_WIDTH_PX > 0) { + mBorderPaint.setColor(mBorderColor); + canvas.drawRect(rect.left - BORDER_WIDTH_PX, + rect.top - BORDER_WIDTH_PX, + rect.right + BORDER_WIDTH_PX, + rect.bottom + BORDER_WIDTH_PX, + mBorderPaint); + } + + if (mHueShader == null) { + mHueShader = new LinearGradient(rect.left, rect.top, rect.left, rect.bottom, + buildHueColorArray(), null, TileMode.CLAMP); + mHuePaint.setShader(mHueShader); + } + + canvas.drawRect(rect, mHuePaint); + + float rectHeight = 4 * mDensity / 2; + + Point p = hueToPoint(mHue); + + RectF r = new RectF(); + r.left = rect.left - RECTANGLE_TRACKER_OFFSET; + r.right = rect.right + RECTANGLE_TRACKER_OFFSET; + r.top = p.y - rectHeight; + r.bottom = p.y + rectHeight; + + canvas.drawRoundRect(r, 2, 2, mHueTrackerPaint); + + } + + private void drawAlphaPanel(Canvas canvas) { + if (!mShowAlphaPanel || mAlphaRect == null || mAlphaPattern == null) { + return; + } + + final RectF rect = mAlphaRect; + + if (BORDER_WIDTH_PX > 0) { + mBorderPaint.setColor(mBorderColor); + canvas.drawRect(rect.left - BORDER_WIDTH_PX, + rect.top - BORDER_WIDTH_PX, + rect.right + BORDER_WIDTH_PX, + rect.bottom + BORDER_WIDTH_PX, + mBorderPaint); + } + + mAlphaPattern.draw(canvas); + + float[] hsv = new float[] { + mHue, mSat, mVal + }; + int color = Color.HSVToColor(hsv); + int acolor = Color.HSVToColor(0, hsv); + + mAlphaShader = new LinearGradient(rect.left, rect.top, rect.right, rect.top, + color, acolor, TileMode.CLAMP); + + mAlphaPaint.setShader(mAlphaShader); + + canvas.drawRect(rect, mAlphaPaint); + + if (mAlphaSliderText != null && mAlphaSliderText != "") { + canvas.drawText(mAlphaSliderText, rect.centerX(), rect.centerY() + 4 * mDensity, + mAlphaTextPaint); + } + + float rectWidth = 4 * mDensity / 2; + Point p = alphaToPoint(mAlpha); + + RectF r = new RectF(); + r.left = p.x - rectWidth; + r.right = p.x + rectWidth; + r.top = rect.top - RECTANGLE_TRACKER_OFFSET; + r.bottom = rect.bottom + RECTANGLE_TRACKER_OFFSET; + + canvas.drawRoundRect(r, 2, 2, mHueTrackerPaint); + } + + private Point hueToPoint(float hue) { + final RectF rect = mHueRect; + final float height = rect.height(); + + Point p = new Point(); + p.y = (int) (height - (hue * height / 360f) + rect.top); + p.x = (int) rect.left; + return p; + } + + private Point satValToPoint(float sat, float val) { + + final RectF rect = mSatValRect; + final float height = rect.height(); + final float width = rect.width(); + + Point p = new Point(); + + p.x = (int) (sat * width + rect.left); + p.y = (int) ((1f - val) * height + rect.top); + + return p; + } + + private Point alphaToPoint(int alpha) { + final RectF rect = mAlphaRect; + final float width = rect.width(); + + Point p = new Point(); + p.x = (int) (width - (alpha * width / 0xff) + rect.left); + p.y = (int) rect.top; + return p; + } + + private float[] pointToSatVal(float x, float y) { + final RectF rect = mSatValRect; + float[] result = new float[2]; + float width = rect.width(); + float height = rect.height(); + + if (x < rect.left) { + x = 0f; + } else if (x > rect.right) { + x = width; + } else { + x = x - rect.left; + } + + if (y < rect.top) { + y = 0f; + } else if (y > rect.bottom) { + y = height; + } else { + y = y - rect.top; + } + + result[0] = 1.f / width * x; + result[1] = 1.f - (1.f / height * y); + return result; + } + + private float pointToHue(float y) { + final RectF rect = mHueRect; + float height = rect.height(); + + if (y < rect.top) { + y = 0f; + } else if (y > rect.bottom) { + y = height; + } else { + y = y - rect.top; + } + return 360f - (y * 360f / height); + } + + private int pointToAlpha(int x) { + final RectF rect = mAlphaRect; + final int width = (int) rect.width(); + + if (x < rect.left) { + x = 0; + } else if (x > rect.right) { + x = width; + } else { + x = x - (int) rect.left; + } + return 0xff - (x * 0xff / width); + } + + @Override + public boolean onTrackballEvent(MotionEvent event) { + float x = event.getX(); + float y = event.getY(); + boolean update = false; + + if (event.getAction() == MotionEvent.ACTION_MOVE) { + switch (mLastTouchedPanel) { + case PANEL_SAT_VAL: + float sat, + val; + sat = mSat + x / 50f; + val = mVal - y / 50f; + if (sat < 0f) { + sat = 0f; + } else if (sat > 1f) { + sat = 1f; + } + + if (val < 0f) { + val = 0f; + } else if (val > 1f) { + val = 1f; + } + mSat = sat; + mVal = val; + update = true; + break; + case PANEL_HUE: + float hue = mHue - y * 10f; + if (hue < 0f) { + hue = 0f; + } else if (hue > 360f) { + hue = 360f; + } + mHue = hue; + update = true; + break; + case PANEL_ALPHA: + if (!mShowAlphaPanel || mAlphaRect == null) { + update = false; + } else { + int alpha = (int) (mAlpha - x * 10); + if (alpha < 0) { + alpha = 0; + } else if (alpha > 0xff) { + alpha = 0xff; + } + mAlpha = alpha; + update = true; + } + break; + } + } + + if (update) { + if (mListener != null) { + mListener.onColorChanged(Color.HSVToColor(mAlpha, new float[] { + mHue, mSat, mVal + })); + } + invalidate(); + return true; + } + return super.onTrackballEvent(event); + } + + @Override + public boolean onTouchEvent(MotionEvent event) { + boolean update = false; + + switch (event.getAction()) { + case MotionEvent.ACTION_DOWN: + mStartTouchPoint = new Point((int) event.getX(), (int) event.getY()); + update = moveTrackersIfNeeded(event); + break; + case MotionEvent.ACTION_MOVE: + update = moveTrackersIfNeeded(event); + break; + case MotionEvent.ACTION_UP: + mStartTouchPoint = null; + update = moveTrackersIfNeeded(event); + break; + } + + if (update) { + if (mListener != null) { + mListener.onColorChanged(Color.HSVToColor(mAlpha, new float[] { + mHue, mSat, mVal + })); + } + invalidate(); + return true; + } + + return super.onTouchEvent(event); + } + + private boolean moveTrackersIfNeeded(MotionEvent event) { + + if (mStartTouchPoint == null) + return false; + + boolean update = false; + int startX = mStartTouchPoint.x; + int startY = mStartTouchPoint.y; + + if (mHueRect.contains(startX, startY)) { + mLastTouchedPanel = PANEL_HUE; + mHue = pointToHue(event.getY()); + update = true; + } else if (mSatValRect.contains(startX, startY)) { + mLastTouchedPanel = PANEL_SAT_VAL; + float[] result = pointToSatVal(event.getX(), event.getY()); + mSat = result[0]; + mVal = result[1]; + update = true; + } else if (mAlphaRect != null && mAlphaRect.contains(startX, startY)) { + mLastTouchedPanel = PANEL_ALPHA; + mAlpha = pointToAlpha((int) event.getX()); + update = true; + } + + return update; + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + int width = 0; + int height = 0; + + int widthMode = MeasureSpec.getMode(widthMeasureSpec); + int heightMode = MeasureSpec.getMode(heightMeasureSpec); + + int widthAllowed = MeasureSpec.getSize(widthMeasureSpec); + int heightAllowed = MeasureSpec.getSize(heightMeasureSpec); + + widthAllowed = chooseWidth(widthMode, widthAllowed); + heightAllowed = chooseHeight(heightMode, heightAllowed); + + if (!mShowAlphaPanel) { + height = (int) (widthAllowed - PANEL_SPACING - HUE_PANEL_WIDTH); + + // If calculated height (based on the width) is more than the + // allowed height. + if (height > heightAllowed) { + height = heightAllowed; + width = (int) (height + PANEL_SPACING + HUE_PANEL_WIDTH); + } else { + width = widthAllowed; + } + } else { + + width = (int) (heightAllowed - ALPHA_PANEL_HEIGHT + HUE_PANEL_WIDTH); + + if (width > widthAllowed) { + width = widthAllowed; + height = (int) (widthAllowed - HUE_PANEL_WIDTH + ALPHA_PANEL_HEIGHT); + } else { + height = heightAllowed; + } + } + setMeasuredDimension(width, height); + } + + private int chooseWidth(int mode, int size) { + if (mode == MeasureSpec.AT_MOST || mode == MeasureSpec.EXACTLY) { + return size; + } else { // (mode == MeasureSpec.UNSPECIFIED) + return getPrefferedWidth(); + } + } + + private int chooseHeight(int mode, int size) { + if (mode == MeasureSpec.AT_MOST || mode == MeasureSpec.EXACTLY) { + return size; + } else { // (mode == MeasureSpec.UNSPECIFIED) + return getPrefferedHeight(); + } + } + + private int getPrefferedWidth() { + int width = getPrefferedHeight(); + if (mShowAlphaPanel) { + width -= (PANEL_SPACING + ALPHA_PANEL_HEIGHT); + } + return (int) (width + HUE_PANEL_WIDTH + PANEL_SPACING); + } + + private int getPrefferedHeight() { + int height = (int) (200 * mDensity); + if (mShowAlphaPanel) { + height += PANEL_SPACING + ALPHA_PANEL_HEIGHT; + } + return height; + } + + @Override + protected void onSizeChanged(int w, int h, int oldw, int oldh) { + super.onSizeChanged(w, h, oldw, oldh); + + mDrawingRect = new RectF(); + mDrawingRect.left = mDrawingOffset + getPaddingLeft(); + mDrawingRect.right = w - mDrawingOffset - getPaddingRight(); + mDrawingRect.top = mDrawingOffset + getPaddingTop(); + mDrawingRect.bottom = h - mDrawingOffset - getPaddingBottom(); + + setUpSatValRect(); + setUpHueRect(); + setUpAlphaRect(); + } + + private void setUpSatValRect() { + final RectF dRect = mDrawingRect; + float panelSide = dRect.height() - BORDER_WIDTH_PX * 2; + + if (mShowAlphaPanel) { + panelSide -= PANEL_SPACING + ALPHA_PANEL_HEIGHT; + } + + float left = dRect.left + BORDER_WIDTH_PX; + float top = dRect.top + BORDER_WIDTH_PX; + float bottom = top + panelSide; + float right = left + panelSide; + mSatValRect = new RectF(left, top, right, bottom); + } + + private void setUpHueRect() { + final RectF dRect = mDrawingRect; + + float left = dRect.right - HUE_PANEL_WIDTH + BORDER_WIDTH_PX; + float top = dRect.top + BORDER_WIDTH_PX; + float bottom = dRect.bottom - BORDER_WIDTH_PX + - (mShowAlphaPanel ? (PANEL_SPACING + ALPHA_PANEL_HEIGHT) : 0); + float right = dRect.right - BORDER_WIDTH_PX; + + mHueRect = new RectF(left, top, right, bottom); + } + + private void setUpAlphaRect() { + if (!mShowAlphaPanel) { + return; + } + + final RectF dRect = mDrawingRect; + float left = dRect.left + BORDER_WIDTH_PX; + float top = dRect.bottom - ALPHA_PANEL_HEIGHT + BORDER_WIDTH_PX; + float bottom = dRect.bottom - BORDER_WIDTH_PX; + float right = dRect.right - BORDER_WIDTH_PX; + + mAlphaRect = new RectF(left, top, right, bottom); + mAlphaPattern = new AlphaPatternDrawable((int) (5 * mDensity)); + mAlphaPattern.setBounds(Math.round(mAlphaRect.left), Math + .round(mAlphaRect.top), Math.round(mAlphaRect.right), Math + .round(mAlphaRect.bottom)); + } + + /** + * Set a OnColorChangedListener to get notified when the color selected by + * the user has changed. + * + * @param listener + */ + public void setOnColorChangedListener(OnColorChangedListener listener) { + mListener = listener; + } + + /** + * Set the color of the border surrounding all panels. + * + * @param color + */ + public void setBorderColor(int color) { + mBorderColor = color; + invalidate(); + } + + /** + * Get the color of the border surrounding all panels. + */ + public int getBorderColor() { + return mBorderColor; + } + + /** + * Get the current color this view is showing. + * + * @return the current color. + */ + public int getColor() { + return Color.HSVToColor(mAlpha, new float[] { + mHue, mSat, mVal + }); + } + + /** + * Set the color the view should show. + * + * @param color The color that should be selected. + */ + public void setColor(int color) { + setColor(color, false); + } + + /** + * Set the color this view should show. + * + * @param color The color that should be selected. + * @param callback If you want to get a callback to your + * OnColorChangedListener. + */ + public void setColor(int color, boolean callback) { + int alpha = Color.alpha(color); + int red = Color.red(color); + int blue = Color.blue(color); + int green = Color.green(color); + float[] hsv = new float[3]; + + Color.RGBToHSV(red, green, blue, hsv); + mAlpha = alpha; + mHue = hsv[0]; + mSat = hsv[1]; + mVal = hsv[2]; + + if (callback && mListener != null) { + mListener.onColorChanged(Color.HSVToColor(mAlpha, new float[] { + mHue, mSat, mVal + })); + } + invalidate(); + } + + /** + * Get the drawing offset of the color picker view. The drawing offset is + * the distance from the side of a panel to the side of the view minus the + * padding. Useful if you want to have your own panel below showing the + * currently selected color and want to align it perfectly. + * + * @return The offset in pixels. + */ + public float getDrawingOffset() { + return mDrawingOffset; + } + + /** + * Set if the user is allowed to adjust the alpha panel. Default is false. + * If it is set to false no alpha will be set. + * + * @param visible + */ + public void setAlphaSliderVisible(boolean visible) { + if (mShowAlphaPanel != visible) { + mShowAlphaPanel = visible; + + /* + * Reset all shader to force a recreation. Otherwise they will not + * look right after the size of the view has changed. + */ + mValShader = null; + mSatShader = null; + mHueShader = null; + mAlphaShader = null; + requestLayout(); + } + + } + + public void setSliderTrackerColor(int color) { + mSliderTrackerColor = color; + mHueTrackerPaint.setColor(mSliderTrackerColor); + invalidate(); + } + + public int getSliderTrackerColor() { + return mSliderTrackerColor; + } + + /** + * Set the text that should be shown in the alpha slider. Set to null to + * disable text. + * + * @param res string resource id. + */ + public void setAlphaSliderText(int res) { + String text = getContext().getString(res); + setAlphaSliderText(text); + } + + /** + * Set the text that should be shown in the alpha slider. Set to null to + * disable text. + * + * @param text Text that should be shown. + */ + public void setAlphaSliderText(String text) { + mAlphaSliderText = text; + invalidate(); + } + + /** + * Get the current value of the text that will be shown in the alpha slider. + * + * @return + */ + public String getAlphaSliderText() { + return mAlphaSliderText; + } +} diff --git a/src/com/android/settings/notificationlight/LightSettingsDialog.java b/src/com/android/settings/notificationlight/LightSettingsDialog.java new file mode 100644 index 0000000..1aa46c5 --- /dev/null +++ b/src/com/android/settings/notificationlight/LightSettingsDialog.java @@ -0,0 +1,251 @@ +/* + * Copyright (C) 2010 Daniel Nilsson + * Copyright (C) 2012 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.android.settings.notificationlight; + +import java.util.ArrayList; + +import android.app.AlertDialog; +import android.content.Context; +import android.graphics.PixelFormat; +import android.util.Pair; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.AdapterView; +import android.widget.BaseAdapter; +import android.widget.LinearLayout; +import android.widget.Spinner; +import android.widget.SpinnerAdapter; +import android.widget.TextView; + +import com.android.settings.R; +import com.android.settings.notificationlight.ColorPickerView.OnColorChangedListener; + +public class LightSettingsDialog extends AlertDialog implements + ColorPickerView.OnColorChangedListener { + + private ColorPickerView mColorPicker; + + private ColorPanelView mOldColor; + private ColorPanelView mNewColor; + private Spinner mPulseSpeedOn; + private Spinner mPulseSpeedOff; + private LayoutInflater mInflater; + + private OnColorChangedListener mListener; + + /** + * @param context + * @param initialColor + * @param initialSpeedOn + * @param initialSpeedOff + */ + protected LightSettingsDialog(Context context, int initialColor, int initialSpeedOn, + int initialSpeedOff) { + super(context); + + init(initialColor, initialSpeedOn, initialSpeedOff, true); + } + + /** + * @param context + * @param initialColor + * @param initialSpeedOn + * @param initialSpeedOff + * @param onOffChangeable + */ + protected LightSettingsDialog(Context context, int initialColor, int initialSpeedOn, + int initialSpeedOff, boolean onOffChangeable) { + super(context); + + init(initialColor, initialSpeedOn, initialSpeedOff, onOffChangeable); + } + + private void init(int color, int speedOn, int speedOff, boolean onOffChangeable) { + // To fight color banding. + getWindow().setFormat(PixelFormat.RGBA_8888); + setUp(color, speedOn, speedOff, onOffChangeable); + } + + /** + * This function sets up the dialog with the proper values. If the speedOff parameters + * has a -1 value disable both spinners + * + * @param color - the color to set + * @param speedOn - the flash time in ms + * @param speedOff - the flash length in ms + */ + private void setUp(int color, int speedOn, int speedOff, boolean onOffChangeable) { + mInflater = (LayoutInflater) getContext() + .getSystemService(Context.LAYOUT_INFLATER_SERVICE); + View layout = mInflater.inflate(R.layout.dialog_light_settings, null); + + mColorPicker = (ColorPickerView) layout.findViewById(R.id.color_picker_view); + mOldColor = (ColorPanelView) layout.findViewById(R.id.old_color_panel); + mNewColor = (ColorPanelView) layout.findViewById(R.id.new_color_panel); + + ((LinearLayout) mOldColor.getParent()).setPadding(Math + .round(mColorPicker.getDrawingOffset()), 0, Math + .round(mColorPicker.getDrawingOffset()), 0); + + mColorPicker.setOnColorChangedListener(this); + mOldColor.setColor(color); + mColorPicker.setColor(color, true); + + mPulseSpeedOn = (Spinner) layout.findViewById(R.id.on_spinner); + PulseSpeedAdapter pulseSpeedAdapter = new PulseSpeedAdapter( + R.array.notification_pulse_length_entries, + R.array.notification_pulse_length_values, + speedOn); + mPulseSpeedOn.setAdapter(pulseSpeedAdapter); + mPulseSpeedOn.setSelection(pulseSpeedAdapter.getTimePosition(speedOn)); + mPulseSpeedOn.setOnItemSelectedListener(mSelectionListener); + + mPulseSpeedOff = (Spinner) layout.findViewById(R.id.off_spinner); + pulseSpeedAdapter = new PulseSpeedAdapter(R.array.notification_pulse_speed_entries, + R.array.notification_pulse_speed_values, + speedOff); + mPulseSpeedOff.setAdapter(pulseSpeedAdapter); + mPulseSpeedOff.setSelection(pulseSpeedAdapter.getTimePosition(speedOff)); + + mPulseSpeedOn.setEnabled(onOffChangeable); + mPulseSpeedOff.setEnabled((speedOn != 1) && onOffChangeable); + + setView(layout); + setTitle(R.string.edit_light_settings); + } + + private AdapterView.OnItemSelectedListener mSelectionListener = new AdapterView.OnItemSelectedListener() { + + @Override + public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { + mPulseSpeedOff.setEnabled(getPulseSpeedOn() != 1); + } + + @Override + public void onNothingSelected(AdapterView<?> parent) { + } + }; + + @Override + public void onColorChanged(int color) { + mNewColor.setColor(color); + + if (mListener != null) { + mListener.onColorChanged(color); + } + } + + public void setAlphaSliderVisible(boolean visible) { + mColorPicker.setAlphaSliderVisible(visible); + } + + public int getColor() { + return mColorPicker.getColor(); + } + + public int getPulseSpeedOn() { + return ((Pair<String, Integer>) mPulseSpeedOn.getSelectedItem()).second; + } + + public int getPulseSpeedOff() { + // return 0 if 'Always on' is selected + return getPulseSpeedOn() == 1 ? 0 : ((Pair<String, Integer>) mPulseSpeedOff.getSelectedItem()).second; + } + + class PulseSpeedAdapter extends BaseAdapter implements SpinnerAdapter { + private ArrayList<Pair<String, Integer>> times; + + public PulseSpeedAdapter(int timeNamesResource, int timeValuesResource) { + times = new ArrayList<Pair<String, Integer>>(); + + String[] time_names = getContext().getResources().getStringArray(timeNamesResource); + String[] time_values = getContext().getResources().getStringArray(timeValuesResource); + + for(int i = 0; i < time_values.length; ++i) { + times.add(new Pair<String, Integer>(time_names[i], Integer.decode(time_values[i]))); + } + + } + + /** + * This constructor apart from taking a usual time entry array takes the + * currently configured time value which might cause the addition of a + * "Custom" time entry in the spinner in case this time value does not + * match any of the predefined ones in the array. + * + * @param timeNamesResource The time entry names array + * @param timeValuesResource The time entry values array + * @param customTime Current time value that might be one of the + * predefined values or a totally custom value + */ + public PulseSpeedAdapter(int timeNamesResource, int timeValuesResource, Integer customTime) { + this(timeNamesResource, timeValuesResource); + + // Check if we also need to add the custom value entry + if (getTimePosition(customTime) == -1) { + times.add(new Pair<String, Integer>(getContext().getResources() + .getString(R.string.custom_time), customTime)); + } + } + + /** + * Will return the position of the spinner entry with the specified + * time. Returns -1 if there is no such entry. + * + * @param time Time in ms + * @return Position of entry with given time or -1 if not found. + */ + public int getTimePosition(Integer time) { + for (int position = 0; position < getCount(); ++position) { + if (getItem(position).second.equals(time)) { + return position; + } + } + + return -1; + } + + @Override + public int getCount() { + return times.size(); + } + + @Override + public Pair<String, Integer> getItem(int position) { + return times.get(position); + } + + @Override + public long getItemId(int position) { + return position; + } + + @Override + public View getView(int position, View view, ViewGroup parent) { + if (view == null) { + view = mInflater.inflate(R.layout.pulse_time_item, null); + } + + Pair<String, Integer> entry = getItem(position); + ((TextView) view.findViewById(R.id.textViewName)).setText(entry.first); + + return view; + } + } +} diff --git a/src/com/android/settings/notificationlight/NotificationLightSettings.java b/src/com/android/settings/notificationlight/NotificationLightSettings.java new file mode 100644 index 0000000..a39768a --- /dev/null +++ b/src/com/android/settings/notificationlight/NotificationLightSettings.java @@ -0,0 +1,638 @@ +/* + * Copyright (C) 2012 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.android.settings.notificationlight; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.TreeMap; + +import android.app.AlertDialog; +import android.app.Dialog; +import android.app.Notification; +import android.app.NotificationManager; +import android.content.BroadcastReceiver; +import android.content.ContentResolver; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.IntentFilter; +import android.content.pm.ApplicationInfo; +import android.content.pm.PackageInfo; +import android.content.pm.PackageManager; +import android.content.pm.PackageManager.NameNotFoundException; +import android.content.pm.ResolveInfo; +import android.content.res.Resources; +import android.graphics.drawable.Drawable; +import android.os.Bundle; +import android.os.Handler; +import android.preference.CheckBoxPreference; +import android.preference.Preference; +import android.preference.PreferenceGroup; +import android.preference.PreferenceScreen; +import android.provider.Settings; +import android.telephony.TelephonyManager; +import android.text.TextUtils; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; +import android.widget.AdapterView; +import android.widget.AdapterView.OnItemClickListener; +import android.widget.BaseAdapter; +import android.widget.ImageView; +import android.widget.ListView; +import android.widget.TextView; +import android.widget.Toast; + +import com.android.settings.R; +import com.android.settings.SettingsPreferenceFragment; + +public class NotificationLightSettings extends SettingsPreferenceFragment implements + Preference.OnPreferenceChangeListener, View.OnLongClickListener { + private static final String TAG = "NotificationLightSettings"; + private static final String NOTIFICATION_LIGHT_PULSE_DEFAULT_COLOR = "notification_light_pulse_default_color"; + private static final String NOTIFICATION_LIGHT_PULSE_DEFAULT_LED_ON = "notification_light_pulse_default_led_on"; + private static final String NOTIFICATION_LIGHT_PULSE_DEFAULT_LED_OFF = "notification_light_pulse_default_led_off"; + private static final String NOTIFICATION_LIGHT_PULSE_CUSTOM_ENABLE = "notification_light_pulse_custom_enable"; + private static final String NOTIFICATION_LIGHT_PULSE_CUSTOM_VALUES = "notification_light_pulse_custom_values"; + private static final String NOTIFICATION_LIGHT_PULSE = "notification_light_pulse"; + private static final String NOTIFICATION_LIGHT_PULSE_CALL_COLOR = "notification_light_pulse_call_color"; + private static final String NOTIFICATION_LIGHT_PULSE_CALL_LED_ON = "notification_light_pulse_call_led_on"; + private static final String NOTIFICATION_LIGHT_PULSE_CALL_LED_OFF = "notification_light_pulse_call_led_off"; + private static final String NOTIFICATION_LIGHT_PULSE_VMAIL_COLOR = "notification_light_pulse_vmail_color"; + private static final String NOTIFICATION_LIGHT_PULSE_VMAIL_LED_ON = "notification_light_pulse_vmail_led_on"; + private static final String NOTIFICATION_LIGHT_PULSE_VMAIL_LED_OFF = "notification_light_pulse_vmail_led_off"; + private static final String PULSE_PREF = "pulse_enabled"; + private static final String DEFAULT_PREF = "default"; + private static final String CUSTOM_PREF = "custom_enabled"; + private static final String MISSED_CALL_PREF = "missed_call"; + private static final String VOICEMAIL_PREF = "voicemail"; + public static final int ACTION_TEST = 0; + public static final int ACTION_DELETE = 1; + private static final int MENU_ADD = 0; + private static final int DIALOG_APPS = 0; + private int mDefaultColor; + private int mDefaultLedOn; + private int mDefaultLedOff; + private List<ResolveInfo> mInstalledApps; + private PackageManager mPackageManager; + private boolean mCustomEnabled; + private boolean mLightEnabled; + private boolean mVoiceCapable; + private ApplicationLightPreference mDefaultPref; + private ApplicationLightPreference mCallPref; + private ApplicationLightPreference mVoicemailPref; + private CheckBoxPreference mCustomEnabledPref; + private Menu mMenu; + AppAdapter mAppAdapter; + private String mApplicationList; + private Map<String, Application> mApplications; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + addPreferencesFromResource(R.xml.notification_light_settings); + + Resources resources = getResources(); + mDefaultColor = resources.getColor( + com.android.internal.R.color.config_defaultNotificationColor); + mDefaultLedOn = resources.getInteger( + com.android.internal.R.integer.config_defaultNotificationLedOn); + mDefaultLedOff = resources.getInteger( + com.android.internal.R.integer.config_defaultNotificationLedOff); + + // Get launch-able applications + mPackageManager = getPackageManager(); + final Intent mainIntent = new Intent(Intent.ACTION_MAIN, null); + mainIntent.addCategory(Intent.CATEGORY_LAUNCHER); + mInstalledApps = mPackageManager.queryIntentActivities(mainIntent, 0); + mAppAdapter = new AppAdapter(mInstalledApps); + mAppAdapter.update(); + + mApplications = new HashMap<String, Application>(); + + // Determine if the device has voice capabilities + mVoiceCapable = (((TelephonyManager) getActivity().getSystemService(Context.TELEPHONY_SERVICE)).getPhoneType() + != TelephonyManager.PHONE_TYPE_NONE); + + setHasOptionsMenu(true); + } + + @Override + public void onResume() { + super.onResume(); + refreshDefault(); + refreshCustomApplications(); + setCustomEnabled(); + } + + private void refreshDefault() { + ContentResolver resolver = getContentResolver(); + int color = Settings.System.getInt(resolver, NOTIFICATION_LIGHT_PULSE_DEFAULT_COLOR, mDefaultColor); + int timeOn = Settings.System.getInt(resolver, NOTIFICATION_LIGHT_PULSE_DEFAULT_LED_ON, mDefaultLedOn); + int timeOff = Settings.System.getInt(resolver, NOTIFICATION_LIGHT_PULSE_DEFAULT_LED_OFF, mDefaultLedOff); + mLightEnabled = Settings.System.getInt(resolver, NOTIFICATION_LIGHT_PULSE, 0) == 1; + mCustomEnabled = Settings.System.getInt(resolver, NOTIFICATION_LIGHT_PULSE_CUSTOM_ENABLE, 0) == 1; + + // Get Missed call and Voicemail values + int callColor = Settings.System.getInt(resolver, NOTIFICATION_LIGHT_PULSE_CALL_COLOR, mDefaultColor); + int callTimeOn = Settings.System.getInt(resolver, NOTIFICATION_LIGHT_PULSE_CALL_LED_ON, mDefaultLedOn); + int callTimeOff = Settings.System.getInt(resolver, NOTIFICATION_LIGHT_PULSE_CALL_LED_OFF, mDefaultLedOff); + int vmailColor = Settings.System.getInt(resolver, NOTIFICATION_LIGHT_PULSE_VMAIL_COLOR, mDefaultColor); + int vmailTimeOn = Settings.System.getInt(resolver, NOTIFICATION_LIGHT_PULSE_VMAIL_LED_ON, mDefaultLedOn); + int vmailTimeOff = Settings.System.getInt(resolver, NOTIFICATION_LIGHT_PULSE_VMAIL_LED_OFF, mDefaultLedOff); + + PreferenceScreen prefSet = getPreferenceScreen(); + PreferenceGroup generalPrefs = (PreferenceGroup) prefSet.findPreference("general_section"); + if (generalPrefs != null) { + + // Pulse preference + CheckBoxPreference cPref = (CheckBoxPreference) prefSet.findPreference(PULSE_PREF); + cPref.setChecked(mLightEnabled); + cPref.setOnPreferenceChangeListener(this); + + // Default preference + mDefaultPref = (ApplicationLightPreference) prefSet.findPreference(DEFAULT_PREF); + mDefaultPref.setAllValues(color, timeOn, timeOff); + mDefaultPref.setEnabled(mLightEnabled); + mDefaultPref.setOnPreferenceChangeListener(this); + + // Custom enabled preference + mCustomEnabledPref = (CheckBoxPreference) prefSet.findPreference(CUSTOM_PREF); + mCustomEnabledPref.setChecked(mCustomEnabled); + mCustomEnabledPref.setEnabled(mLightEnabled); + mCustomEnabledPref.setOnPreferenceChangeListener(this); + } + + PreferenceGroup phonePrefs = (PreferenceGroup) prefSet.findPreference("phone_list"); + if (phonePrefs != null) { + + // Missed call and Voicemail preferences + // Should only show on devices with a voice capabilities + if (!mVoiceCapable) { + prefSet.removePreference(phonePrefs); + } else { + mCallPref = (ApplicationLightPreference) prefSet.findPreference(MISSED_CALL_PREF); + mCallPref.setAllValues(callColor, callTimeOn, callTimeOff); + mCallPref.setEnabled(mCustomEnabled); + mCallPref.setOnPreferenceChangeListener(this); + + mVoicemailPref = (ApplicationLightPreference) prefSet.findPreference(VOICEMAIL_PREF); + mVoicemailPref.setAllValues(vmailColor, vmailTimeOn, vmailTimeOff); + mVoicemailPref.setEnabled(mCustomEnabled); + mVoicemailPref.setOnPreferenceChangeListener(this); + } + } + + } + + private void refreshCustomApplications() { + Context context = getActivity(); + + if (!parseApplicationList()) { + return; + } + + // Add the Application Preferences + final PreferenceScreen prefSet = getPreferenceScreen(); + final PackageManager pm = getPackageManager(); + final PreferenceGroup appList = (PreferenceGroup) prefSet.findPreference("applications_list"); + + if (appList != null) { + final Map<CharSequence, ApplicationLightPreference> prefs = + new TreeMap<CharSequence, ApplicationLightPreference>(); + + appList.removeAll(); + + for (Application i : mApplications.values()) { + try { + PackageInfo info = pm.getPackageInfo(i.name, PackageManager.GET_META_DATA); + ApplicationLightPreference pref = + new ApplicationLightPreference(context, this, i.color, i.timeon, i.timeoff); + final CharSequence label = info.applicationInfo.loadLabel(pm); + + pref.setKey(i.name); + pref.setTitle(label); + pref.setIcon(info.applicationInfo.loadIcon(pm)); + // Does not fit on low res devices, we need it so we hide the view in the preference + pref.setSummary(i.name); + pref.setPersistent(false); + pref.setOnPreferenceChangeListener(this); + + prefs.put(label, pref); + } catch (NameNotFoundException e) { + // Do nothing + } + } + + for (ApplicationLightPreference pref : prefs.values()) { + appList.addPreference(pref); + } + } + } + + private void setCustomEnabled() { + + Boolean enabled = mCustomEnabled && mLightEnabled; + + // Phone related preferences + if (mVoiceCapable) { + mCallPref.setEnabled(enabled); + mVoicemailPref.setEnabled(enabled); + } + + // Custom applications + PreferenceScreen prefSet = getPreferenceScreen(); + PreferenceGroup appList = (PreferenceGroup) prefSet.findPreference("applications_list"); + if (appList != null) { + appList.setEnabled(enabled); + setHasOptionsMenu(enabled); + } + } + + private void addCustomApplication(String packageName) { + Application app = mApplications.get(packageName); + if (app == null) { + app = new Application(packageName, mDefaultColor, mDefaultLedOn, mDefaultLedOff); + mApplications.put(packageName, app); + saveApplicationList(false); + refreshCustomApplications(); + } + } + + private void removeCustomApplication(String packageName) { + if (mApplications.remove(packageName) != null) { + saveApplicationList(false); + refreshCustomApplications(); + } + } + + private boolean parseApplicationList() { + final String baseString = Settings.System.getString(getContentResolver(), + Settings.System.NOTIFICATION_LIGHT_PULSE_CUSTOM_VALUES); + + if (TextUtils.equals(mApplicationList, baseString)) { + return false; + } + + mApplicationList = baseString; + mApplications.clear(); + + if (baseString != null) { + final String[] array = TextUtils.split(baseString, "\\|"); + for (String item : array) { + if (TextUtils.isEmpty(item)) { + continue; + } + Application app = Application.fromString(item); + if (app != null) { + mApplications.put(app.name, app); + } + } + } + + return true; + } + + private void saveApplicationList(boolean preferencesUpdated) { + List<String> settings = new ArrayList<String>(); + for (Application app : mApplications.values()) { + settings.add(app.toString()); + } + final String value = TextUtils.join("|", settings); + if (preferencesUpdated) { + mApplicationList = value; + } + Settings.System.putString(getContentResolver(), + Settings.System.NOTIFICATION_LIGHT_PULSE_CUSTOM_VALUES, value); + } + + /** + * Updates the default or application specific notification settings. + * + * @param application Package name of application specific settings to update + * @param color + * @param timeon + * @param timeoff + */ + protected void updateValues(String application, Integer color, Integer timeon, Integer timeoff) { + ContentResolver resolver = getContentResolver(); + + if (application.equals(DEFAULT_PREF)) { + Settings.System.putInt(resolver, NOTIFICATION_LIGHT_PULSE_DEFAULT_COLOR, color); + Settings.System.putInt(resolver, NOTIFICATION_LIGHT_PULSE_DEFAULT_LED_ON, timeon); + Settings.System.putInt(resolver, NOTIFICATION_LIGHT_PULSE_DEFAULT_LED_OFF, timeoff); + refreshDefault(); + return; + } else if (application.equals(MISSED_CALL_PREF)) { + Settings.System.putInt(resolver, NOTIFICATION_LIGHT_PULSE_CALL_COLOR, color); + Settings.System.putInt(resolver, NOTIFICATION_LIGHT_PULSE_CALL_LED_ON, timeon); + Settings.System.putInt(resolver, NOTIFICATION_LIGHT_PULSE_CALL_LED_OFF, timeoff); + refreshDefault(); + return; + } else if (application.equals(VOICEMAIL_PREF)) { + Settings.System.putInt(resolver, NOTIFICATION_LIGHT_PULSE_VMAIL_COLOR, color); + Settings.System.putInt(resolver, NOTIFICATION_LIGHT_PULSE_VMAIL_LED_ON, timeon); + Settings.System.putInt(resolver, NOTIFICATION_LIGHT_PULSE_VMAIL_LED_OFF, timeoff); + refreshDefault(); + return; + } + + // Find the custom app and sets its new values + Application app = mApplications.get(application); + if (app != null) { + app.color = color; + app.timeon = timeon; + app.timeoff = timeoff; + saveApplicationList(true); + } + } + + public boolean onLongClick(View v) { + final TextView tView; + AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + + if ((v != null) && ((tView = (TextView) v.findViewById(android.R.id.summary)) != null)) { + builder.setTitle(R.string.dialog_delete_title); + builder.setMessage(R.string.dialog_delete_message); + builder.setIconAttribute(android.R.attr.alertDialogIcon); + builder.setPositiveButton(android.R.string.ok, + new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + removeCustomApplication(tView.getText().toString()); + } + }); + builder.setNegativeButton(android.R.string.cancel, null); + builder.create().show(); + return true; + } + + return false; + } + + public boolean onPreferenceChange(Preference preference, Object objValue) { + String key = preference.getKey(); + + if (PULSE_PREF.equals(key)) { + mLightEnabled = (Boolean) objValue; + Settings.System.putInt(getContentResolver(), Settings.System.NOTIFICATION_LIGHT_PULSE, + mLightEnabled ? 1 : 0); + mDefaultPref.setEnabled(mLightEnabled); + mCustomEnabledPref.setEnabled(mLightEnabled); + setCustomEnabled(); + } else if (CUSTOM_PREF.equals(key)) { + mCustomEnabled = (Boolean) objValue; + Settings.System.putInt(getContentResolver(), NOTIFICATION_LIGHT_PULSE_CUSTOM_ENABLE, + mCustomEnabled ? 1 : 0); + setCustomEnabled(); + } else { + ApplicationLightPreference tPref = (ApplicationLightPreference) preference; + updateValues(key, tPref.getColor(), tPref.getOnValue(), tPref.getOffValue()); + } + + return true; + } + + @Override + public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { + mMenu = menu; + mMenu.add(0, MENU_ADD, 0, R.string.profiles_add) + .setIcon(R.drawable.ic_menu_add) + .setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case MENU_ADD: + showDialog(DIALOG_APPS); + return true; + } + return false; + } + + /** + * Utility classes and supporting methods + */ + @Override + public Dialog onCreateDialog(int id) { + AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + final Dialog dialog; + switch (id) { + case DIALOG_APPS: + final ListView list = new ListView(getActivity()); + list.setAdapter(mAppAdapter); + + builder.setTitle(R.string.profile_choose_app); + builder.setView(list); + dialog = builder.create(); + + list.setOnItemClickListener(new OnItemClickListener() { + @Override + public void onItemClick(AdapterView<?> parent, View view, int position, long id) { + // Add empty application definition, the user will be able to edit it later + AppItem info = (AppItem) parent.getItemAtPosition(position); + addCustomApplication(info.packageName); + dialog.cancel(); + } + }); + break; + default: + dialog = null; + } + return dialog; + } + + /** + * Application class + */ + private static class Application { + public String name; + public Integer color; + public Integer timeon; + public Integer timeoff; + + /** + * Stores all the application values in one call + * @param name + * @param color + * @param timeon + * @param timeoff + */ + public Application(String name, Integer color, Integer timeon, Integer timeoff) { + this.name = name; + this.color = color; + this.timeon = timeon; + this.timeoff = timeoff; + } + + public Application() { + } + + public String toString() { + StringBuilder builder = new StringBuilder(); + builder.append(name); + builder.append("="); + builder.append(color); + builder.append(";"); + builder.append(timeon); + builder.append(";"); + builder.append(timeoff); + return builder.toString(); + } + + public static Application fromString(String value) { + if (TextUtils.isEmpty(value)) { + return null; + } + String[] app = value.split("=", -1); + if (app.length != 2) + return null; + + String[] values = app[1].split(";", -1); + if (values.length != 3) + return null; + + try { + Application item = new Application(app[0], Integer.parseInt(values[0]), Integer + .parseInt(values[1]), Integer.parseInt(values[2])); + return item; + } catch (NumberFormatException e) { + return null; + } + } + + }; + + /** + * AppItem class + */ + class AppItem implements Comparable<AppItem> { + CharSequence title; + String packageName; + Drawable icon; + + @Override + public int compareTo(AppItem another) { + return this.title.toString().compareTo(another.title.toString()); + } + } + + /** + * AppAdapter class + */ + class AppAdapter extends BaseAdapter { + protected List<ResolveInfo> mInstalledAppInfo; + protected List<AppItem> mInstalledApps = new LinkedList<AppItem>(); + + private void reloadList() { + final Handler handler = new Handler(); + new Thread(new Runnable() { + + @Override + public void run() { + synchronized (mInstalledApps) { + mInstalledApps.clear(); + for (ResolveInfo info : mInstalledAppInfo) { + final AppItem item = new AppItem(); + item.title = info.loadLabel(mPackageManager); + item.icon = info.loadIcon(mPackageManager); + item.packageName = info.activityInfo.packageName; + handler.post(new Runnable() { + + @Override + public void run() { + int index = Collections.binarySearch(mInstalledApps, item); + if (index < 0) { + index = -index - 1; + mInstalledApps.add(index, item); + } + notifyDataSetChanged(); + } + }); + } + } + } + }).start(); + } + + public AppAdapter(List<ResolveInfo> installedAppsInfo) { + mInstalledAppInfo = installedAppsInfo; + } + + public void update() { + reloadList(); + } + + @Override + public int getCount() { + return mInstalledApps.size(); + } + + @Override + public AppItem getItem(int position) { + return mInstalledApps.get(position); + } + + @Override + public long getItemId(int position) { + return mInstalledApps.get(position).packageName.hashCode(); + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + ViewHolder holder; + if (convertView != null) { + holder = (ViewHolder) convertView.getTag(); + } else { + final LayoutInflater layoutInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); + convertView = layoutInflater.inflate(R.layout.preference_icon, null, false); + holder = new ViewHolder(); + convertView.setTag(holder); + holder.title = (TextView) convertView.findViewById(com.android.internal.R.id.title); + holder.summary = (TextView) convertView.findViewById(com.android.internal.R.id.summary); + holder.icon = (ImageView) convertView.findViewById(R.id.icon); + } + AppItem applicationInfo = getItem(position); + + if (holder.title != null) { + holder.title.setText(applicationInfo.title); + } + if (holder.summary != null) { + holder.summary.setVisibility(View.GONE); + } + if (holder.icon != null) { + Drawable loadIcon = applicationInfo.icon; + holder.icon.setImageDrawable(loadIcon); + } + return convertView; + } + } + + static class ViewHolder { + TextView title; + TextView summary; + ImageView icon; + } +} diff --git a/src/com/android/settings/profiles/AppGroupConfig.java b/src/com/android/settings/profiles/AppGroupConfig.java new file mode 100644 index 0000000..b5ea87c --- /dev/null +++ b/src/com/android/settings/profiles/AppGroupConfig.java @@ -0,0 +1,435 @@ +/* + * Copyright (C) 2012 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.android.settings.profiles; + +import java.util.Collections; +import java.util.LinkedList; +import java.util.List; + +import android.app.AlertDialog; +import android.app.Dialog; +import android.app.NotificationGroup; +import android.app.ProfileManager; +import android.content.Context; +import android.content.DialogInterface; +import android.content.pm.ApplicationInfo; +import android.content.pm.PackageInfo; +import android.content.pm.PackageManager; +import android.content.pm.PackageManager.NameNotFoundException; +import android.graphics.drawable.Drawable; +import android.os.Bundle; +import android.os.Handler; +import android.preference.Preference; +import android.preference.PreferenceGroup; +import android.preference.PreferenceScreen; +import android.util.Log; +import android.view.ContextMenu; +import android.view.ContextMenu.ContextMenuInfo; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; +import android.widget.AdapterView; +import android.widget.AdapterView.AdapterContextMenuInfo; +import android.widget.AdapterView.OnItemClickListener; +import android.widget.BaseAdapter; +import android.widget.ImageView; +import android.widget.ListView; +import android.widget.TextView; +import android.widget.Toast; + +import com.android.settings.R; +import com.android.settings.SettingsPreferenceFragment; + +public class AppGroupConfig extends SettingsPreferenceFragment + implements Preference.OnPreferenceChangeListener { + + private static String TAG = "AppGroupConfig"; + + private static final int DIALOG_APPS = 0; + + private static final int DELETE_CONFIRM = 1; + + private static final int DELETE_GROUP_CONFIRM = 2; + + public static final String PROFILE_SERVICE = "profile"; + + private ListView mListView; + + private PackageManager mPackageManager; + + private List<PackageInfo> mInstalledPackages; + + private NotificationGroup mNotificationGroup; + + private ProfileManager mProfileManager; + + private NamePreference mNamePreference; + + private static final int MENU_DELETE = Menu.FIRST; + + private static final int MENU_ADD = Menu.FIRST + 1; + + PackageAdaptor mAppAdapter; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + mProfileManager = (ProfileManager) getActivity().getSystemService(PROFILE_SERVICE); + addPreferencesFromResource(R.xml.application_list); + + final Bundle args = getArguments(); + if (args != null) { + mNotificationGroup = (NotificationGroup) args.getParcelable("NotificationGroup"); + mPackageManager = getPackageManager(); + mInstalledPackages = mPackageManager.getInstalledPackages(0); + mAppAdapter = new PackageAdaptor(mInstalledPackages); + mAppAdapter.update(); + + updatePackages(); + + setHasOptionsMenu(true); + } + } + + @Override + public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { + MenuItem delete = menu.add(0, MENU_DELETE, 0, R.string.profile_menu_delete) + .setIcon(R.drawable.ic_menu_trash_holo_dark); + delete.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | + MenuItem.SHOW_AS_ACTION_WITH_TEXT); + + MenuItem addApplication = menu.add(0, MENU_ADD, 0, R.string.profiles_add) + .setIcon(R.drawable.ic_menu_add) + .setAlphabeticShortcut('a'); + addApplication.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | + MenuItem.SHOW_AS_ACTION_WITH_TEXT); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case MENU_DELETE: + deleteNotificationGroup(); + return true; + case MENU_ADD: + addNewApp(); + return true; + default: + return false; + } + } + + Preference mAddPreference; + + Preference mDeletePreference; + + private void updatePackages() { + PreferenceScreen prefSet = getPreferenceScreen(); + + // Add the General section + PreferenceGroup generalPrefs = (PreferenceGroup) prefSet.findPreference("general_section"); + if (generalPrefs != null) { + generalPrefs.removeAll(); + + // Name preference + mNamePreference = new NamePreference(getActivity(), mNotificationGroup.getName()); + mNamePreference.setOnPreferenceChangeListener(this); + generalPrefs.addPreference(mNamePreference); + } + + PreferenceGroup applicationsList = (PreferenceGroup) prefSet.findPreference("applications_list"); + if (applicationsList != null) { + applicationsList.removeAll(); + for (String pkg : mNotificationGroup.getPackages()) { + Preference pref = new Preference(getActivity()); + try { + PackageInfo group = mPackageManager.getPackageInfo(pkg, 0); + pref.setKey(group.packageName); + pref.setTitle(group.applicationInfo.loadLabel(mPackageManager)); + Drawable icon = group.applicationInfo.loadIcon(mPackageManager); + pref.setIcon(icon); + pref.setSelectable(true); + pref.setPersistent(false); + applicationsList.addPreference(pref); + } catch (NameNotFoundException e) { + e.printStackTrace(); + } + } + } + } + + @Override + public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { + menu.add(0, R.string.profile_menu_delete, 0, R.string.profile_menu_delete); + } + + @Override + public boolean onContextItemSelected(MenuItem item) { + AdapterContextMenuInfo aMenuInfo = (AdapterContextMenuInfo) item.getMenuInfo(); + PackageItem selectedGroup = (PackageItem) mListView.getItemAtPosition(aMenuInfo.position); + switch (item.getItemId()) { + case R.string.profile_menu_delete: + deleteAppFromGroup(selectedGroup); + return true; + } + return super.onOptionsItemSelected(item); + } + + private void deleteAppFromGroup(PackageItem selectedGroup) { + if (selectedGroup != null) { + mNotificationGroup.removePackage(selectedGroup.packageName); + updatePackages(); + } + } + + @Override + public void onPause() { + if (mNotificationGroup != null) { + mProfileManager.addNotificationGroup(mNotificationGroup); + } + super.onPause(); + } + + @Override + public boolean onPreferenceChange(Preference preference, Object newValue) { + if (preference == mNamePreference) { + String name = mNamePreference.getName().toString(); + if (!name.equals(mNotificationGroup.getName())) { + if (!mProfileManager.notificationGroupExists(name)) { + mNotificationGroup.setName(name); + } else { + mNamePreference.setName(mNotificationGroup.getName()); + Toast.makeText(getActivity(), R.string.duplicate_appgroup_name, Toast.LENGTH_LONG).show(); + } + } + } + return true; + } + + @Override + public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) { + if (preference instanceof Preference) { + String deleteItem = preference.getKey(); + removeApp(deleteItem); + return true; + } + return super.onPreferenceTreeClick(preferenceScreen, preference); + } + + private void addNewApp() { + showDialog(DIALOG_APPS); + // TODO: switch to using the built in app list rather than dialog box? + } + + private void removeApp(String key) { + mPackageToDelete = key.toString(); + showDialog(DELETE_CONFIRM); + } + + private void deleteNotificationGroup() { + showDialog(DELETE_GROUP_CONFIRM); + } + + @Override + public Dialog onCreateDialog(int id) { + AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + final Dialog dialog; + switch (id) { + case DIALOG_APPS: + final ListView list = new ListView(getActivity()); + list.setAdapter(mAppAdapter); + builder.setTitle(R.string.profile_choose_app); + builder.setView(list); + dialog = builder.create(); + list.setOnItemClickListener(new OnItemClickListener() { + @Override + public void onItemClick(AdapterView<?> parent, View view, int position, long id) { + PackageItem info = (PackageItem) parent.getItemAtPosition(position); + mNotificationGroup.addPackage(info.packageName); + updatePackages(); + dialog.cancel(); + } + }); + break; + case DELETE_CONFIRM: + builder.setMessage(R.string.profile_app_delete_confirm); + builder.setTitle(R.string.profile_menu_delete); + builder.setIconAttribute(android.R.attr.alertDialogIcon); + builder.setPositiveButton(android.R.string.yes, + new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + doDelete(); + } + }); + builder.setNegativeButton(android.R.string.no, + new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + } + }); + dialog = builder.create(); + break; + case DELETE_GROUP_CONFIRM: + builder.setMessage(R.string.profile_delete_appgroup); + builder.setTitle(R.string.profile_menu_delete); + builder.setIconAttribute(android.R.attr.alertDialogIcon); + builder.setPositiveButton(android.R.string.yes, + new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + mProfileManager.removeNotificationGroup(mNotificationGroup); + mNotificationGroup = null; + finish(); + } + }); + builder.setNegativeButton(android.R.string.no, + new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + } + }); + dialog = builder.create(); + break; + default: + dialog = null; + } + return dialog; + } + + String mPackageToDelete; + + private void doDelete() { + mNotificationGroup.removePackage(mPackageToDelete); + updatePackages(); + } + + class PackageItem implements Comparable<PackageItem> { + CharSequence title; + + String packageName; + + Drawable icon; + + @Override + public int compareTo(PackageItem another) { + return this.title.toString().compareTo(another.title.toString()); + } + } + + class PackageAdaptor extends BaseAdapter { + + protected List<PackageInfo> mInstalledPackageInfo; + + protected List<PackageItem> mInstalledPackages = new LinkedList<PackageItem>(); + + private void reloadList() { + final Handler handler = new Handler(); + new Thread(new Runnable() { + + @Override + public void run() { + synchronized (mInstalledPackages) { + mInstalledPackages.clear(); + for (PackageInfo info : mInstalledPackageInfo) { + final PackageItem item = new PackageItem(); + ApplicationInfo applicationInfo = info.applicationInfo; + item.title = applicationInfo.loadLabel(mPackageManager); + item.icon = applicationInfo.loadIcon(mPackageManager); + item.packageName = applicationInfo.packageName; + handler.post(new Runnable() { + + @Override + public void run() { + int index = Collections.binarySearch(mInstalledPackages, item); + if (index < 0) { + index = -index - 1; + mInstalledPackages.add(index, item); + } + notifyDataSetChanged(); + } + }); + } + } + } + }).start(); + } + + public PackageAdaptor(List<PackageInfo> installedPackagesInfo) { + mInstalledPackageInfo = installedPackagesInfo; + } + + public void update() { + reloadList(); + } + + @Override + public int getCount() { + return mInstalledPackages.size(); + } + + @Override + public PackageItem getItem(int position) { + return mInstalledPackages.get(position); + } + + @Override + public long getItemId(int position) { + return mInstalledPackages.get(position).packageName.hashCode(); + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + ViewHolder holder; + if (convertView != null) { + holder = (ViewHolder) convertView.getTag(); + } else { + final LayoutInflater layoutInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); + convertView = layoutInflater.inflate(R.layout.preference_icon, null, false); + holder = new ViewHolder(); + convertView.setTag(holder); + holder.title = (TextView) convertView.findViewById(com.android.internal.R.id.title); + holder.summary = (TextView) convertView + .findViewById(com.android.internal.R.id.summary); + holder.icon = (ImageView) convertView.findViewById(R.id.icon); + } + PackageItem applicationInfo = getItem(position); + + if (holder.title != null) { + holder.title.setText(applicationInfo.title); + } + if (holder.summary != null) { + holder.summary.setVisibility(View.GONE); + } + if (holder.icon != null) { + Drawable loadIcon = applicationInfo.icon; + holder.icon.setImageDrawable(loadIcon); + } + return convertView; + } + } + + static class ViewHolder { + TextView title; + TextView summary; + ImageView icon; + } +} diff --git a/src/com/android/settings/profiles/AppGroupList.java b/src/com/android/settings/profiles/AppGroupList.java new file mode 100644 index 0000000..dc04a9a --- /dev/null +++ b/src/com/android/settings/profiles/AppGroupList.java @@ -0,0 +1,110 @@ +/* + * Copyright (C) 2012 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.android.settings.profiles; + +import java.util.UUID; + +import android.app.NotificationGroup; +import android.app.ProfileManager; +import android.os.Bundle; +import android.preference.Preference; +import android.preference.PreferenceActivity; +import android.preference.PreferenceScreen; +import android.provider.Settings; + +import com.android.settings.R; +import com.android.settings.SettingsPreferenceFragment; +import com.android.settings.Utils; + +public class AppGroupList extends SettingsPreferenceFragment { + + private static final String TAG = "AppGroupSettings"; + public static final String PROFILE_SERVICE = "profile"; + + private ProfileManager mProfileManager; + + // constant value that can be used to check return code from sub activity. + private static final int APP_GROUP_CONFIG = 1; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + if (getPreferenceManager() != null) { + addPreferencesFromResource(R.xml.appgroup_list); + mProfileManager = (ProfileManager) getActivity().getSystemService(PROFILE_SERVICE); + } + } + + @Override + public void onResume() { + super.onResume(); + refreshList(); + + // On tablet devices remove the padding + if (Utils.isTablet(getActivity())) { + getListView().setPadding(0, 0, 0, 0); + } +} + + public void refreshList() { + // Only enable the preferences if system profiles are enabled + boolean enabled = Settings.System.getInt(getActivity().getContentResolver(), + Settings.System.SYSTEM_PROFILES_ENABLED, 1) == 1; + + PreferenceScreen appgroupList = getPreferenceScreen(); + appgroupList.removeAll(); + + if (enabled) { + // Add the existing app groups + for (NotificationGroup group : mProfileManager.getNotificationGroups()) { + PreferenceScreen pref = new PreferenceScreen(getActivity(), null); + pref.setKey(group.getUuid().toString()); + pref.setTitle(group.getName()); + pref.setPersistent(false); + pref.setEnabled(enabled); + appgroupList.addPreference(pref); + } + } else { + // Not enabled, display a message preference + Preference npref = new Preference(getActivity()); + npref.setLayoutResource(R.layout.preference_empty_list); + npref.setTitle(R.string.profile_empty_list_profiles_off); + npref.setEnabled(false); + appgroupList.addPreference(npref); + } + } + + @Override + public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) { + if (preference instanceof PreferenceScreen) { + NotificationGroup group = mProfileManager.getNotificationGroup( + UUID.fromString(preference.getKey())); + editGroup(group); + } + return super.onPreferenceTreeClick(preferenceScreen, preference); + } + + private void editGroup(NotificationGroup group) { + Bundle args = new Bundle(); + args.putParcelable("NotificationGroup", group); + + PreferenceActivity pa = (PreferenceActivity) getActivity(); + pa.startPreferencePanel(AppGroupConfig.class.getName(), args, + R.string.profile_appgroup_manage, null, this, APP_GROUP_CONFIG); + } +} diff --git a/src/com/android/settings/profiles/ApplicationItemPreference.java b/src/com/android/settings/profiles/ApplicationItemPreference.java new file mode 100644 index 0000000..1247e85 --- /dev/null +++ b/src/com/android/settings/profiles/ApplicationItemPreference.java @@ -0,0 +1,67 @@ +/* + * Copyright (C) 2012 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.android.settings.profiles; + +import android.content.Context; +import android.content.res.TypedArray; +import android.graphics.drawable.Drawable; +import android.preference.Preference; +import android.util.AttributeSet; +import android.util.Log; +import android.view.View; +import android.widget.ImageView; +import com.android.settings.R; + +public class ApplicationItemPreference extends Preference { + + private static String TAG = "ApplicationItemPreference"; + + private Drawable mIcon; + + public ApplicationItemPreference(Context context) { + this(context, null, 0); + } + + public ApplicationItemPreference(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + setLayoutResource(R.layout.preference_icon); + TypedArray a = context.obtainStyledAttributes(attrs, + R.styleable.IconPreferenceScreen, defStyle, 0); + mIcon = a.getDrawable(R.styleable.IconPreferenceScreen_icon); + } + + public void setIcon(Drawable icon){ + mIcon = icon; + } + + @Override + public void onBindView(View view) { + super.onBindView(view); + + float valueDips = 36.0f; + final float scale = getContext().getResources().getDisplayMetrics().density; + int valuePixels = (int) (valueDips * scale + 0.5f); + + ImageView imageView = (ImageView) view.findViewById(R.id.icon); + if (imageView != null && mIcon != null) { + imageView.setAdjustViewBounds(true); + imageView.setMaxHeight(valuePixels); + imageView.setMaxWidth(valuePixels); + imageView.setImageDrawable(mIcon); + } + } +} diff --git a/src/com/android/settings/profiles/NFCProfile.java b/src/com/android/settings/profiles/NFCProfile.java new file mode 100644 index 0000000..53750ef --- /dev/null +++ b/src/com/android/settings/profiles/NFCProfile.java @@ -0,0 +1,155 @@ +/* + * Copyright (C) 2012 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.android.settings.profiles; + +import java.util.UUID; + +import android.app.Activity; +import android.app.Profile; +import android.app.ProfileManager; +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; +import android.nfc.NdefMessage; +import android.nfc.NdefRecord; +import android.nfc.NfcAdapter; +import android.os.Bundle; +import android.os.Parcelable; +import android.provider.Settings; +import android.widget.Toast; + +import com.android.settings.R; + +/** + * This activity handles NDEF_DISCOVERED intents with the cm/profile mime type. + * Tags should be encoded with the 16-byte UUID of the profile to be activated. + * Tapping a tag while that profile is already active will select the previously + * active profile. + */ +public class NFCProfile extends Activity { + + private static final String PREFS_NAME = "NFCProfile"; + + private static final String PREFS_PREVIOUS_PROFILE = "previous-profile"; + + static final String PROFILE_MIME_TYPE = "cm/profile"; + + private ProfileManager mProfileManager; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + mProfileManager = (ProfileManager) getSystemService(Context.PROFILE_SERVICE); + } + + @Override + protected void onResume() { + super.onResume(); + + Intent intent = getIntent(); + String action = intent.getAction(); + if (NfcAdapter.ACTION_NDEF_DISCOVERED.equals(action)) { + Parcelable[] rawMsgs = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES); + if (rawMsgs != null) { + NdefMessage[] msgs = new NdefMessage[rawMsgs.length]; + for (int i = 0; i < rawMsgs.length; i++) { + msgs[i] = (NdefMessage) rawMsgs[i]; + for (NdefRecord record : msgs[i].getRecords()) { + String type = new String(record.getType()); + byte[] payload = record.getPayload(); + if (PROFILE_MIME_TYPE.equals(type) && payload != null + && payload.length == 16) { + handleProfileMimeType(payload); + } + } + } + } + } + finish(); + } + + private void handleProfileMimeType(byte[] payload) { + UUID profileUuid = NFCProfileUtils.toUUID(payload); + + boolean enabled = Settings.System.getInt(getContentResolver(), + Settings.System.SYSTEM_PROFILES_ENABLED, 1) == 1; + + if (enabled) { + // Only do NFC profile changing if System Profile support is enabled + Profile currentProfile = mProfileManager.getActiveProfile(); + Profile targetProfile = mProfileManager.getProfile(profileUuid); + + if (targetProfile == null) { + // show profile selection for unknown tag + Intent i = new Intent(this, NFCProfileSelect.class); + i.putExtra(NFCProfileSelect.EXTRA_PROFILE_UUID, profileUuid.toString()); + i.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); + this.startActivity(i); + } else { + // switch to profile + if (currentProfile == null || !currentProfile.getUuid().equals(profileUuid)) { + saveCurrentProfile(); + switchTo(profileUuid); + } else { + Profile lastProfile = getPreviouslySelectedProfile(); + if (lastProfile != null) { + switchTo(lastProfile.getUuid()); + clearPreviouslySelectedProfile(); + } + } + } + } + } + + private void switchTo(UUID uuid) { + Profile p = mProfileManager.getProfile(uuid); + if (p != null) { + mProfileManager.setActiveProfile(uuid); + + Toast.makeText( + this, + String.format(getResources().getString(R.string.profile_selected), p.getName()), + Toast.LENGTH_LONG).show(); + NFCProfileUtils.vibrate(this); + } + } + + private Profile getPreviouslySelectedProfile() { + Profile previous = null; + SharedPreferences prefs = getSharedPreferences(PREFS_NAME, 0); + String uuid = prefs.getString(PREFS_PREVIOUS_PROFILE, null); + if (uuid != null) { + previous = mProfileManager.getProfile(UUID.fromString(uuid)); + } + return previous; + } + + private void clearPreviouslySelectedProfile() { + SharedPreferences.Editor editor = getSharedPreferences(PREFS_NAME, 0).edit(); + editor.remove(PREFS_PREVIOUS_PROFILE); + editor.commit(); + } + + private void saveCurrentProfile() { + Profile currentProfile = mProfileManager.getActiveProfile(); + if (currentProfile != null) { + SharedPreferences.Editor editor = getSharedPreferences(PREFS_NAME, 0).edit(); + editor.putString(PREFS_PREVIOUS_PROFILE, currentProfile.getUuid().toString()); + editor.commit(); + } + } +} diff --git a/src/com/android/settings/profiles/NFCProfileSelect.java b/src/com/android/settings/profiles/NFCProfileSelect.java new file mode 100644 index 0000000..c66de64 --- /dev/null +++ b/src/com/android/settings/profiles/NFCProfileSelect.java @@ -0,0 +1,121 @@ +/* + * Copyright (C) 2012 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.android.settings.profiles; + +import java.util.UUID; + +import android.app.Activity; +import android.app.PendingIntent; +import android.app.Profile; +import android.app.ProfileManager; +import android.app.AlertDialog.Builder; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.IntentFilter; +import android.nfc.NfcAdapter; +import android.nfc.Tag; +import android.os.Bundle; +import android.util.Log; +import android.view.View; +import android.view.View.OnClickListener; +import android.widget.Toast; + +import com.android.settings.R; + +/** + * Activity to support attaching a unknown NFC tag to an existing profile. + */ +public class NFCProfileSelect extends Activity { + + private static final String TAG = "NFCProfileSelect"; + + static final String EXTRA_PROFILE_UUID = "PROFILE_UUID"; + + private ProfileManager mProfileManager; + + private UUID mProfileUuid; + + final static int defaultChoice = -1; + + private int currentChoice = defaultChoice; + + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + mProfileManager = (ProfileManager) getSystemService(Context.PROFILE_SERVICE); + + setContentView(R.layout.nfc_select); + setTitle(R.string.profile_unknown_nfc_tag); + + findViewById(R.id.add_tag).setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + showProfileSelectionDialog(); + } + }); + } + + @Override + public void onResume() { + super.onResume(); + + String profileUuid = getIntent().getStringExtra(EXTRA_PROFILE_UUID); + if (profileUuid != null) { + mProfileUuid = UUID.fromString(profileUuid); + } else { + finish(); + } + } + + void showProfileSelectionDialog() { + final Profile[] profiles = mProfileManager.getProfiles(); + final String[] profileNames = new String[profiles.length]; + for (int i = 0; i < profiles.length; i++) { + profileNames[i] = profiles[i].getName(); + } + + Builder builder = new Builder(this); + builder.setTitle(R.string.profile_settings_title); + builder.setSingleChoiceItems(profileNames, currentChoice, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + currentChoice = which; + } + }); + builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + if (currentChoice != defaultChoice) { + Profile profile = profiles[currentChoice]; + profile.addSecondaryUuid(mProfileUuid); + mProfileManager.updateProfile(profile); + Toast.makeText(NFCProfileSelect.this, R.string.profile_write_success, Toast.LENGTH_LONG).show(); + } + finish(); + } + }); + builder.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + finish(); + } + }); + builder.show(); + } +} diff --git a/src/com/android/settings/profiles/NFCProfileUtils.java b/src/com/android/settings/profiles/NFCProfileUtils.java new file mode 100644 index 0000000..f6461d1 --- /dev/null +++ b/src/com/android/settings/profiles/NFCProfileUtils.java @@ -0,0 +1,129 @@ +/* + * Copyright (C) 2012 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.android.settings.profiles; + +import java.io.IOException; +import java.util.UUID; + +import android.app.Profile; +import android.content.Context; +import android.nfc.NdefMessage; +import android.nfc.NdefRecord; +import android.nfc.Tag; +import android.nfc.tech.Ndef; +import android.nfc.tech.NdefFormatable; +import android.os.Vibrator; +import android.util.Log; + +public class NFCProfileUtils { + + private static final String TAG = "NFCUtils"; + + private static final long[] VIBRATION_PATTERN = { + 0, 100, 10000 + }; + + static void vibrate(Context context) { + Vibrator vibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE); + vibrator.vibrate(VIBRATION_PATTERN, -1); + } + + /* + * Writes an NdefMessage to a NFC tag + */ + static boolean writeTag(NdefMessage message, Tag tag) { + int size = message.toByteArray().length; + try { + Ndef ndef = Ndef.get(tag); + if (ndef != null) { + ndef.connect(); + if (!ndef.isWritable()) { + Log.e(TAG, "Tag is not writable!"); + return false; + } + if (ndef.getMaxSize() < size) { + Log.e(TAG, + "Tag exceeds max ndef message size! [" + size + " > " + + ndef.getMaxSize() + "]"); + return false; + } + ndef.writeNdefMessage(message); + return true; + } else { + NdefFormatable format = NdefFormatable.get(tag); + if (format != null) { + try { + format.connect(); + format.format(message); + return true; + } catch (IOException e) { + Log.e(TAG, "Write error!", e); + return false; + } + } else { + return false; + } + } + } catch (Exception e) { + Log.e(TAG, "Write error!", e); + return false; + } + } + + /* Convert a 16-byte array to a UUID */ + static UUID toUUID(byte[] byteArray) { + + long msb = 0; + long lsb = 0; + for (int i = 0; i < 8; i++) { + msb = (msb << 8) | (byteArray[i] & 0xff); + } + for (int i = 8; i < 16; i++) { + lsb = (lsb << 8) | (byteArray[i] & 0xff); + } + UUID result = new UUID(msb, lsb); + + return result; + } + + /* Convert a UUID to a 16-byte array */ + static byte[] asByteArray(UUID uuid) { + long msb = uuid.getMostSignificantBits(); + long lsb = uuid.getLeastSignificantBits(); + byte[] buffer = new byte[16]; + + for (int i = 0; i < 8; i++) { + buffer[i] = (byte) (msb >>> 8 * (7 - i)); + } + for (int i = 8; i < 16; i++) { + buffer[i] = (byte) (lsb >>> 8 * (7 - i)); + } + + return buffer; + } + + /* + * Convert a profiles into an NdefMessage. The profile UUID is 16 bytes and + * stored with the cm/profile mimetype + */ + static NdefMessage getProfileAsNdef(Profile profile) { + byte[] profileBytes = NFCProfileUtils.asByteArray(profile.getUuid()); + + NdefRecord record = NdefRecord.createMime(NFCProfile.PROFILE_MIME_TYPE, profileBytes); + return new NdefMessage(new NdefRecord[] { record }); + } +} diff --git a/src/com/android/settings/profiles/NFCProfileWriter.java b/src/com/android/settings/profiles/NFCProfileWriter.java new file mode 100644 index 0000000..72b8c13 --- /dev/null +++ b/src/com/android/settings/profiles/NFCProfileWriter.java @@ -0,0 +1,115 @@ +/* + * Copyright (C) 2012 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.android.settings.profiles; + +import java.util.UUID; + +import android.app.Activity; +import android.app.PendingIntent; +import android.app.Profile; +import android.app.ProfileManager; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import android.nfc.NfcAdapter; +import android.nfc.Tag; +import android.os.Bundle; +import android.util.Log; +import android.widget.Toast; + +import com.android.settings.R; + +/** + * Activity to support writing a profile to an NFC tag. + * The mime type is "cm/profile" and the payload is the raw bytes of the profile's + * UUID. The payload was intentionally kept small to support writing on 46-byte tags. + */ +public class NFCProfileWriter extends Activity { + + private static final String TAG = "NFCProfileWriter"; + + static final String EXTRA_PROFILE_UUID = "PROFILE_UUID"; + + private NfcAdapter mNfcAdapter; + + private IntentFilter[] mWriteTagFilters; + + private Profile mProfile; + + private ProfileManager mProfileManager; + + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + mNfcAdapter = NfcAdapter.getDefaultAdapter(this); + mProfileManager = (ProfileManager) getSystemService(Context.PROFILE_SERVICE); + + setContentView(R.layout.nfc_writer); + setTitle(R.string.profile_write_nfc_tag); + } + + @Override + public void onResume() { + super.onResume(); + String profileUuid = getIntent().getStringExtra(EXTRA_PROFILE_UUID); + if (profileUuid != null) { + mProfile = mProfileManager.getProfile(UUID.fromString(profileUuid)); + Log.d(TAG, "Profile to write: " + mProfile.getName()); + enableTagWriteMode(); + } + } + + + @Override + protected void onPause() { + super.onPause(); + disableTagWriteMode(); + } + + private PendingIntent getPendingIntent() { + return PendingIntent.getActivity(this, 0, + new Intent(this, getClass()).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP), 0); + } + + private void disableTagWriteMode() { + mNfcAdapter.disableForegroundDispatch(this); + } + + private void enableTagWriteMode() { + IntentFilter tagDetected = new IntentFilter(NfcAdapter.ACTION_TAG_DISCOVERED); + mWriteTagFilters = new IntentFilter[] { + tagDetected + }; + mNfcAdapter.enableForegroundDispatch(this, getPendingIntent(), mWriteTagFilters, null); + } + + @Override + protected void onNewIntent(Intent intent) { + // Tag writing mode + if (NfcAdapter.ACTION_TAG_DISCOVERED.equals(intent.getAction())) { + Tag detectedTag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG); + if (NFCProfileUtils.writeTag(NFCProfileUtils.getProfileAsNdef(mProfile), detectedTag)) { + Toast.makeText(this, R.string.profile_write_success, Toast.LENGTH_LONG).show(); + NFCProfileUtils.vibrate(this); + } else { + Toast.makeText(this, R.string.profile_write_failed, Toast.LENGTH_LONG).show(); + } + finish(); + } + } +} diff --git a/src/com/android/settings/profiles/NamePreference.java b/src/com/android/settings/profiles/NamePreference.java new file mode 100644 index 0000000..7b48e0c --- /dev/null +++ b/src/com/android/settings/profiles/NamePreference.java @@ -0,0 +1,126 @@ +/* + * Copyright (C) 2012 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.android.settings.profiles; + +import android.app.AlertDialog; +import android.content.Context; +import android.content.DialogInterface; +import android.preference.Preference; +import android.view.View; +import android.widget.EditText; +import android.widget.LinearLayout; +import android.widget.TextView; + +import com.android.settings.R; + +public class NamePreference extends Preference implements + View.OnClickListener, Preference.OnPreferenceChangeListener { + private static final String TAG = NamePreference.class.getSimpleName(); + + private TextView mNameView; + + private String mName; + + /** + * @param context + * @param title + */ + public NamePreference(Context context, String name) { + super(context); + mName = name.toString(); + init(); + } + + /** + * @param context + */ + public NamePreference(Context context) { + super(context); + init(); + } + + @Override + public void onBindView(View view) { + super.onBindView(view); + + View namePref = view.findViewById(R.id.name_pref); + if ((namePref != null) && namePref instanceof LinearLayout) { + namePref.setOnClickListener(this); + } + + mNameView = (TextView) view.findViewById(R.id.title); + + updatePreferenceViews(); + } + + private void init() { + setLayoutResource(R.layout.preference_name); + } + + public void setName(String name) { + mName = (name.toString()); + updatePreferenceViews(); + } + + public String getName() { + return(mName.toString()); + } + + private void updatePreferenceViews() { + if (mNameView != null) { + mNameView.setText(mName.toString()); + } + } + + @Override + public void onClick(android.view.View v) { + if (v != null) { + Context context = getContext(); + if (context != null) { + final EditText entry = new EditText(context); + entry.setSingleLine(); + entry.setText(mName.toString()); + + AlertDialog.Builder builder = new AlertDialog.Builder(context); + builder.setTitle(R.string.rename_dialog_title); + builder.setMessage(R.string.rename_dialog_message); + builder.setView(entry, 34, 16, 34, 16); + builder.setPositiveButton(android.R.string.ok, + new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + String value = entry.getText().toString(); + mName = value.toString(); + mNameView.setText(value.toString()); + callChangeListener(this); + } + }); + builder.setNegativeButton(android.R.string.cancel, null); + AlertDialog dialog = builder.create(); + dialog.show(); + ((TextView)dialog.findViewById(android.R.id.message)).setTextAppearance(context, + android.R.style.TextAppearance_DeviceDefault_Small); + } + } + } + + @Override + public boolean onPreferenceChange(Preference preference, Object newValue) { + callChangeListener(preference); + return false; + } +} diff --git a/src/com/android/settings/profiles/ProfileAirplaneModePreference.java b/src/com/android/settings/profiles/ProfileAirplaneModePreference.java new file mode 100644 index 0000000..067e43b --- /dev/null +++ b/src/com/android/settings/profiles/ProfileAirplaneModePreference.java @@ -0,0 +1,171 @@ +/* + * Copyright (C) 2012 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.android.settings.profiles; + +import android.app.AlertDialog; +import android.app.Dialog; +import android.content.Context; +import android.content.DialogInterface; +import android.preference.Preference; +import android.util.AttributeSet; +import android.view.View; +import android.view.ViewGroup; +import android.widget.CheckBox; +import android.widget.CompoundButton; +import android.widget.LinearLayout; + +import com.android.settings.R; + +public class ProfileAirplaneModePreference extends Preference implements + CompoundButton.OnCheckedChangeListener, View.OnClickListener { + + private boolean mProtectFromCheckedChange = false; + + private CheckBox mCheckBox; + + final static String TAG = "ProfileSilentModePreference"; + + private ProfileConfig.AirplaneModeItem mAirplaneModeItem; + + final static int defaultChoice = -1; + + private int currentChoice; + + /** + * @param context + * @param attrs + * @param defStyle + */ + public ProfileAirplaneModePreference(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + init(); + } + + /** + * @param context + * @param attrs + */ + public ProfileAirplaneModePreference(Context context, AttributeSet attrs) { + super(context, attrs); + init(); + } + + /** + * @param context + */ + public ProfileAirplaneModePreference(Context context) { + super(context); + init(); + } + + @Override + public View getView(View convertView, ViewGroup parent) { + View view = super.getView(convertView, parent); + + View widget = view.findViewById(R.id.profile_checkbox); + if ((widget != null) && widget instanceof CheckBox) { + mCheckBox = (CheckBox) widget; + mCheckBox.setOnCheckedChangeListener(this); + + mProtectFromCheckedChange = true; + mCheckBox.setChecked(isChecked()); + mProtectFromCheckedChange = false; + } + + View textLayout = view.findViewById(R.id.text_layout); + if ((textLayout != null) && textLayout instanceof LinearLayout) { + textLayout.setOnClickListener(this); + } + + return view; + } + + private void init() { + setLayoutResource(R.layout.preference_streamvolume); + } + + public boolean isChecked() { + return mAirplaneModeItem != null && mAirplaneModeItem.mSettings.isOverride(); + } + + public void setAirplaneModeItem(ProfileConfig.AirplaneModeItem airplaneModeItem) { + mAirplaneModeItem = airplaneModeItem; + + if (mCheckBox != null) { + mCheckBox.setChecked(mAirplaneModeItem.mSettings.isOverride()); + } + } + + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if (mProtectFromCheckedChange) { + return; + } + + mAirplaneModeItem.mSettings.setOverride(isChecked); + + callChangeListener(isChecked); + } + + protected Dialog createAirplaneModeDialog() { + AlertDialog.Builder builder = new AlertDialog.Builder(getContext()); + final String[] AirplaneModeValues = getContext().getResources().getStringArray( + R.array.profile_connection_values); + + currentChoice = mAirplaneModeItem.mSettings.getValue(); + + builder.setTitle(R.string.profile_airplanemode_title); + builder.setSingleChoiceItems(R.array.profile_connection_entries, currentChoice, + new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int item) { + currentChoice = item; + } + }); + + builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int item) { + if (currentChoice != defaultChoice) { + int value = Integer.parseInt(AirplaneModeValues[currentChoice]); + mAirplaneModeItem.mSettings.setValue(currentChoice); + setSummary(value == 1 ? getContext().getString(R.string.connection_state_enabled) : getContext() + .getString(R.string.connection_state_disabled)); + } + } + }); + + builder.setNegativeButton(android.R.string.cancel, null); + return builder.create(); + } + + public ProfileConfig.AirplaneModeItem getAirplaneModeItem() { + return mAirplaneModeItem; + } + + @Override + public void onClick(android.view.View v) { + if ((v != null) && (R.id.text_layout == v.getId())) { + createAirplaneModeDialog().show(); + } + } + + public void setSummary(Context context) { + int value = mAirplaneModeItem.mSettings.getValue(); + setSummary(value == 1 ? getContext().getString(R.string.connection_state_enabled) : getContext().getString( + R.string.connection_state_disabled)); + } +} diff --git a/src/com/android/settings/profiles/ProfileConfig.java b/src/com/android/settings/profiles/ProfileConfig.java new file mode 100644 index 0000000..2a0981d --- /dev/null +++ b/src/com/android/settings/profiles/ProfileConfig.java @@ -0,0 +1,433 @@ +/* + * Copyright (C) 2012 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.android.settings.profiles; + +import java.util.ArrayList; +import java.util.UUID; + +import android.app.AirplaneModeSettings; +import android.app.AlertDialog; +import android.app.ConnectionSettings; +import android.app.Profile; +import android.app.ProfileGroup; +import android.app.ProfileManager; +import android.app.RingModeSettings; +import android.app.StreamSettings; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.media.AudioManager; +import android.net.wimax.WimaxHelper; +import android.nfc.NfcAdapter; +import android.os.Bundle; +import android.preference.ListPreference; +import android.preference.Preference; +import android.preference.PreferenceActivity; +import android.preference.PreferenceGroup; +import android.preference.PreferenceScreen; +import android.util.Log; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; +import android.widget.Toast; + +import com.android.settings.R; +import com.android.settings.SettingsPreferenceFragment; + +public class ProfileConfig extends SettingsPreferenceFragment + implements Preference.OnPreferenceChangeListener { + + static final String TAG = "ProfileConfig"; + + public static final String PROFILE_SERVICE = "profile"; + + private ProfileManager mProfileManager; + + private static final int MENU_NFC_WRITE = Menu.FIRST; + + private static final int MENU_DELETE = Menu.FIRST + 1; + + private Profile mProfile; + + private NamePreference mNamePreference; + + private ListPreference mScreenLockModePreference; + + // constant value that can be used to check return code from sub activity. + private static final int PROFILE_GROUP_DETAILS = 1; + + private StreamItem[] mStreams; + + private ArrayList<ConnectionItem> mConnections; + + private RingModeItem mRingMode; + + private AirplaneModeItem mAirplaneMode; + + @Override + public void onCreate(Bundle icicle) { + super.onCreate(icicle); + + mStreams = new StreamItem[] { + new StreamItem(AudioManager.STREAM_ALARM, getString(R.string.alarm_volume_title)), + new StreamItem(AudioManager.STREAM_MUSIC, getString(R.string.media_volume_title)), + new StreamItem(AudioManager.STREAM_RING, getString(R.string.incoming_call_volume_title)), + new StreamItem(AudioManager.STREAM_NOTIFICATION, getString(R.string.notification_volume_title)) + }; + + mConnections = new ArrayList<ConnectionItem>(); + mConnections.add(new ConnectionItem(ConnectionSettings.PROFILE_CONNECTION_MOBILEDATA, getString(R.string.toggleData))); + mConnections.add(new ConnectionItem(ConnectionSettings.PROFILE_CONNECTION_BLUETOOTH, getString(R.string.toggleBluetooth))); + mConnections.add(new ConnectionItem(ConnectionSettings.PROFILE_CONNECTION_GPS, getString(R.string.toggleGPS))); + mConnections.add(new ConnectionItem(ConnectionSettings.PROFILE_CONNECTION_WIFI, getString(R.string.toggleWifi))); + mConnections.add(new ConnectionItem(ConnectionSettings.PROFILE_CONNECTION_SYNC, getString(R.string.toggleSync))); + mConnections.add(new ConnectionItem(ConnectionSettings.PROFILE_CONNECTION_WIFIAP, getString(R.string.toggleWifiAp))); + if (WimaxHelper.isWimaxSupported(getActivity())) { + mConnections.add(new ConnectionItem(ConnectionSettings.PROFILE_CONNECTION_WIMAX, getString(R.string.toggleWimax))); + } + + addPreferencesFromResource(R.xml.profile_config); + + mProfileManager = (ProfileManager) getActivity().getSystemService(PROFILE_SERVICE); + + final Bundle args = getArguments(); + mProfile = (args != null) ? (Profile) args.getParcelable("Profile") : null; + + if (mProfile == null) { + mProfile = new Profile(getString(R.string.new_profile_name)); + mProfileManager.addProfile(mProfile); + } + + setHasOptionsMenu(true); + + } + + @Override + public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { + if (NfcAdapter.getDefaultAdapter(getActivity()) != null) { + MenuItem nfc = menu.add(0, MENU_NFC_WRITE, 0, R.string.profile_write_nfc_tag) + .setIcon(R.drawable.ic_menu_nfc_writer_dark); + nfc.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | + MenuItem.SHOW_AS_ACTION_WITH_TEXT); + } + MenuItem delete = menu.add(0, MENU_DELETE, 1, R.string.profile_menu_delete) + .setIcon(R.drawable.ic_menu_trash_holo_dark); + delete.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | + MenuItem.SHOW_AS_ACTION_WITH_TEXT); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case MENU_DELETE: + deleteProfile(); + return true; + case MENU_NFC_WRITE: + startNFCProfileWriter(); + return true; + default: + return false; + } + } + + @Override + public void onResume() { + super.onResume(); + mProfile = mProfileManager.getProfile(mProfile.getUuid()); + fillList(); + } + + @Override + public void onPause() { + super.onPause(); + // Save profile here + if (mProfile != null) { + mProfileManager.updateProfile(mProfile); + } + } + + private void startNFCProfileWriter() { + PreferenceActivity pa = (PreferenceActivity) getActivity(); + Intent i = new Intent(this.getActivity(), NFCProfileWriter.class); + i.putExtra(NFCProfileWriter.EXTRA_PROFILE_UUID, mProfile.getUuid().toString()); + i.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); + pa.startActivity(i); + } + + private void fillList() { + PreferenceScreen prefSet = getPreferenceScreen(); + + // Add the General section + PreferenceGroup generalPrefs = (PreferenceGroup) prefSet.findPreference("profile_general_section"); + if (generalPrefs != null) { + generalPrefs.removeAll(); + + // Name preference + mNamePreference = new NamePreference(getActivity(), mProfile.getName()); + mNamePreference.setOnPreferenceChangeListener(this); + generalPrefs.addPreference(mNamePreference); + } + + // Populate system settings + PreferenceGroup systemPrefs = (PreferenceGroup) prefSet.findPreference("profile_system_settings"); + if (systemPrefs != null) { + systemPrefs.removeAll(); + // Ring mode preference + if (mRingMode == null) { + mRingMode = new RingModeItem(); + } + RingModeSettings rms = mProfile.getRingMode(); + if (rms == null) { + rms = new RingModeSettings(); + mProfile.setRingMode(rms); + } + mRingMode.mSettings = rms; + ProfileRingModePreference rmp = new ProfileRingModePreference(getActivity()); + rmp.setRingModeItem(mRingMode); + rmp.setTitle(R.string.ring_mode_title); + rmp.setPersistent(false); + rmp.setSummary(getActivity()); + rmp.setOnPreferenceChangeListener(this); + mRingMode.mCheckbox = rmp; + systemPrefs.addPreference(rmp); + + // Airplane mode preference + if (mAirplaneMode == null) { + mAirplaneMode = new AirplaneModeItem(); + } + AirplaneModeSettings ams = mProfile.getAirplaneMode(); + if (ams == null) { + ams = new AirplaneModeSettings(); + mProfile.setAirplaneMode(ams); + } + mAirplaneMode.mSettings = ams; + ProfileAirplaneModePreference amp = new ProfileAirplaneModePreference(getActivity()); + amp.setAirplaneModeItem(mAirplaneMode); + amp.setTitle(R.string.profile_airplanemode_title); + amp.setPersistent(false); + amp.setSummary(getActivity()); + amp.setOnPreferenceChangeListener(this); + mAirplaneMode.mCheckbox = amp; + systemPrefs.addPreference(amp); + + // Lockscreen mode preference + mScreenLockModePreference = new ListPreference(getActivity()); + mScreenLockModePreference.setTitle(R.string.profile_lockmode_title); + mScreenLockModePreference.setEntries(R.array.profile_lockmode_entries); + mScreenLockModePreference.setEntryValues(R.array.profile_lockmode_values); + mScreenLockModePreference.setPersistent(false); + mScreenLockModePreference.setSummary(getResources().getStringArray( + R.array.profile_lockmode_summaries)[mProfile.getScreenLockMode()]); + mScreenLockModePreference.setValue(String.valueOf(mProfile.getScreenLockMode())); + mScreenLockModePreference.setOnPreferenceChangeListener(this); + systemPrefs.addPreference(mScreenLockModePreference); + } + + // Populate the audio streams list + final AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE); + PreferenceGroup streamList = (PreferenceGroup) prefSet.findPreference("profile_volumeoverrides"); + if (streamList != null) { + streamList.removeAll(); + for (StreamItem stream : mStreams) { + StreamSettings settings = mProfile.getSettingsForStream(stream.mStreamId); + if (settings == null) { + settings = new StreamSettings(stream.mStreamId); + mProfile.setStreamSettings(settings); + } + stream.mSettings = settings; + StreamVolumePreference pref = new StreamVolumePreference(getActivity()); + pref.setKey("stream_" + stream.mStreamId); + pref.setTitle(stream.mLabel); + pref.setSummary(getString(R.string.volume_override_summary) + " " + settings.getValue() + + "/" + am.getStreamMaxVolume(stream.mStreamId)); + pref.setPersistent(false); + pref.setStreamItem(stream); + stream.mCheckbox = pref; + streamList.addPreference(pref); + } + } + + // Populate Connections list + PreferenceGroup connectionList = (PreferenceGroup) prefSet.findPreference("profile_connectionoverrides"); + if (connectionList != null) { + connectionList.removeAll(); + for (ConnectionItem connection : mConnections) { + ConnectionSettings settings = mProfile.getSettingsForConnection(connection.mConnectionId); + if (settings == null) { + settings = new ConnectionSettings(connection.mConnectionId); + mProfile.setConnectionSettings(settings); + } + connection.mSettings = settings; + ProfileConnectionPreference pref = new ProfileConnectionPreference(getActivity()); + pref.setKey("connection_" + connection.mConnectionId); + pref.setTitle(connection.mLabel); + pref.setSummary(settings.getValue() == 1 ? getString(R.string.connection_state_enabled) + : getString(R.string.connection_state_disabled)); + pref.setPersistent(false); + pref.setConnectionItem(connection); + connection.mCheckbox = pref; + connectionList.addPreference(pref); + } + } + + // Populate Application groups + PreferenceGroup groupList = (PreferenceGroup) prefSet.findPreference("profile_appgroups"); + if (groupList != null) { + groupList.removeAll(); + for (ProfileGroup profileGroup : mProfile.getProfileGroups()) { + PreferenceScreen pref = new PreferenceScreen(getActivity(), null); + UUID uuid = profileGroup.getUuid(); + pref.setKey(uuid.toString()); + pref.setTitle(mProfileManager.getNotificationGroup(uuid).getName()); + //pref.setSummary(R.string.profile_summary); // summary is repetitive, consider removing + pref.setPersistent(false); + pref.setSelectable(true); + groupList.addPreference(pref); + } + } + } + + @Override + public boolean onPreferenceChange(Preference preference, Object newValue) { + if (preference instanceof StreamVolumePreference) { + for (StreamItem stream : mStreams) { + if (preference == stream.mCheckbox) { + stream.mSettings.setOverride((Boolean) newValue); + } + } + } else if (preference instanceof ProfileConnectionPreference) { + for (ConnectionItem connection : mConnections) { + if (preference == connection.mCheckbox) { + connection.mSettings.setOverride((Boolean) newValue); + } + } + } else if (preference == mRingMode.mCheckbox) { + mRingMode.mSettings.setOverride((Boolean) newValue); + } else if (preference == mAirplaneMode.mCheckbox) { + mAirplaneMode.mSettings.setOverride((Boolean) newValue); + } else if (preference == mNamePreference) { + String name = mNamePreference.getName().toString(); + if (!name.equals(mProfile.getName())) { + if (!mProfileManager.profileExists(name)) { + mProfile.setName(name); + } else { + mNamePreference.setName(mProfile.getName()); + Toast.makeText(getActivity(), R.string.duplicate_profile_name, Toast.LENGTH_LONG).show(); + } + } + } else if (preference == mScreenLockModePreference) { + mProfile.setScreenLockMode(Integer.valueOf((String) newValue)); + mScreenLockModePreference.setSummary(getResources().getStringArray( + R.array.profile_lockmode_summaries)[mProfile.getScreenLockMode()]); + } + return true; + } + + @Override + public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) { + Log.d(TAG, "onPreferenceTreeClick(): entered" + preferenceScreen.getKey() + preference.getKey()); + if (preference instanceof PreferenceScreen) { + startProfileGroupActivity(preference.getKey(), preference.getTitle().toString()); + return true; + } + return super.onPreferenceTreeClick(preferenceScreen, preference); + } + + private void startProfileGroupActivity(String key, String title) { + Bundle args = new Bundle(); + args.putString("ProfileGroup", key.toString()); + args.putParcelable("Profile", mProfile); + + String header = mProfile.getName().toString() + ": " + title.toString(); + PreferenceActivity pa = (PreferenceActivity) getActivity(); + pa.startPreferencePanel(ProfileGroupConfig.class.getName(), args, + 0, header, this, PROFILE_GROUP_DETAILS); + } + + + private void deleteProfile() { + if (mProfile.getUuid().equals(mProfileManager.getActiveProfile().getUuid())) { + Toast toast = Toast.makeText(getActivity(), getString(R.string.profile_cannot_delete), + Toast.LENGTH_SHORT); + toast.show(); + } else { + AlertDialog.Builder alert = new AlertDialog.Builder(getActivity()); + alert.setTitle(R.string.profile_menu_delete); + alert.setIconAttribute(android.R.attr.alertDialogIcon); + alert.setMessage(R.string.profile_delete_confirm); + alert.setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + doDelete(); + } + }); + alert.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + dialog.cancel(); + } + }); + alert.create().show(); + } + } + + private void doDelete() { + mProfileManager.removeProfile(mProfile); + mProfile = null; + finish(); + } + + static class StreamItem { + int mStreamId; + String mLabel; + StreamSettings mSettings; + StreamVolumePreference mCheckbox; + + public StreamItem(int streamId, String label) { + mStreamId = streamId; + mLabel = label; + } + } + + static class ConnectionItem { + int mConnectionId; + String mLabel; + ConnectionSettings mSettings; + ProfileConnectionPreference mCheckbox; + + public ConnectionItem(int connectionId, String label) { + mConnectionId = connectionId; + mLabel = label; + } + } + + static class RingModeItem { + RingModeSettings mSettings; + ProfileRingModePreference mCheckbox; + + public RingModeItem() { + // nothing to do + } + } + + static class AirplaneModeItem { + AirplaneModeSettings mSettings; + ProfileAirplaneModePreference mCheckbox; + + public AirplaneModeItem() { + // nothing to do + } + } +} diff --git a/src/com/android/settings/profiles/ProfileConnectionPreference.java b/src/com/android/settings/profiles/ProfileConnectionPreference.java new file mode 100644 index 0000000..352c707 --- /dev/null +++ b/src/com/android/settings/profiles/ProfileConnectionPreference.java @@ -0,0 +1,167 @@ +/* + * Copyright (C) 2012 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.android.settings.profiles; + +import android.app.AlertDialog; +import android.app.Dialog; +import android.content.Context; +import android.content.DialogInterface; +import android.preference.Preference; +import android.util.AttributeSet; +import android.view.View; +import android.view.ViewGroup; +import android.widget.CheckBox; +import android.widget.CompoundButton; +import android.widget.LinearLayout; + +import com.android.settings.R; + +public class ProfileConnectionPreference extends Preference implements + CompoundButton.OnCheckedChangeListener, View.OnClickListener { + + private boolean mProtectFromCheckedChange = false; + + private CheckBox mCheckBox; + + final static String TAG = "ProfileConnectionPreference"; + + private ProfileConfig.ConnectionItem mConnectionItem; + + final static int defaultChoice = -1; + + private int currentChoice; + + /** + * @param context + * @param attrs + * @param defStyle + */ + public ProfileConnectionPreference(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + init(); + } + + /** + * @param context + * @param attrs + */ + public ProfileConnectionPreference(Context context, AttributeSet attrs) { + super(context, attrs); + init(); + } + + /** + * @param context + */ + public ProfileConnectionPreference(Context context) { + super(context); + init(); + } + + @Override + public View getView(View convertView, ViewGroup parent) { + View view = super.getView(convertView, parent); + + View widget = view.findViewById(R.id.profile_checkbox); + if ((widget != null) && widget instanceof CheckBox) { + mCheckBox = (CheckBox) widget; + mCheckBox.setOnCheckedChangeListener(this); + + mProtectFromCheckedChange = true; + mCheckBox.setChecked(isChecked()); + mProtectFromCheckedChange = false; + } + + View textLayout = view.findViewById(R.id.text_layout); + if ((textLayout != null) && textLayout instanceof LinearLayout) { + textLayout.setOnClickListener(this); + } + + return view; + } + + private void init() { + setLayoutResource(R.layout.preference_streamvolume); + } + + public boolean isChecked() { + return mConnectionItem != null && mConnectionItem.mSettings.isOverride(); + } + + public void setConnectionItem(ProfileConfig.ConnectionItem connectionItem) { + mConnectionItem = connectionItem; + + if (mCheckBox != null) { + mCheckBox.setChecked(mConnectionItem.mSettings.isOverride()); + } + } + + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if (mProtectFromCheckedChange) { + return; + } + + mConnectionItem.mSettings.setOverride(isChecked); + + callChangeListener(isChecked); + } + + protected Dialog createConnectionDialog() { + AlertDialog.Builder builder = new AlertDialog.Builder(getContext()); + final String[] ConnectionValues = getContext().getResources().getStringArray(R.array.profile_connection_values); + + currentChoice = mConnectionItem.mSettings.getValue(); + + builder.setTitle(mConnectionItem.mLabel); + builder.setSingleChoiceItems(R.array.profile_connection_entries, currentChoice, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int item) { + currentChoice = item; + } + }); + + builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int item) { + if (currentChoice != defaultChoice) { + int value = Integer.parseInt(ConnectionValues[currentChoice]); + mConnectionItem.mSettings.setValue(value); + setSummary(value == 1 ? getContext().getString(R.string.connection_state_enabled) + : getContext().getString(R.string.connection_state_disabled)); + } + } + }); + + builder.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int item) { + } + }); + return builder.create(); + } + + public ProfileConfig.ConnectionItem getConnectionItem() { + return mConnectionItem; + } + + @Override + public void onClick(android.view.View v) { + if ((v != null) && (R.id.text_layout == v.getId())) { + createConnectionDialog().show(); + } + } +} diff --git a/src/com/android/settings/profiles/ProfileEnabler.java b/src/com/android/settings/profiles/ProfileEnabler.java new file mode 100644 index 0000000..e5bbc49 --- /dev/null +++ b/src/com/android/settings/profiles/ProfileEnabler.java @@ -0,0 +1,75 @@ +/* + * Copyright (C) 2012 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.android.settings.profiles; + +import android.content.Context; +import android.provider.Settings; +import android.widget.CompoundButton; +import android.widget.Switch; + +public class ProfileEnabler implements CompoundButton.OnCheckedChangeListener { + private final Context mContext; + private Switch mSwitch; + private boolean mStateMachineEvent; + private ProfilesSettings mParent; + + public ProfileEnabler(Context context, ProfilesSettings parent, Switch switch_) { + mContext = context; + mSwitch = switch_; + mParent = parent; + } + + public void resume() { + mSwitch.setOnCheckedChangeListener(this); + setSwitchState(); + } + + public void pause() { + mSwitch.setOnCheckedChangeListener(null); + } + + public void setSwitch(Switch switch_) { + if (mSwitch == switch_) return; + mSwitch.setOnCheckedChangeListener(null); + mSwitch = switch_; + mSwitch.setOnCheckedChangeListener(this); + setSwitchState(); + } + + private void setSwitchState() { + boolean enabled = Settings.System.getInt(mContext.getContentResolver(), + Settings.System.SYSTEM_PROFILES_ENABLED, 1) == 1; + mStateMachineEvent = true; + mSwitch.setChecked(enabled); + mStateMachineEvent = false; + } + + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if (mStateMachineEvent) { + return; + } + // Handle a switch change + Settings.System.putInt(mContext.getContentResolver(), + Settings.System.SYSTEM_PROFILES_ENABLED, isChecked ? 1 : 0); + + if (mParent != null) { + mParent.refreshActiveTab(); + } + + } + +} diff --git a/src/com/android/settings/profiles/ProfileGroupConfig.java b/src/com/android/settings/profiles/ProfileGroupConfig.java new file mode 100644 index 0000000..f1d4e7b --- /dev/null +++ b/src/com/android/settings/profiles/ProfileGroupConfig.java @@ -0,0 +1,149 @@ +/* + * Copyright (C) 2012 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.android.settings.profiles; + +import java.util.UUID; + +import android.app.Profile; +import android.app.ProfileGroup; +import android.app.ProfileGroup.Mode; +import android.app.ProfileManager; +import android.net.Uri; +import android.os.Bundle; +import android.preference.ListPreference; +import android.preference.Preference; +import android.preference.Preference.OnPreferenceChangeListener; + +import com.android.settings.R; +import com.android.settings.SettingsPreferenceFragment; + +public class ProfileGroupConfig extends SettingsPreferenceFragment implements + OnPreferenceChangeListener { + + public static final String PROFILE_SERVICE = "profile"; + + private static final CharSequence KEY_SOUNDMODE = "sound_mode"; + + private static final CharSequence KEY_VIBRATEMODE = "vibrate_mode"; + + private static final CharSequence KEY_LIGHTSMODE = "lights_mode"; + + private static final CharSequence KEY_RINGERMODE = "ringer_mode"; + + private static final CharSequence KEY_SOUNDTONE = "soundtone"; + + private static final CharSequence KEY_RINGTONE = "ringtone"; + + Profile mProfile; + + ProfileGroup mProfileGroup; + + private ListPreference mSoundMode; + + private ListPreference mRingerMode; + + private ListPreference mVibrateMode; + + private ListPreference mLightsMode; + + private ProfileRingtonePreference mRingTone; + + private ProfileRingtonePreference mSoundTone; + + private ProfileManager mProfileManager; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + addPreferencesFromResource(R.xml.profile_settings); + + final Bundle args = getArguments(); + if (args != null) { + mProfile = (Profile) args.getParcelable("Profile"); + UUID uuid = UUID.fromString(args.getString("ProfileGroup")); + + mProfileManager = (ProfileManager) getSystemService(PROFILE_SERVICE); + mProfileGroup = mProfile.getProfileGroup(uuid); + + mRingerMode = (ListPreference) findPreference(KEY_RINGERMODE); + mSoundMode = (ListPreference) findPreference(KEY_SOUNDMODE); + mVibrateMode = (ListPreference) findPreference(KEY_VIBRATEMODE); + mLightsMode = (ListPreference) findPreference(KEY_LIGHTSMODE); + mRingTone = (ProfileRingtonePreference) findPreference(KEY_RINGTONE); + mSoundTone = (ProfileRingtonePreference) findPreference(KEY_SOUNDTONE); + + mRingTone.setShowSilent(false); + mSoundTone.setShowSilent(false); + + mSoundMode.setOnPreferenceChangeListener(this); + mRingerMode.setOnPreferenceChangeListener(this); + mVibrateMode.setOnPreferenceChangeListener(this); + mLightsMode.setOnPreferenceChangeListener(this); + mSoundTone.setOnPreferenceChangeListener(this); + mRingTone.setOnPreferenceChangeListener(this); + + updateState(); + } + } + + private void updateState() { + + mVibrateMode.setValue(mProfileGroup.getVibrateMode().name()); + mSoundMode.setValue(mProfileGroup.getSoundMode().name()); + mRingerMode.setValue(mProfileGroup.getRingerMode().name()); + mLightsMode.setValue(mProfileGroup.getLightsMode().name()); + + mVibrateMode.setSummary(mVibrateMode.getEntry()); + mSoundMode.setSummary(mSoundMode.getEntry()); + mRingerMode.setSummary(mRingerMode.getEntry()); + mLightsMode.setSummary(mLightsMode.getEntry()); + + if (mProfileGroup.getSoundOverride() != null) { + mSoundTone.setRingtone(mProfileGroup.getSoundOverride()); + } + + if (mProfileGroup.getRingerOverride() != null) { + mRingTone.setRingtone(mProfileGroup.getRingerOverride()); + } + + } + + @Override + public boolean onPreferenceChange(Preference preference, Object newValue) { + if (preference == mVibrateMode) { + mProfileGroup.setVibrateMode(Mode.valueOf((String) newValue)); + } else if (preference == mSoundMode) { + mProfileGroup.setSoundMode(Mode.valueOf((String) newValue)); + } else if (preference == mRingerMode) { + mProfileGroup.setRingerMode(Mode.valueOf((String) newValue)); + } else if (preference == mLightsMode) { + mProfileGroup.setLightsMode(Mode.valueOf((String) newValue)); + } else if (preference == mRingTone) { + Uri uri = Uri.parse((String) newValue); + mProfileGroup.setRingerOverride(uri); + } else if (preference == mSoundTone) { + Uri uri = Uri.parse((String) newValue); + mProfileGroup.setSoundOverride(uri); + } + + mProfileManager.updateProfile(mProfile); + + updateState(); + return true; + } +} diff --git a/src/com/android/settings/profiles/ProfileRingModePreference.java b/src/com/android/settings/profiles/ProfileRingModePreference.java new file mode 100644 index 0000000..d471998 --- /dev/null +++ b/src/com/android/settings/profiles/ProfileRingModePreference.java @@ -0,0 +1,182 @@ +/* + * Copyright (C) 2012 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.android.settings.profiles; + +import android.app.AlertDialog; +import android.app.Dialog; +import android.content.Context; +import android.content.DialogInterface; +import android.preference.Preference; +import android.util.AttributeSet; +import android.view.View; +import android.view.ViewGroup; +import android.widget.CheckBox; +import android.widget.CompoundButton; +import android.widget.LinearLayout; + +import com.android.settings.R; + +public class ProfileRingModePreference extends Preference implements + CompoundButton.OnCheckedChangeListener, View.OnClickListener { + + private boolean mProtectFromCheckedChange = false; + + private CheckBox mCheckBox; + + final static String TAG = "ProfileRingModePreference"; + + private ProfileConfig.RingModeItem mRingModeItem; + + final static int defaultChoice = -1; + + private int currentChoice; + + /** + * @param context + * @param attrs + * @param defStyle + */ + public ProfileRingModePreference(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + init(); + } + + /** + * @param context + * @param attrs + */ + public ProfileRingModePreference(Context context, AttributeSet attrs) { + super(context, attrs); + init(); + } + + /** + * @param context + */ + public ProfileRingModePreference(Context context) { + super(context); + init(); + } + + @Override + public View getView(View convertView, ViewGroup parent) { + View view = super.getView(convertView, parent); + + View widget = view.findViewById(R.id.profile_checkbox); + if ((widget != null) && widget instanceof CheckBox) { + mCheckBox = (CheckBox) widget; + mCheckBox.setOnCheckedChangeListener(this); + + mProtectFromCheckedChange = true; + mCheckBox.setChecked(isChecked()); + mProtectFromCheckedChange = false; + } + + View textLayout = view.findViewById(R.id.text_layout); + if ((textLayout != null) && textLayout instanceof LinearLayout) { + textLayout.setOnClickListener(this); + } + + return view; + } + + private void init() { + setLayoutResource(R.layout.preference_streamvolume); + } + + public boolean isChecked() { + return mRingModeItem != null && mRingModeItem.mSettings.isOverride(); + } + + public void setRingModeItem(ProfileConfig.RingModeItem ringModeItem) { + mRingModeItem = ringModeItem; + + if (mCheckBox != null) { + mCheckBox.setChecked(mRingModeItem.mSettings.isOverride()); + } + } + + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if (mProtectFromCheckedChange) { + return; + } + + mRingModeItem.mSettings.setOverride(isChecked); + + callChangeListener(isChecked); + } + + protected Dialog createRingModeDialog() { + AlertDialog.Builder builder = new AlertDialog.Builder(getContext()); + final String[] ringModeValues = getContext().getResources().getStringArray(R.array.ring_mode_values); + String currentValue = mRingModeItem.mSettings.getValue(); + if (currentValue != null) { + for (int i = 0; i < ringModeValues.length; i++) { + if (currentValue.equals(ringModeValues[i])) { + currentChoice = i; + break; + } + } + } + + builder.setTitle(R.string.ring_mode_title); + builder.setSingleChoiceItems(R.array.ring_mode_entries, currentChoice, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int item) { + currentChoice = item; + } + }); + + builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int item) { + if (currentChoice != defaultChoice) { + String value = ringModeValues[currentChoice]; + mRingModeItem.mSettings.setValue(value); + setSummary(getContext().getResources().getStringArray(R.array.ring_mode_entries)[currentChoice]); + } + } + }); + + builder.setNegativeButton(android.R.string.cancel, null); + return builder.create(); + } + + public ProfileConfig.RingModeItem getRingModeItem() { + return mRingModeItem; + } + + @Override + public void onClick(android.view.View v) { + if ((v != null) && (R.id.text_layout == v.getId())) { + createRingModeDialog().show(); + } + } + + public void setSummary(Context context) { + String[] entries = context.getResources().getStringArray(R.array.ring_mode_entries); + String[] values = context.getResources().getStringArray(R.array.ring_mode_values); + int l = entries.length; + String value = mRingModeItem.mSettings.getValue(); + for (int i = 0; i < l; i++) { + if (value.equals(values[i])) { + setSummary(entries[i]); + break; + } + } + } +} diff --git a/src/com/android/settings/profiles/ProfileRingtonePreference.java b/src/com/android/settings/profiles/ProfileRingtonePreference.java new file mode 100644 index 0000000..91ccbe6 --- /dev/null +++ b/src/com/android/settings/profiles/ProfileRingtonePreference.java @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2012 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.android.settings.profiles; + +import android.content.Context; +import android.content.Intent; +import android.media.RingtoneManager; +import android.net.Uri; +import android.preference.RingtonePreference; +import android.util.AttributeSet; + +public class ProfileRingtonePreference extends RingtonePreference { + private static final String TAG = "ProfileRingtonePreference"; + + public ProfileRingtonePreference(Context context, AttributeSet attrs) { + super(context, attrs); + } + + @Override + protected void onPrepareRingtonePickerIntent(Intent ringtonePickerIntent) { + super.onPrepareRingtonePickerIntent(ringtonePickerIntent); + + /* + * Since this preference is for choosing the default ringtone, it + * doesn't make sense to show a 'Default' item. + */ + ringtonePickerIntent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, false); + } + + private Uri mRingtone; + + void setRingtone(Uri uri) { + mRingtone = uri; + } + + @Override + protected Uri onRestoreRingtone() { + if (mRingtone == null) { + return super.onRestoreRingtone(); + } else { + return mRingtone; + } + } +} diff --git a/src/com/android/settings/profiles/ProfilesList.java b/src/com/android/settings/profiles/ProfilesList.java new file mode 100644 index 0000000..93d7390 --- /dev/null +++ b/src/com/android/settings/profiles/ProfilesList.java @@ -0,0 +1,132 @@ +/* + * Copyright (C) 2012 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.android.settings.profiles; + +import java.util.UUID; + +import android.app.Profile; +import android.app.ProfileManager; +import android.os.Bundle; +import android.preference.Preference; +import android.preference.PreferenceScreen; +import android.provider.Settings; + +import com.android.settings.R; +import com.android.settings.SettingsPreferenceFragment; +import com.android.settings.Utils; + +public class ProfilesList extends SettingsPreferenceFragment implements + Preference.OnPreferenceChangeListener { + static final String TAG = "ProfilesSettings"; + + public static final String EXTRA_POSITION = "position"; + public static final String PROFILE_SERVICE = "profile"; + public static final String RESTORE_CARRIERS_URI = "content://telephony/carriers/restore"; + public static final String PREFERRED_APN_URI = "content://telephony/carriers/preferapn"; + + private String mSelectedKey; + + private ProfileManager mProfileManager; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + if (getPreferenceManager() != null) { + addPreferencesFromResource(R.xml.profiles_settings); + mProfileManager = (ProfileManager) getActivity().getSystemService(PROFILE_SERVICE); + + } + } + + @Override + public void onResume() { + super.onResume(); + refreshList(); + + // On tablet devices remove the padding + if (Utils.isTablet(getActivity())) { + getListView().setPadding(0, 0, 0, 0); + } + } + + public void refreshList() { + // Only enable the preferences if system profiles are enabled + boolean enabled = Settings.System.getInt(getActivity().getContentResolver(), + Settings.System.SYSTEM_PROFILES_ENABLED, 1) == 1; + + PreferenceScreen plist = getPreferenceScreen(); + if (plist != null) { + plist.removeAll(); + + if (enabled && mProfileManager != null) { + // Get active profile, if null + Profile prof = mProfileManager.getActiveProfile(); + mSelectedKey = prof != null ? prof.getUuid().toString() : null; + + for(Profile profile : mProfileManager.getProfiles()) { + Bundle args = new Bundle(); + args.putParcelable("Profile", profile); + + ProfilesPreference ppref = new ProfilesPreference(this, args); + ppref.setKey(profile.getUuid().toString()); + ppref.setTitle(profile.getName()); + ppref.setPersistent(false); + ppref.setOnPreferenceChangeListener(this); + ppref.setSelectable(true); + ppref.setEnabled(true); + + if ((mSelectedKey != null) && mSelectedKey.equals(ppref.getKey())) { + ppref.setChecked(true); + } + + plist.addPreference(ppref); + } + } else { + // Not enabled, display a message preference + Preference npref = new Preference(getActivity()); + npref.setLayoutResource(R.layout.preference_empty_list); + npref.setTitle(R.string.profile_empty_list_profiles_off); + npref.setEnabled(false); + + plist.addPreference(npref); + } + } + } + + public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) { + return super.onPreferenceTreeClick(preferenceScreen, preference); + } + + public boolean onPreferenceChange(Preference preference, Object newValue) { + if (newValue instanceof String) { + setSelectedProfile((String) newValue); + refreshList(); + } + return true; + } + + private void setSelectedProfile(String key) { + try { + UUID selectedUuid = UUID.fromString(key); + mProfileManager.setActiveProfile(selectedUuid); + mSelectedKey = key; + } catch (IllegalArgumentException ex) { + ex.printStackTrace(); + } + } +} diff --git a/src/com/android/settings/profiles/ProfilesPreference.java b/src/com/android/settings/profiles/ProfilesPreference.java new file mode 100644 index 0000000..a7a407e --- /dev/null +++ b/src/com/android/settings/profiles/ProfilesPreference.java @@ -0,0 +1,150 @@ +/* + * Copyright (C) 2012 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.android.settings.profiles; + +import android.content.ActivityNotFoundException; +import android.os.Bundle; +import android.preference.CheckBoxPreference; +import android.preference.PreferenceActivity; +import android.view.View; +import android.view.View.OnClickListener; +import android.widget.ImageView; +import android.widget.TextView; + +import com.android.settings.R; +import com.android.settings.SettingsPreferenceFragment; + +public class ProfilesPreference extends CheckBoxPreference { + private static final String TAG = ProfilesPreference.class.getSimpleName(); + private static final float DISABLED_ALPHA = 0.4f; + private final SettingsPreferenceFragment mFragment; + private final Bundle mSettingsBundle; + + // constant value that can be used to check return code from sub activity. + private static final int PROFILE_DETAILS = 1; + + private ImageView mProfilesSettingsButton; + private TextView mTitleText; + private TextView mSummaryText; + private View mProfilesPref; + + private final OnClickListener mPrefOnclickListener = new OnClickListener() { + @Override + public void onClick(View arg0) { + if (!isEnabled() || isChecked()) { + return; + } + setChecked(true); + callChangeListener(getKey()); + } + }; + + public ProfilesPreference(SettingsPreferenceFragment fragment, Bundle settingsBundle) { + super(fragment.getActivity(), null, R.style.ProfilesPreferenceStyle); + setLayoutResource(R.layout.preference_profiles); + setWidgetLayoutResource(R.layout.preference_profiles_widget); + mFragment = fragment; + mSettingsBundle = settingsBundle; + } + + @Override + protected void onBindView(View view) { + super.onBindView(view); + mProfilesPref = view.findViewById(R.id.profiles_pref); + mProfilesPref.setOnClickListener(mPrefOnclickListener); + mProfilesSettingsButton = (ImageView)view.findViewById(R.id.profiles_settings); + mTitleText = (TextView)view.findViewById(android.R.id.title); + mSummaryText = (TextView)view.findViewById(android.R.id.summary); + + if (mSettingsBundle != null) { + mProfilesSettingsButton.setOnClickListener( + new OnClickListener() { + @Override + public void onClick(View arg0) { + try { + startProfileConfigActivity(); + } catch (ActivityNotFoundException e) { + // If the settings activity does not exist, we can just + // do nothing... + } + } + }); + } + if (mSettingsBundle == null) { + mProfilesSettingsButton.setVisibility(View.GONE); + } else { + updatePreferenceViews(); + } + } + + @Override + public void setEnabled(boolean enabled) { + super.setEnabled(enabled); + if (enabled) { + updatePreferenceViews(); + } else { + disablePreferenceViews(); + } + } + + private void disablePreferenceViews() { + if (mProfilesSettingsButton != null) { + mProfilesSettingsButton.setEnabled(false); + mProfilesSettingsButton.setAlpha(DISABLED_ALPHA); + } + if (mProfilesPref != null) { + mProfilesPref.setEnabled(false); + mProfilesPref.setBackgroundColor(0); + } + } + + private void updatePreferenceViews() { + final boolean checked = isChecked(); + if (mProfilesSettingsButton != null) { + mProfilesSettingsButton.setEnabled(true); + mProfilesSettingsButton.setClickable(true); + mProfilesSettingsButton.setFocusable(true); + } + if (mTitleText != null) { + mTitleText.setEnabled(true); + } + if (mSummaryText != null) { + mSummaryText.setEnabled(checked); + } + if (mProfilesPref != null) { + mProfilesPref.setEnabled(true); + mProfilesPref.setLongClickable(checked); + final boolean enabled = isEnabled(); + mProfilesPref.setOnClickListener(enabled ? mPrefOnclickListener : null); + if (!enabled) { + mProfilesPref.setBackgroundColor(0); + } + } + } + + // utility method used to start sub activity + private void startProfileConfigActivity() { + PreferenceActivity pa = (PreferenceActivity) mFragment.getActivity(); + pa.startPreferencePanel(ProfileConfig.class.getName(), mSettingsBundle, + R.string.profile_profile_manage, null, mFragment, PROFILE_DETAILS); + } + + @Override + public void setChecked(boolean checked) { + super.setChecked(checked); + } +} diff --git a/src/com/android/settings/profiles/ProfilesSettings.java b/src/com/android/settings/profiles/ProfilesSettings.java new file mode 100644 index 0000000..b98724e --- /dev/null +++ b/src/com/android/settings/profiles/ProfilesSettings.java @@ -0,0 +1,469 @@ +/* + * Copyright (C) 2012 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.android.settings.profiles; + +import android.app.ActionBar; +import android.app.Activity; +import android.app.AlertDialog; +import android.app.Fragment; +import android.app.FragmentTransaction; +import android.app.NotificationGroup; +import android.app.Profile; +import android.app.ProfileManager; +import android.content.Context; +import android.content.DialogInterface; +import android.os.Bundle; +import android.preference.PreferenceActivity; +import android.provider.Settings; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; +import android.widget.EditText; +import android.widget.Switch; +import android.widget.TabHost; +import android.widget.TextView; +import android.widget.Toast; + +import com.android.settings.R; +import com.android.settings.SettingsPreferenceFragment; +import com.android.settings.Utils; + +import java.util.HashMap; + +public class ProfilesSettings extends SettingsPreferenceFragment { + + private static final String TAG = "ProfilesSettings"; + private static final String TAB_PROFILES = "profiles"; + private static final String TAB_APPGROUPS = "appgroups"; + private static final String PROFILE_SERVICE = "profile"; + + private static final int MENU_RESET = Menu.FIRST; + private static final int MENU_ADD_PROFILE = Menu.FIRST + 1; + private static final int MENU_ADD_APPGROUP = Menu.FIRST + 2; + + private static Menu mOptionsMenu; + + private ProfileManager mProfileManager; + private ProfileEnabler mProfileEnabler; + + private Switch mActionBarSwitch; + private static TabHost mTabHost; + + ViewGroup mContainer; + + TabManager mTabManager; + + static Bundle mSavedState; + + private static Activity mActivity; + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + + mContainer = container; + mTabHost = (TabHost) inflater.inflate(R.layout.profile_tabs, container, false); + if (mTabHost != null) { + mProfileManager = (ProfileManager) getActivity().getSystemService(PROFILE_SERVICE); + mActivity = getActivity(); + + setupTabs(); + + // If we are resuming from a paused state, restore the last active tab + if (mSavedState != null) { + mTabHost.setCurrentTabByTag(mSavedState.getString("tab")); + } + + setHasOptionsMenu(true); + } + + return mTabHost; + } + + @Override + public void onActivityCreated(Bundle savedInstanceState) { + // We don't call super.onActivityCreated() here, since it assumes we already set up + // Preference (probably in onCreate()), while WifiSettings exceptionally set it up in + // this method. + // On/off switch + Activity activity = getActivity(); + //Switch + mActionBarSwitch = new Switch(activity); + + if (activity instanceof PreferenceActivity) { + PreferenceActivity preferenceActivity = (PreferenceActivity) activity; + if (preferenceActivity.onIsHidingHeaders() || !preferenceActivity.onIsMultiPane()) { + final int padding = activity.getResources().getDimensionPixelSize( + R.dimen.action_bar_switch_padding); + mActionBarSwitch.setPaddingRelative(0, 0, padding, 0); + activity.getActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM, + ActionBar.DISPLAY_SHOW_CUSTOM); + activity.getActionBar().setCustomView(mActionBarSwitch, new ActionBar.LayoutParams( + ActionBar.LayoutParams.WRAP_CONTENT, + ActionBar.LayoutParams.WRAP_CONTENT, + Gravity.CENTER_VERTICAL | Gravity.END)); + } + } + + mProfileEnabler = new ProfileEnabler(activity, this, mActionBarSwitch); + + // After confirming PreferenceScreen is available, we call super. + super.onActivityCreated(savedInstanceState); + } + + @Override + public void onResume() { + super.onResume(); + if (mProfileEnabler != null) { + mProfileEnabler.resume(); + } + + // If running on a phone, remove padding around tabs + if (!Utils.isTablet(getActivity())) { + mContainer.setPadding(0, 0, 0, 0); + } + } + + + @Override + public void onPause() { + super.onPause(); + if (mProfileEnabler != null) { + mProfileEnabler.pause(); + } + + // store the current tab so we can get back to it later + if (mSavedState == null) { + mSavedState = new Bundle(); + } + mSavedState.putString("tab", mTabHost.getCurrentTabTag()); + } + + @Override + public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { + mOptionsMenu = menu; + + menu.add(0, MENU_RESET, 0, R.string.profile_reset_title) + .setIcon(R.drawable.ic_settings_backup) // use the backup icon + .setAlphabeticShortcut('r') + .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | + MenuItem.SHOW_AS_ACTION_WITH_TEXT); + + menu.add(0, MENU_ADD_PROFILE, 0, R.string.profiles_add) + .setIcon(R.drawable.ic_menu_add) + .setAlphabeticShortcut('a') + .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | + MenuItem.SHOW_AS_ACTION_WITH_TEXT); + + menu.add(0, MENU_ADD_APPGROUP, 0, R.string.profiles_add) + .setIcon(R.drawable.ic_menu_add) + .setAlphabeticShortcut('a') + .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | + MenuItem.SHOW_AS_ACTION_WITH_TEXT); + + updateOptionsMenu(); + } + + @Override + public void onPrepareOptionsMenu(Menu menu) { + updateOptionsMenu(); + } + + @Override + public void onDestroyOptionsMenu() { + mOptionsMenu = null; + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case MENU_RESET: + resetAll(); + return true; + + case MENU_ADD_PROFILE: + addProfile(); + return true; + + case MENU_ADD_APPGROUP: + addAppGroup(); + return true; + + default: + return false; + } + } + + static void updateOptionsMenu() { + if (mOptionsMenu == null) { + return; + } + + boolean enabled = Settings.System.getInt(mActivity.getContentResolver(), + Settings.System.SYSTEM_PROFILES_ENABLED, 1) == 1; + + String tabId = mTabHost.getCurrentTabTag(); + if (TAB_PROFILES.equals(tabId) && enabled) { + mOptionsMenu.findItem(MENU_ADD_PROFILE).setVisible(true); + mOptionsMenu.findItem(MENU_ADD_APPGROUP).setVisible(false); + mOptionsMenu.findItem(MENU_RESET).setVisible(true); + + } else if (TAB_APPGROUPS.equals(tabId) && enabled) { + mOptionsMenu.findItem(MENU_ADD_PROFILE).setVisible(false); + mOptionsMenu.findItem(MENU_ADD_APPGROUP).setVisible(true); + mOptionsMenu.findItem(MENU_RESET).setVisible(true); + + } else { + // System Profiles are disabled, hide options menu items + mOptionsMenu.findItem(MENU_ADD_PROFILE).setVisible(false); + mOptionsMenu.findItem(MENU_ADD_APPGROUP).setVisible(false); + mOptionsMenu.findItem(MENU_RESET).setVisible(false); + } + } + + public void setupTabs() { + mTabHost.setup(); + mTabHost.clearAllTabs(); + + if (mTabManager == null) { + mTabManager = new TabManager(getActivity(), mTabHost, android.R.id.tabcontent); + } + mTabManager.addTab(mTabHost.newTabSpec(TAB_PROFILES).setIndicator(getString(R.string.profile_profiles_manage)), + ProfilesList.class, null); + mTabManager.addTab(mTabHost.newTabSpec(TAB_APPGROUPS).setIndicator(getString(R.string.profile_appgroups_manage)), + AppGroupList.class, null); + + // Set the profiles tab as the default + mTabHost.setCurrentTabByTag(TAB_PROFILES); + + updateOptionsMenu(); + } + + public void refreshActiveTab() { + if (mTabManager != null) { + mTabManager.refreshTab(mTabHost.getCurrentTabTag()); + } + + updateOptionsMenu(); + } + + private void addProfile() { + Context context = getActivity(); + if (context != null) { + final EditText entry = new EditText(context); + entry.setSingleLine(); + + AlertDialog.Builder builder = new AlertDialog.Builder(context); + builder.setTitle(R.string.menu_new_profile); + builder.setMessage(R.string.profile_profile_name_prompt); + builder.setView(entry, 34, 16, 34, 16); + builder.setPositiveButton(android.R.string.ok, + new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + String name = entry.getText().toString(); + if (!mProfileManager.profileExists(name)) { + Profile profile = new Profile(name); + mProfileManager.addProfile(profile); + mTabManager.refreshTab(TAB_PROFILES); + } else { + Toast.makeText(getActivity(), R.string.duplicate_profile_name, Toast.LENGTH_LONG).show(); + } + } + }); + builder.setNegativeButton(android.R.string.cancel, null); + AlertDialog dialog = builder.create(); + dialog.show(); + ((TextView)dialog.findViewById(android.R.id.message)).setTextAppearance(getActivity(), + android.R.style.TextAppearance_DeviceDefault_Small); + } + } + + private void resetAll() { + AlertDialog.Builder alert = new AlertDialog.Builder(getActivity()); + alert.setTitle(R.string.profile_reset_title); + alert.setIconAttribute(android.R.attr.alertDialogIcon); + alert.setMessage(R.string.profile_reset_message); + alert.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + mProfileManager.resetAll(); + mTabManager.refreshTab(mTabHost.getCurrentTabTag()); + } + }); + alert.setNegativeButton(R.string.cancel, null); + alert.create().show(); + } + + private void addAppGroup() { + Context context = getActivity(); + if (context != null) { + final EditText entry = new EditText(context); + entry.setSingleLine(); + + AlertDialog.Builder builder = new AlertDialog.Builder(context); + builder.setTitle(R.string.profile_new_appgroup); + builder.setMessage(R.string.profile_appgroup_name_prompt); + builder.setView(entry, 34, 16, 34, 16); + builder.setPositiveButton(android.R.string.ok, + new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + String name = entry.getText().toString(); + if (!mProfileManager.notificationGroupExists(name)) { + NotificationGroup newGroup = new NotificationGroup(entry.getText().toString()); + mProfileManager.addNotificationGroup(newGroup); + mTabManager.refreshTab(TAB_APPGROUPS); + } else { + Toast.makeText(getActivity(), R.string.duplicate_appgroup_name, Toast.LENGTH_LONG).show(); + } + } + }); + builder.setNegativeButton(android.R.string.cancel, null); + AlertDialog dialog = builder.create(); + dialog.show(); + ((TextView)dialog.findViewById(android.R.id.message)).setTextAppearance(getActivity(), + android.R.style.TextAppearance_DeviceDefault_Small); + } + } + + /** + * This is a helper class that implements a generic mechanism for + * associating fragments with the tabs in a tab host. + */ + public static class TabManager implements TabHost.OnTabChangeListener { + private final Activity mActivity; + private final TabHost mTabHost; + private final int mContainerId; + private final HashMap<String, TabInfo> mTabs = new HashMap<String, TabInfo>(); + TabInfo mLastTab; + + static final class TabInfo { + private final String tag; + private final Class<?> clss; + private final Bundle args; + private Fragment fragment; + + TabInfo(String _tag, Class<?> _class, Bundle _args) { + tag = _tag; + clss = _class; + args = _args; + } + } + + static class DummyTabFactory implements TabHost.TabContentFactory { + private final Context mContext; + + public DummyTabFactory(Context context) { + mContext = context; + } + + @Override + public View createTabContent(String tag) { + View v = new View(mContext); + v.setMinimumWidth(0); + v.setMinimumHeight(0); + return v; + } + } + + public TabManager(Activity activity, TabHost tabHost, int containerId) { + mActivity = activity; + mTabHost = tabHost; + mContainerId = containerId; + mTabHost.setOnTabChangedListener(this); + } + + public void addTab(TabHost.TabSpec tabSpec, Class<?> clss, Bundle args) { + tabSpec.setContent(new DummyTabFactory(mActivity)); + String tag = tabSpec.getTag(); + + TabInfo info = new TabInfo(tag, clss, args); + + // Check to see if we already have a fragment for this tab, probably + // from a previously saved state. If so, deactivate it, because our + // initial state is that a tab isn't shown. + info.fragment = mActivity.getFragmentManager().findFragmentByTag(tag); + if (info.fragment != null && !info.fragment.isDetached()) { + FragmentTransaction ft = mActivity.getFragmentManager().beginTransaction(); + ft.detach(info.fragment); + ft.commit(); + } + + mTabs.put(tag, info); + mTabHost.addTab(tabSpec); + } + + @Override + public void onTabChanged(String tabId) { + TabInfo newTab = mTabs.get(tabId); + if (mLastTab != newTab) { + FragmentTransaction ft = mActivity.getFragmentManager().beginTransaction(); + if (mLastTab != null) { + if (mLastTab.fragment != null) { + ft.detach(mLastTab.fragment); + } + } + + if (newTab != null) { + if (newTab.fragment == null) { + newTab.fragment = Fragment.instantiate(mActivity, + newTab.clss.getName(), newTab.args); + ft.add(mContainerId, newTab.fragment, newTab.tag); + } else { + ft.attach(newTab.fragment); + } + } + + mLastTab = newTab; + ft.commit(); + + // Toggle the appropriate menu options + updateOptionsMenu(); + } + } + + public void refreshTab(String tabId) { + TabInfo currentTab = mTabs.get(tabId); + + if (currentTab != null) { + FragmentTransaction ft = mActivity.getFragmentManager().beginTransaction(); + if (currentTab.fragment != null) { + ft.detach(currentTab.fragment); + } + + if (currentTab.fragment == null) { + currentTab.fragment = Fragment.instantiate(mActivity, + currentTab.clss.getName(), currentTab.args); + ft.add(mContainerId, currentTab.fragment, currentTab.tag); + + } else { + ft.attach(currentTab.fragment); + } + + ft.commit(); + + // Toggle the appropriate menu options + updateOptionsMenu(); + } + } + + } +} diff --git a/src/com/android/settings/profiles/StreamVolumePreference.java b/src/com/android/settings/profiles/StreamVolumePreference.java new file mode 100644 index 0000000..6788aca --- /dev/null +++ b/src/com/android/settings/profiles/StreamVolumePreference.java @@ -0,0 +1,158 @@ +/* + * Copyright (C) 2012 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.android.settings.profiles; + +import android.app.AlertDialog; +import android.app.Dialog; +import android.content.Context; +import android.content.DialogInterface; +import android.media.AudioManager; +import android.preference.Preference; +import android.util.AttributeSet; +import android.view.View; +import android.view.ViewGroup; +import android.widget.CheckBox; +import android.widget.CompoundButton; +import android.widget.LinearLayout; +import android.widget.SeekBar; + +import com.android.settings.R; + +public class StreamVolumePreference extends Preference implements + CompoundButton.OnCheckedChangeListener, View.OnClickListener { + + private boolean mProtectFromCheckedChange = false; + + private CheckBox mCheckBox; + + final static String TAG = "StreamVolumePreference"; + + private ProfileConfig.StreamItem mStreamItem; + + private SeekBar mBar; + + /** + * @param context + * @param attrs + * @param defStyle + */ + public StreamVolumePreference(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + init(); + } + + /** + * @param context + * @param attrs + */ + public StreamVolumePreference(Context context, AttributeSet attrs) { + super(context, attrs); + init(); + } + + /** + * @param context + */ + public StreamVolumePreference(Context context) { + super(context); + init(); + } + + @Override + public View getView(View convertView, ViewGroup parent) { + View view = super.getView(convertView, parent); + + View widget = view.findViewById(R.id.profile_checkbox); + if ((widget != null) && widget instanceof CheckBox) { + mCheckBox = (CheckBox) widget; + mCheckBox.setOnCheckedChangeListener(this); + + mProtectFromCheckedChange = true; + mCheckBox.setChecked(isChecked()); + mProtectFromCheckedChange = false; + } + + View textLayout = view.findViewById(R.id.text_layout); + if ((textLayout != null) && textLayout instanceof LinearLayout) { + textLayout.setOnClickListener(this); + } + + return view; + } + + private void init() { + setLayoutResource(R.layout.preference_streamvolume); + } + + public boolean isChecked() { + return mStreamItem != null && mStreamItem.mSettings.isOverride(); + } + + public void setStreamItem(ProfileConfig.StreamItem streamItem) { + mStreamItem = streamItem; + + if (mCheckBox != null) { + mCheckBox.setChecked(mStreamItem.mSettings.isOverride()); + } + } + + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if (mProtectFromCheckedChange) { + return; + } + + mStreamItem.mSettings.setOverride(isChecked); + + callChangeListener(isChecked); + } + + protected Dialog createVolumeDialog() { + AlertDialog.Builder builder = new AlertDialog.Builder(getContext()); + final AudioManager am = (AudioManager) getContext().getSystemService(Context.AUDIO_SERVICE); + builder.setTitle(mStreamItem.mLabel); + mBar = new SeekBar(getContext()); + mBar.setPaddingRelative(32, 16, 32, 16); // TODO: confirm appropriate padding + mBar.setMax(am.getStreamMaxVolume(mStreamItem.mStreamId)); + mBar.setProgress(mStreamItem.mSettings.getValue()); + builder.setView(mBar); + builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + int value = mBar.getProgress(); + mStreamItem.mSettings.setValue(value); + setSummary(getContext().getString(R.string.volume_override_summary) + " " + value + "/" + mBar.getMax()); + } + }); + builder.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + } + }); + return builder.create(); + } + + public ProfileConfig.StreamItem getStreamItem() { + return mStreamItem; + } + + @Override + public void onClick(android.view.View v) { + if ((v != null) && (R.id.text_layout == v.getId())) { + createVolumeDialog().show(); + } + } +} diff --git a/src/com/android/settings/wfd/WifiDisplaySettings.java b/src/com/android/settings/wfd/WifiDisplaySettings.java index f1d0e70..9aaf1f1 100755 --- a/src/com/android/settings/wfd/WifiDisplaySettings.java +++ b/src/com/android/settings/wfd/WifiDisplaySettings.java @@ -31,6 +31,8 @@ import android.hardware.display.WifiDisplayStatus; import android.net.Uri; import android.os.Bundle; import android.os.Handler; +import android.os.SystemProperties; +import android.preference.CheckBoxPreference; import android.preference.Preference; import android.preference.PreferenceActivity; import android.preference.PreferenceCategory; @@ -74,6 +76,9 @@ public final class WifiDisplaySettings extends SettingsPreferenceFragment { private Switch mActionBarSwitch; + private CheckBoxPreference mDisableHDCP; + private static final String DISABLE_HDCP_PREF = "persist.sys.wfd.nohdcp"; + public WifiDisplaySettings() { } @@ -98,7 +103,7 @@ public final class WifiDisplaySettings extends SettingsPreferenceFragment { if (preferenceActivity.onIsHidingHeaders() || !preferenceActivity.onIsMultiPane()) { final int padding = activity.getResources().getDimensionPixelSize( R.dimen.action_bar_switch_padding); - mActionBarSwitch.setPadding(0, 0, padding, 0); + mActionBarSwitch.setPaddingRelative(0, 0, padding, 0); activity.getActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM, ActionBar.DISPLAY_SHOW_CUSTOM); activity.getActionBar().setCustomView(mActionBarSwitch, @@ -185,6 +190,10 @@ public final class WifiDisplaySettings extends SettingsPreferenceFragment { mDisplayManager.connectWifiDisplay(display.getDeviceAddress()); } } + else if (preference == mDisableHDCP) { + SystemProperties.set(DISABLE_HDCP_PREF, mDisableHDCP.isChecked() ? "1" : "0"); + return true; + } return super.onPreferenceTreeClick(preferenceScreen, preference); } @@ -209,12 +218,20 @@ public final class WifiDisplaySettings extends SettingsPreferenceFragment { final WifiDisplay[] pairedDisplays = mWifiDisplayStatus.getRememberedDisplays(); final WifiDisplay[] availableDisplays = mWifiDisplayStatus.getAvailableDisplays(); + mDisableHDCP = new CheckBoxPreference(getActivity().getApplicationContext()); + mDisableHDCP.setTitle(R.string.pref_wifi_disable_hdcp_title); + mDisableHDCP.setSummary(R.string.pref_wifi_disable_hdcp_summary); + mDisableHDCP.setChecked(Integer.parseInt(SystemProperties.get(DISABLE_HDCP_PREF, "0")) != 0); + mDisableHDCP.setOrder(0); + preferenceScreen.addPreference(mDisableHDCP); + if (mPairedDevicesCategory == null) { mPairedDevicesCategory = new PreferenceCategory(getActivity()); mPairedDevicesCategory.setTitle(R.string.wifi_display_paired_devices); } else { mPairedDevicesCategory.removeAll(); } + mPairedDevicesCategory.setOrder(1); preferenceScreen.addPreference(mPairedDevicesCategory); for (WifiDisplay d : pairedDisplays) { @@ -231,6 +248,7 @@ public final class WifiDisplaySettings extends SettingsPreferenceFragment { } else { mAvailableDevicesCategory.removeAll(); } + mAvailableDevicesCategory.setOrder(2); preferenceScreen.addPreference(mAvailableDevicesCategory); for (WifiDisplay d : availableDisplays) { diff --git a/src/com/android/settings/wifi/AdvancedWifiSettings.java b/src/com/android/settings/wifi/AdvancedWifiSettings.java index 809496a..3777eb2 100644 --- a/src/com/android/settings/wifi/AdvancedWifiSettings.java +++ b/src/com/android/settings/wifi/AdvancedWifiSettings.java @@ -17,6 +17,7 @@ package com.android.settings.wifi; import android.content.Context; +import android.content.Intent; import android.net.wifi.WifiInfo; import android.net.wifi.WifiManager; import android.net.wifi.WifiWatchdogStateMachine; @@ -42,10 +43,12 @@ public class AdvancedWifiSettings extends SettingsPreferenceFragment private static final String KEY_MAC_ADDRESS = "mac_address"; private static final String KEY_CURRENT_IP_ADDRESS = "current_ip_address"; private static final String KEY_FREQUENCY_BAND = "frequency_band"; + private static final String KEY_COUNTRY_CODE = "wifi_countrycode"; private static final String KEY_NOTIFY_OPEN_NETWORKS = "notify_open_networks"; private static final String KEY_SLEEP_POLICY = "sleep_policy"; private static final String KEY_POOR_NETWORK_DETECTION = "wifi_poor_network_detection"; private static final String KEY_SUSPEND_OPTIMIZATIONS = "suspend_optimizations"; + private static final String KEY_WIFI_PRIORITY = "wifi_priority"; private WifiManager mWifiManager; @@ -110,6 +113,17 @@ public class AdvancedWifiSettings extends SettingsPreferenceFragment } } + ListPreference ccodePref = (ListPreference) findPreference(KEY_COUNTRY_CODE); + if (ccodePref != null) { + ccodePref.setOnPreferenceChangeListener(this); + String value = mWifiManager.getCountryCode(); + if (value != null) { + ccodePref.setValue(value); + } else { + Log.e(TAG, "Failed to fetch country code"); + } + } + ListPreference sleepPolicyPref = (ListPreference) findPreference(KEY_SLEEP_POLICY); if (sleepPolicyPref != null) { if (Utils.isWifiOnly(getActivity())) { @@ -123,6 +137,9 @@ public class AdvancedWifiSettings extends SettingsPreferenceFragment sleepPolicyPref.setValue(stringValue); updateSleepPolicySummary(sleepPolicyPref, stringValue); } + + Preference wifiPriority = findPreference(KEY_WIFI_PRIORITY); + wifiPriority.setEnabled(mWifiManager.isWifiEnabled()); } private void updateSleepPolicySummary(Preference sleepPolicyPref, String value) { @@ -181,6 +198,16 @@ public class AdvancedWifiSettings extends SettingsPreferenceFragment } } + if (KEY_COUNTRY_CODE.equals(key)) { + try { + mWifiManager.setCountryCode((String) newValue, true); + } catch (IllegalArgumentException e) { + Toast.makeText(getActivity(), R.string.wifi_setting_countrycode_error, + Toast.LENGTH_SHORT).show(); + return false; + } + } + if (KEY_SLEEP_POLICY.equals(key)) { try { String stringValue = (String) newValue; diff --git a/src/com/android/settings/wifi/WifiPriority.java b/src/com/android/settings/wifi/WifiPriority.java new file mode 100644 index 0000000..74f997a --- /dev/null +++ b/src/com/android/settings/wifi/WifiPriority.java @@ -0,0 +1,187 @@ +/* + * 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.android.settings.wifi; + +import android.app.ListFragment; +import android.content.Context; +import android.net.wifi.WifiConfiguration; +import android.net.wifi.WifiManager; +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.BaseAdapter; +import android.widget.ListView; +import android.widget.TextView; + +import com.android.settings.R; +import com.android.settings.cyanogenmod.TouchInterceptor; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; + +public class WifiPriority extends ListFragment { + + private final TouchInterceptor.DropListener mDropListener = + new TouchInterceptor.DropListener() { + public void drop(int from, int to) { + if (from == to) return; + + // Sort networks by user selection + List<WifiConfiguration> mNetworks = mAdapter.getNetworks(); + WifiConfiguration o = mNetworks.remove(from); + mNetworks.add(to, o); + + // Set the new priorities of the networks + int cc = mNetworks.size(); + for (int i = 0; i < cc; i++) { + WifiConfiguration network = mNetworks.get(i); + network.priority = cc - i; + + // Update the priority + mWifiManager.updateNetwork(network); + } + + // Now, save all the Wi-Fi configuration with its new priorities + mWifiManager.saveConfiguration(); + + // Reload the networks + mAdapter.reloadNetworks(); + mNetworksListView.invalidateViews(); + } + }; + + private WifiManager mWifiManager; + private TouchInterceptor mNetworksListView; + private WifiPriorityAdapter mAdapter; + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + return inflater.inflate(R.layout.wifi_network_priority, null); + } + + @Override + public void onActivityCreated(Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); + Context ctx = getActivity().getApplicationContext(); + mWifiManager = (WifiManager)ctx.getSystemService(Context.WIFI_SERVICE); + + // Set the touchable listview + mNetworksListView = (TouchInterceptor)getListView(); + mNetworksListView.setDropListener(mDropListener); + mAdapter = new WifiPriorityAdapter(ctx, mWifiManager); + setListAdapter(mAdapter); + } + + @Override + public void onDestroy() { + mNetworksListView.setDropListener(null); + setListAdapter(null); + super.onDestroy(); + } + + @Override + public void onResume() { + super.onResume(); + + // Reload the networks + mAdapter.reloadNetworks(); + mNetworksListView.invalidateViews(); + } + + private class WifiPriorityAdapter extends BaseAdapter { + + private final WifiManager mWifiManager; + private final LayoutInflater mInflater; + private List<WifiConfiguration> mNetworks; + + public WifiPriorityAdapter(Context ctx, WifiManager wifiManager) { + mWifiManager = wifiManager; + mInflater = LayoutInflater.from(ctx); + reloadNetworks(); + } + + private void reloadNetworks() { + mNetworks = mWifiManager.getConfiguredNetworks(); + if (mNetworks == null) { + mNetworks = new ArrayList<WifiConfiguration>(); + } + + // Sort network list by priority (or by network id if the priority is the same) + Collections.sort(mNetworks, new Comparator<WifiConfiguration>() { + @Override + public int compare(WifiConfiguration lhs, WifiConfiguration rhs) { + // > priority -- > lower position + if (lhs.priority < rhs.priority) return 1; + if (lhs.priority > rhs.priority) return -1; + // < network id -- > lower position + if (lhs.networkId < rhs.networkId) return -1; + if (lhs.networkId > rhs.networkId) return 1; + return 0; + } + }); + } + + /**package**/ List<WifiConfiguration> getNetworks() { + return mNetworks; + } + + @Override + public int getCount() { + return mNetworks.size(); + } + + @Override + public Object getItem(int position) { + return mNetworks.get(position); + } + + @Override + public long getItemId(int position) { + return position; + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + final View v; + if (convertView == null) { + v = mInflater.inflate(R.layout.order_power_widget_button_list_item, null); + } else { + v = convertView; + } + + WifiConfiguration network = (WifiConfiguration)getItem(position); + + final TextView name = (TextView) v.findViewById(R.id.name); + // wpa_suplicant returns the SSID between double quotes. Remove them if are present. + name.setText(filterSSID(network.SSID)); + + return v; + } + + private String filterSSID(String ssid) { + // Filter only if has start and end double quotes + if (ssid == null || !ssid.startsWith("\"") || !ssid.endsWith("\"")) { + return ssid; + } + return ssid.substring(1, ssid.length()-1); + } + } +} diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java index aedb79e..a481b08 100644 --- a/src/com/android/settings/wifi/WifiSettings.java +++ b/src/com/android/settings/wifi/WifiSettings.java @@ -382,7 +382,7 @@ public class WifiSettings extends SettingsPreferenceFragment if (preferenceActivity.onIsHidingHeaders() || !preferenceActivity.onIsMultiPane()) { final int padding = activity.getResources().getDimensionPixelSize( R.dimen.action_bar_switch_padding); - actionBarSwitch.setPadding(0, 0, padding, 0); + actionBarSwitch.setPaddingRelative(0, 0, padding, 0); activity.getActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM, ActionBar.DISPLAY_SHOW_CUSTOM); activity.getActionBar().setCustomView(actionBarSwitch, new ActionBar.LayoutParams( |