diff options
author | Jim Miller <jaggies@google.com> | 2010-02-09 19:08:02 -0800 |
---|---|---|
committer | Jim Miller <jaggies@google.com> | 2010-02-10 14:42:35 -0800 |
commit | 2f9dbcb49174d85218dd18e3b2097d3b9fc789c7 (patch) | |
tree | f38e287a4b829dd448370b9d1c7fc156c3423463 | |
parent | 42241e75d2775b6b44b82b939e66fbb50d4b189b (diff) | |
download | packages_apps_Settings-2f9dbcb49174d85218dd18e3b2097d3b9fc789c7.zip packages_apps_Settings-2f9dbcb49174d85218dd18e3b2097d3b9fc789c7.tar.gz packages_apps_Settings-2f9dbcb49174d85218dd18e3b2097d3b9fc789c7.tar.bz2 |
Fix 2373088: Update SecuritySettings with new layout and minor logic tweaks.
-rw-r--r-- | res/drawable-hdpi/password_field_default.9.png | bin | 0 -> 1213 bytes | |||
-rw-r--r-- | res/drawable-mdpi/password_field_default.9.png | bin | 0 -> 784 bytes | |||
-rw-r--r-- | res/layout-land/choose_lock_password.xml | 102 | ||||
-rw-r--r-- | res/layout-land/choose_lock_pin.xml | 84 | ||||
-rw-r--r-- | res/layout-land/confirm_lock_password.xml | 27 | ||||
-rw-r--r-- | res/layout-land/confirm_lock_pin.xml | 83 | ||||
-rw-r--r-- | res/layout/choose_lock_password.xml | 112 | ||||
-rw-r--r-- | res/layout/choose_lock_pin.xml | 83 | ||||
-rw-r--r-- | res/layout/confirm_lock_password.xml | 27 | ||||
-rw-r--r-- | res/layout/confirm_lock_pin.xml | 83 | ||||
-rw-r--r-- | res/values/strings.xml | 12 | ||||
-rw-r--r-- | src/com/android/settings/ChooseLockPassword.java | 93 | ||||
-rw-r--r-- | src/com/android/settings/ConfirmLockPassword.java | 77 |
13 files changed, 315 insertions, 468 deletions
diff --git a/res/drawable-hdpi/password_field_default.9.png b/res/drawable-hdpi/password_field_default.9.png Binary files differnew file mode 100644 index 0000000..2c424f0 --- /dev/null +++ b/res/drawable-hdpi/password_field_default.9.png diff --git a/res/drawable-mdpi/password_field_default.9.png b/res/drawable-mdpi/password_field_default.9.png Binary files differnew file mode 100644 index 0000000..3193275 --- /dev/null +++ b/res/drawable-mdpi/password_field_default.9.png diff --git a/res/layout-land/choose_lock_password.xml b/res/layout-land/choose_lock_password.xml new file mode 100644 index 0000000..eba936a --- /dev/null +++ b/res/layout-land/choose_lock_password.xml @@ -0,0 +1,102 @@ +<?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="fill_parent" + android:layout_height="fill_parent" + android:orientation="vertical" + android:background="@android:color/background_dark" + android:gravity="center_horizontal"> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="horizontal"> + <!-- "Enter PIN(Password) to unlock" --> + <TextView android:id="@+id/headerText" + android:layout_width="0dip" + android:layout_height="wrap_content" + android:layout_weight="1" + android:orientation="horizontal" + android:layout_marginRight="6dip" + android:layout_marginLeft="6dip" + android:layout_marginTop="10dip" + android:layout_marginBottom="10dip" + android:gravity="left" + android:ellipsize="marquee" + android:textAppearance="?android:attr/textAppearanceLarge" + /> + + <!-- Password entry field --> + <EditText android:id="@+id/password_entry" + android:layout_width="0dip" + android:layout_height="wrap_content" + android:layout_weight="1" + android:singleLine="true" + android:textStyle="bold" + android:inputType="textPassword" + android:gravity="center" + android:layout_gravity="center" + android:textSize="24sp" + android:textAppearance="?android:attr/textAppearanceLarge" + android:background="@drawable/password_field_default" + android:textColor="#ffffffff" + /> + </LinearLayout> + + <!-- Spacer between password entry and keyboard --> + <View + android:layout_width="match_parent" + android:layout_height="0dip" + android:layout_weight="1" /> + + <!-- Alphanumeric keyboard --> + <com.android.internal.widget.PasswordEntryKeyboardView android:id="@+id/keyboard" + android:layout_alignParentBottom="true" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:background="#00000000" + android:keyBackground="@*android:drawable/btn_keyboard_key_fulltrans" + /> + + <RelativeLayout + android:layout_height="wrap_content" + android:layout_width="match_parent" + android:background="@android:drawable/bottom_bar"> + + <Button android:id="@+id/cancel_button" + android:layout_width="150dip" + android:layout_height="wrap_content" + android:layout_margin="5dip" + android:layout_alignParentLeft="true" + android:text="@string/password_cancel_button_label" + /> + + <Button android:id="@+id/next_button" + android:layout_width="150dip" + android:layout_height="wrap_content" + android:layout_margin="5dip" + android:layout_alignParentRight="true" + android:drawableRight="@drawable/ic_btn_next" + android:drawablePadding="10dip" + android:text="@string/password_ok_button_label" + /> + + </RelativeLayout> + +</LinearLayout> diff --git a/res/layout-land/choose_lock_pin.xml b/res/layout-land/choose_lock_pin.xml deleted file mode 100644 index cdc75d3..0000000 --- a/res/layout-land/choose_lock_pin.xml +++ /dev/null @@ -1,84 +0,0 @@ -<?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. -*/ ---> - -<!-- TODO: think about moving to frameworks/base/res --> - -<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="fill_parent" - android:layout_height="fill_parent" - android:orientation="horizontal" - android:background="@android:color/background_dark"> - - <LinearLayout android:id="@+id/topDisplayGroup" - android:layout_width="0dip" - android:layout_weight="1" - android:layout_height="wrap_content" - android:orientation="vertical"> - - <!-- password entry --> - <LinearLayout - android:layout_width="fill_parent" - android:layout_height="wrap_content" - android:orientation="horizontal" - android:layout_marginRight="6dip" - android:layout_marginLeft="6dip" - android:gravity="center_vertical" - android:background="@android:drawable/edit_text"> - - <!-- displays dots as user enters pin --> - <TextView android:id="@+id/pinDisplay" - android:layout_width="0dip" - android:layout_height="wrap_content" - android:layout_weight="1" - android:maxLines="1" - android:textAppearance="?android:attr/textAppearanceLargeInverse" - android:textStyle="bold" - android:inputType="textPassword" - /> - - <ImageButton android:id="@+id/backspace" - android:src="@android:drawable/ic_input_delete" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_marginRight="-3dip" - android:layout_marginBottom="-3dip" - /> - </LinearLayout> - - <!-- header text ('Enter Pin') --> - <TextView android:id="@+id/headerText" - android:layout_width="fill_parent" - android:layout_height="wrap_content" - android:gravity="center" - android:lines="2" - android:textAppearance="?android:attr/textAppearanceLarge"/> - - </LinearLayout> - - <include - android:id="@+id/keyPad" - layout="@layout/twelve_key_entry" - android:layout_width="0dip" - android:layout_weight="1" - android:layout_height="wrap_content" - android:layout_below="@id/topDisplayGroup" - android:layout_marginTop="10dip" - /> - -</LinearLayout> diff --git a/res/layout-land/confirm_lock_password.xml b/res/layout-land/confirm_lock_password.xml new file mode 100644 index 0000000..3a27b9d --- /dev/null +++ b/res/layout-land/confirm_lock_password.xml @@ -0,0 +1,27 @@ +<?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. +*/ +--> + +<!-- This is basically the same layout now, but will likely change --> +<merge xmlns:android="http://schemas.android.com/apk/res/android"> + <include + layout="@layout/choose_lock_password" + android:layout_width="match_parent" + android:layout_height="match_parent" + /> +</merge> diff --git a/res/layout-land/confirm_lock_pin.xml b/res/layout-land/confirm_lock_pin.xml deleted file mode 100644 index beff4a1..0000000 --- a/res/layout-land/confirm_lock_pin.xml +++ /dev/null @@ -1,83 +0,0 @@ -<?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. -*/ ---> - -<!-- TODO: think about moving to frameworks/base/res --> - -<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="fill_parent" - android:layout_height="fill_parent" - android:orientation="vertical" - android:background="@android:color/background_dark" - android:gravity="center_horizontal"> - - <LinearLayout android:id="@+id/topDisplayGroup" - android:layout_width="fill_parent" - android:layout_height="wrap_content" - android:orientation="vertical"> - - <!-- header text ('Enter Pin') --> - <TextView android:id="@+id/headerText" - android:layout_width="fill_parent" - android:layout_height="wrap_content" - android:gravity="center" - android:lines="2" - android:textAppearance="?android:attr/textAppearanceLarge"/> - - <!-- password entry --> - <LinearLayout - android:layout_width="fill_parent" - android:layout_height="wrap_content" - android:orientation="horizontal" - android:layout_marginRight="6dip" - android:layout_marginLeft="6dip" - android:gravity="center_vertical" - android:background="@android:drawable/edit_text"> - - <!-- displays dots as user enters pin --> - <TextView android:id="@+id/pinDisplay" - android:layout_width="0dip" - android:layout_height="wrap_content" - android:layout_weight="1" - android:maxLines="1" - android:textAppearance="?android:attr/textAppearanceLargeInverse" - android:textStyle="bold" - android:inputType="textPassword" - /> - - <ImageButton android:id="@+id/backspace" - android:src="@android:drawable/ic_input_delete" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_marginRight="-3dip" - android:layout_marginBottom="-3dip" - /> - </LinearLayout> - - </LinearLayout> - - <include - android:id="@+id/keyPad" - layout="@layout/twelve_key_entry" - android:layout_width="fill_parent" - android:layout_height="wrap_content" - android:layout_below="@id/topDisplayGroup" - android:layout_marginTop="10dip" - /> - -</LinearLayout> diff --git a/res/layout/choose_lock_password.xml b/res/layout/choose_lock_password.xml index 213f9a4..ffef021 100644 --- a/res/layout/choose_lock_password.xml +++ b/res/layout/choose_lock_password.xml @@ -16,9 +16,6 @@ ** limitations under the License. */ --> - -<!-- TODO: think about moving to frameworks/base/res --> - <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" @@ -26,55 +23,80 @@ android:background="@android:color/background_dark" android:gravity="center_horizontal"> - <LinearLayout android:id="@+id/topDisplayGroup" + <!-- header text ('Enter Pin') --> + <TextView android:id="@+id/headerText" android:layout_width="fill_parent" android:layout_height="wrap_content" - android:orientation="vertical"> - - <!-- header text ('Enter Pin') --> - <TextView android:id="@+id/headerText" - android:layout_width="fill_parent" - android:layout_height="wrap_content" - android:gravity="center" - android:lines="2" - android:textAppearance="?android:attr/textAppearanceLarge"/> - - <!-- password entry --> - <LinearLayout - android:layout_width="fill_parent" - android:layout_height="wrap_content" - android:orientation="horizontal" - android:layout_marginRight="6dip" - android:layout_marginLeft="6dip" - android:gravity="center_vertical" - android:background="@android:drawable/edit_text"> + android:gravity="center" + android:lines="2" + android:textAppearance="?android:attr/textAppearanceLarge"/> - <!-- displays dots as user enters pin --> - <TextView android:id="@+id/pinDisplay" - android:layout_width="0dip" - android:layout_height="wrap_content" - android:layout_weight="1" - android:maxLines="1" - android:textAppearance="?android:attr/textAppearanceLargeInverse" - android:textStyle="bold" - android:inputType="textPassword" - /> - - <ImageButton android:id="@+id/backspace" - android:src="@android:drawable/ic_input_delete" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_marginRight="-3dip" - android:layout_marginBottom="-3dip" - /> - </LinearLayout> + <!-- spacer above text entry field --> + <View + android:id="@+id/spacerBottom" + android:layout_width="fill_parent" + android:layout_height="1dip" + android:layout_marginTop="6dip" + android:background="@android:drawable/divider_horizontal_dark" + /> - </LinearLayout> + <!-- Password entry field --> + <EditText android:id="@+id/password_entry" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:singleLine="true" + android:textStyle="bold" + android:inputType="textPassword" + android:gravity="center" + android:layout_gravity="center" + android:textSize="32sp" + android:layout_marginTop="15dip" + android:layout_marginLeft="30dip" + android:layout_marginRight="30dip" + android:textAppearance="?android:attr/textAppearanceLarge" + android:background="@drawable/password_field_default" + android:textColor="#ffffffff" + /> + <!-- Spacer between password entry and keyboard --> <View - android:layout_width="fill_parent" + android:layout_width="match_parent" android:layout_height="0dip" - android:layout_weight="1" + android:layout_weight="1" /> + + <!-- Alphanumeric keyboard --> + <com.android.internal.widget.PasswordEntryKeyboardView android:id="@+id/keyboard" + android:layout_alignParentBottom="true" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:background="#00000000" + android:layout_marginBottom="30dip" + android:keyBackground="@*android:drawable/btn_keyboard_key_fulltrans" /> + <RelativeLayout + android:layout_height="wrap_content" + android:layout_width="match_parent" + android:background="@android:drawable/bottom_bar"> + + <Button android:id="@+id/cancel_button" + android:layout_width="150dip" + android:layout_height="wrap_content" + android:layout_margin="5dip" + android:layout_alignParentLeft="true" + android:text="@string/password_cancel_button_label" + /> + + <Button android:id="@+id/next_button" + android:layout_width="150dip" + android:layout_height="wrap_content" + android:layout_margin="5dip" + android:layout_alignParentRight="true" + android:drawableRight="@drawable/ic_btn_next" + android:drawablePadding="10dip" + android:text="@string/password_ok_button_label" + /> + + </RelativeLayout> + </LinearLayout> diff --git a/res/layout/choose_lock_pin.xml b/res/layout/choose_lock_pin.xml deleted file mode 100644 index beff4a1..0000000 --- a/res/layout/choose_lock_pin.xml +++ /dev/null @@ -1,83 +0,0 @@ -<?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. -*/ ---> - -<!-- TODO: think about moving to frameworks/base/res --> - -<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="fill_parent" - android:layout_height="fill_parent" - android:orientation="vertical" - android:background="@android:color/background_dark" - android:gravity="center_horizontal"> - - <LinearLayout android:id="@+id/topDisplayGroup" - android:layout_width="fill_parent" - android:layout_height="wrap_content" - android:orientation="vertical"> - - <!-- header text ('Enter Pin') --> - <TextView android:id="@+id/headerText" - android:layout_width="fill_parent" - android:layout_height="wrap_content" - android:gravity="center" - android:lines="2" - android:textAppearance="?android:attr/textAppearanceLarge"/> - - <!-- password entry --> - <LinearLayout - android:layout_width="fill_parent" - android:layout_height="wrap_content" - android:orientation="horizontal" - android:layout_marginRight="6dip" - android:layout_marginLeft="6dip" - android:gravity="center_vertical" - android:background="@android:drawable/edit_text"> - - <!-- displays dots as user enters pin --> - <TextView android:id="@+id/pinDisplay" - android:layout_width="0dip" - android:layout_height="wrap_content" - android:layout_weight="1" - android:maxLines="1" - android:textAppearance="?android:attr/textAppearanceLargeInverse" - android:textStyle="bold" - android:inputType="textPassword" - /> - - <ImageButton android:id="@+id/backspace" - android:src="@android:drawable/ic_input_delete" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_marginRight="-3dip" - android:layout_marginBottom="-3dip" - /> - </LinearLayout> - - </LinearLayout> - - <include - android:id="@+id/keyPad" - layout="@layout/twelve_key_entry" - android:layout_width="fill_parent" - android:layout_height="wrap_content" - android:layout_below="@id/topDisplayGroup" - android:layout_marginTop="10dip" - /> - -</LinearLayout> diff --git a/res/layout/confirm_lock_password.xml b/res/layout/confirm_lock_password.xml new file mode 100644 index 0000000..3a27b9d --- /dev/null +++ b/res/layout/confirm_lock_password.xml @@ -0,0 +1,27 @@ +<?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. +*/ +--> + +<!-- This is basically the same layout now, but will likely change --> +<merge xmlns:android="http://schemas.android.com/apk/res/android"> + <include + layout="@layout/choose_lock_password" + android:layout_width="match_parent" + android:layout_height="match_parent" + /> +</merge> diff --git a/res/layout/confirm_lock_pin.xml b/res/layout/confirm_lock_pin.xml deleted file mode 100644 index beff4a1..0000000 --- a/res/layout/confirm_lock_pin.xml +++ /dev/null @@ -1,83 +0,0 @@ -<?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. -*/ ---> - -<!-- TODO: think about moving to frameworks/base/res --> - -<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="fill_parent" - android:layout_height="fill_parent" - android:orientation="vertical" - android:background="@android:color/background_dark" - android:gravity="center_horizontal"> - - <LinearLayout android:id="@+id/topDisplayGroup" - android:layout_width="fill_parent" - android:layout_height="wrap_content" - android:orientation="vertical"> - - <!-- header text ('Enter Pin') --> - <TextView android:id="@+id/headerText" - android:layout_width="fill_parent" - android:layout_height="wrap_content" - android:gravity="center" - android:lines="2" - android:textAppearance="?android:attr/textAppearanceLarge"/> - - <!-- password entry --> - <LinearLayout - android:layout_width="fill_parent" - android:layout_height="wrap_content" - android:orientation="horizontal" - android:layout_marginRight="6dip" - android:layout_marginLeft="6dip" - android:gravity="center_vertical" - android:background="@android:drawable/edit_text"> - - <!-- displays dots as user enters pin --> - <TextView android:id="@+id/pinDisplay" - android:layout_width="0dip" - android:layout_height="wrap_content" - android:layout_weight="1" - android:maxLines="1" - android:textAppearance="?android:attr/textAppearanceLargeInverse" - android:textStyle="bold" - android:inputType="textPassword" - /> - - <ImageButton android:id="@+id/backspace" - android:src="@android:drawable/ic_input_delete" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_marginRight="-3dip" - android:layout_marginBottom="-3dip" - /> - </LinearLayout> - - </LinearLayout> - - <include - android:id="@+id/keyPad" - layout="@layout/twelve_key_entry" - android:layout_width="fill_parent" - android:layout_height="wrap_content" - android:layout_below="@id/topDisplayGroup" - android:layout_marginTop="10dip" - /> - -</LinearLayout> diff --git a/res/values/strings.xml b/res/values/strings.xml index 47421e2..39198ef 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -534,6 +534,10 @@ <string name="manage_device_admin">Select device administrators</string> <!-- Summary of preference to manage device policies --> <string name="manage_device_admin_summary">Add or remove device administrators</string> + <!-- Label for ChoosePassword/PIN OK button --> + <string name="password_ok_button_label">OK</string> + <!-- Label for ChoosePassword/PIN OK button --> + <string name="password_cancel_button_label">Cancel</string> <!-- Bluetooth settings --> <!-- Bluetooth settings check box title on Main Settings screen --> @@ -966,7 +970,7 @@ <string name="dock_not_found_title">Dock not found</string> <!-- Dock not found dialog text --> <string name="dock_not_found_text">The phone must be docked to configure dock audio</string> - + <!-- Acounts & Sync settings screen setting option name to go into the screen for data sync settings--> <string name="sync_settings">Accounts & sync</string> <!-- Main Settings screen setting option summary text for the itme to go into the screen with data sync settings--> @@ -1125,7 +1129,7 @@ <!-- SD card & phone storage settings item title that will result in the phone unmounting the SD card. This will be done before the user phyiscally removes the SD card from the phone. Kind of like the "Safely remove" on some operating systems. --> <string name="sd_eject_summary">Unmount the SD card for safe removal</string> - + <!-- SD card & phone storage settings item summary that is displayed when no SD card is inserted --> <string name="sd_insert_summary">Insert an SD card for mounting</string> <!-- SD card & phone storage settings item title that will result in the phone mounting the SD card. --> @@ -2006,7 +2010,7 @@ found in the list of installed applications.</string> <string name="voice_search_settings_title">Voice search</string> <!-- Title of keyboard settings list item within voice input/output settings --> <string name="keyboard_settings_title">Android keyboard</string> - + <!-- Text-To-Speech (TTS) settings --><skip /> <!-- Title of setting on main settings screen. This item will take the user to the screen to tweak settings related to the text-to-speech functionality --> <string name="tts_settings">Text-to-speech</string> @@ -2313,7 +2317,7 @@ found in the list of installed applications.</string> <string name="device_admin_status">This administrator is active and allows the application <xliff:g id="app_name">%1$s</xliff:g> to perform the following operations:</string> - + <!-- Name to assign to a Network Access Point that was saved without a name --> <string name="untitled_apn">Untitled</string> </resources> diff --git a/src/com/android/settings/ChooseLockPassword.java b/src/com/android/settings/ChooseLockPassword.java index 6f9cefd..ed4150a 100644 --- a/src/com/android/settings/ChooseLockPassword.java +++ b/src/com/android/settings/ChooseLockPassword.java @@ -20,26 +20,30 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; import com.android.internal.widget.LockPatternUtils; +import com.android.internal.widget.PasswordEntryKeyboardHelper; +import com.android.internal.widget.PasswordEntryKeyboardView; import com.android.settings.ChooseLockPattern.LeftButtonMode; import com.android.settings.ChooseLockPattern.RightButtonMode; import com.android.settings.ChooseLockPattern.Stage; import android.app.Activity; import android.content.Intent; +import android.content.pm.ActivityInfo; +import android.graphics.PixelFormat; +import android.inputmethodservice.KeyboardView; import android.os.Bundle; import android.os.Handler; import android.text.Editable; import android.text.TextUtils; import android.view.View; +import android.view.WindowManager; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; public class ChooseLockPassword extends Activity implements OnClickListener { - private final int digitIds[] = new int[] { R.id.zero, R.id.one, R.id.two, R.id.three, - R.id.four, R.id.five, R.id.six, R.id.seven, R.id.eight, R.id.nine }; - private TextView mPasswordTextView; + private TextView mPasswordEntry; private int mPasswordMinLength = 4; private int mPasswordMaxLength = 8; private LockPatternUtils mLockPatternUtils; @@ -48,6 +52,8 @@ public class ChooseLockPassword extends Activity implements OnClickListener { private com.android.settings.ChooseLockPassword.Stage mUiStage = Stage.Introduction; private TextView mHeaderText; private String mFirstPin; + private KeyboardView mKeyboardView; + private PasswordEntryKeyboardHelper mKeyboardHelper; public static final String PASSWORD_MIN_KEY = "lockscreen.password_min"; public static final String PASSWORD_MAX_KEY = "lockscreen.password_max"; private static Handler mHandler = new Handler(); @@ -79,7 +85,7 @@ public class ChooseLockPassword extends Activity implements OnClickListener { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mLockPatternUtils = new LockPatternUtils(this); - mRequestedMode = getIntent().getIntExtra("password_mode", mRequestedMode); + mRequestedMode = getIntent().getIntExtra(LockPatternUtils.PASSWORD_TYPE_KEY, mRequestedMode); mPasswordMinLength = getIntent().getIntExtra("password_min_length", mPasswordMinLength); mPasswordMaxLength = getIntent().getIntExtra("password_max_length", mPasswordMaxLength); int minMode = mLockPatternUtils.getRequestedPasswordMode(); @@ -99,25 +105,38 @@ public class ChooseLockPassword extends Activity implements OnClickListener { } private void initViews() { - switch(mRequestedMode) { - case LockPatternUtils.MODE_PIN: - case LockPatternUtils.MODE_PASSWORD: - case LockPatternUtils.MODE_PATTERN: - setContentView(R.layout.choose_lock_pin); - // TODO: alphanumeric layout - // setContentView(R.layout.choose_lock_password); - for (int i = 0; i < digitIds.length; i++) { - Button button = (Button) findViewById(digitIds[i]); - button.setOnClickListener(this); - button.setText(Integer.toString(i)); - } - break; - } - findViewById(R.id.ok).setOnClickListener(this); - findViewById(R.id.cancel).setOnClickListener(this); - findViewById(R.id.backspace).setOnClickListener(this); - mPasswordTextView = (TextView) findViewById(R.id.pinDisplay); + setContentView(R.layout.choose_lock_password); + // Disable IME on our window since we provide our own keyboard + getWindow().setFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM, + WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM); + + findViewById(R.id.cancel_button).setOnClickListener(this); + findViewById(R.id.next_button).setOnClickListener(this); + + mKeyboardView = (PasswordEntryKeyboardView) findViewById(R.id.keyboard); + mPasswordEntry = (TextView) findViewById(R.id.password_entry); + + final boolean isAlpha = LockPatternUtils.MODE_PASSWORD == mRequestedMode; + mKeyboardHelper = new PasswordEntryKeyboardHelper(this, mKeyboardView, mPasswordEntry); + mKeyboardHelper.setKeyboardMode(isAlpha ? PasswordEntryKeyboardHelper.KEYBOARD_MODE_ALPHA + : PasswordEntryKeyboardHelper.KEYBOARD_MODE_NUMERIC); + mHeaderText = (TextView) findViewById(R.id.headerText); + mKeyboardView.requestFocus(); + } + + @Override + protected void onPause() { + super.onPause(); + mKeyboardView.requestFocus(); + } + + @Override + protected void onResume() { + // TODO Auto-generated method stub + super.onResume(); + updateStage(mUiStage); + mKeyboardView.requestFocus(); } @Override @@ -136,7 +155,7 @@ public class ChooseLockPassword extends Activity implements OnClickListener { protected void updateStage(Stage stage) { mHeaderText.setText(stage.headerMessage); - mPasswordTextView.setText(""); + mPasswordEntry.setText(""); mUiStage = stage; } @@ -172,9 +191,9 @@ public class ChooseLockPassword extends Activity implements OnClickListener { public void onClick(View v) { switch (v.getId()) { - case R.id.ok: + case R.id.next_button: { - final String pin = mPasswordTextView.getText().toString(); + final String pin = mPasswordEntry.getText().toString(); if (TextUtils.isEmpty(pin)) { break; } @@ -203,35 +222,15 @@ public class ChooseLockPassword extends Activity implements OnClickListener { } break; - case R.id.backspace: - { - final Editable digits = mPasswordTextView.getEditableText(); - final int len = digits.length(); - if (len > 0) { - digits.delete(len-1, len); - } - } - break; - - case R.id.cancel: + case R.id.cancel_button: finish(); break; - - default: - // Digits - for (int i = 0; i < digitIds.length; i++) { - if (v.getId() == digitIds[i]) { - mPasswordTextView.append(Integer.toString(i)); - return; - } - } - break; } } private void showError(String msg, final Stage next) { mHeaderText.setText(msg); - mPasswordTextView.setText(""); + mPasswordEntry.setText(""); mHandler.postDelayed(new Runnable() { public void run() { updateStage(next); diff --git a/src/com/android/settings/ConfirmLockPassword.java b/src/com/android/settings/ConfirmLockPassword.java index 5308f88..78d6ff1 100644 --- a/src/com/android/settings/ConfirmLockPassword.java +++ b/src/com/android/settings/ConfirmLockPassword.java @@ -17,24 +17,27 @@ package com.android.settings; import com.android.internal.widget.LockPatternUtils; +import com.android.internal.widget.PasswordEntryKeyboardHelper; +import com.android.internal.widget.PasswordEntryKeyboardView; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.text.Editable; import android.view.View; +import android.view.WindowManager; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; public class ConfirmLockPassword extends Activity implements OnClickListener { private static final long ERROR_MESSAGE_TIMEOUT = 3000; - private final int digitIds[] = new int[] { R.id.zero, R.id.one, R.id.two, R.id.three, - R.id.four, R.id.five, R.id.six, R.id.seven, R.id.eight, R.id.nine }; - private TextView mPasswordTextView; + private TextView mPasswordEntry; private LockPatternUtils mLockPatternUtils; private TextView mHeaderText; private Handler mHandler = new Handler(); + private PasswordEntryKeyboardHelper mKeyboardHelper; + private PasswordEntryKeyboardView mKeyboardView; @Override protected void onCreate(Bundle savedInstanceState) { @@ -45,27 +48,43 @@ public class ConfirmLockPassword extends Activity implements OnClickListener { private void initViews() { int mode = mLockPatternUtils.getPasswordMode(); - if (LockPatternUtils.MODE_PIN == mode || LockPatternUtils.MODE_PASSWORD == mode) { - setContentView(R.layout.confirm_lock_pin); - for (int i = 0; i < digitIds.length; i++) { - Button button = (Button) findViewById(digitIds[i]); - button.setOnClickListener(this); - button.setText(Integer.toString(i)); - } - findViewById(R.id.ok).setOnClickListener(this); - findViewById(R.id.cancel).setOnClickListener(this); - } - findViewById(R.id.backspace).setOnClickListener(this); - mPasswordTextView = (TextView) findViewById(R.id.pinDisplay); + setContentView(R.layout.confirm_lock_password); + // Disable IME on our window since we provide our own keyboard + getWindow().setFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM, + WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM); + + findViewById(R.id.cancel_button).setOnClickListener(this); + findViewById(R.id.next_button).setOnClickListener(this); + mPasswordEntry = (TextView) findViewById(R.id.password_entry); + mKeyboardView = (PasswordEntryKeyboardView) findViewById(R.id.keyboard); mHeaderText = (TextView) findViewById(R.id.headerText); mHeaderText.setText(R.string.lockpassword_confirm_your_password_header); + final boolean isAlpha = + LockPatternUtils.MODE_PASSWORD == mLockPatternUtils.getPasswordMode(); + mKeyboardHelper = new PasswordEntryKeyboardHelper(this, mKeyboardView, mPasswordEntry); + mKeyboardHelper.setKeyboardMode(isAlpha ? PasswordEntryKeyboardHelper.KEYBOARD_MODE_ALPHA + : PasswordEntryKeyboardHelper.KEYBOARD_MODE_NUMERIC); + mKeyboardView.requestFocus(); + } + + @Override + protected void onPause() { + super.onPause(); + mKeyboardView.requestFocus(); + } + + @Override + protected void onResume() { + // TODO Auto-generated method stub + super.onResume(); + mKeyboardView.requestFocus(); } public void onClick(View v) { switch (v.getId()) { - case R.id.ok: + case R.id.next_button: { - final String pin = mPasswordTextView.getText().toString(); + final String pin = mPasswordEntry.getText().toString(); if (mLockPatternUtils.checkPassword(pin)) { setResult(RESULT_OK); finish(); @@ -75,36 +94,16 @@ public class ConfirmLockPassword extends Activity implements OnClickListener { } break; - case R.id.backspace: - { - final Editable digits = mPasswordTextView.getEditableText(); - final int len = digits.length(); - if (len > 0) { - digits.delete(len-1, len); - } - } - break; - - case R.id.cancel: + case R.id.cancel_button: setResult(RESULT_CANCELED); finish(); break; - - default: - // Digits - for (int i = 0; i < digitIds.length; i++) { - if (v.getId() == digitIds[i]) { - mPasswordTextView.append(Integer.toString(i)); - return; - } - } - break; } } private void showError(int msg) { mHeaderText.setText(msg); - mPasswordTextView.setText(null); + mPasswordEntry.setText(null); mHandler.postDelayed(new Runnable() { public void run() { mHeaderText.setText(R.string.lockpassword_confirm_your_password_header); |