OSDN Git Service

In landscape mode, set the type of digit area to PHONE[do not merge].
authorNicolas Catania <niko@google.com>
Fri, 9 Oct 2009 18:09:45 +0000 (11:09 -0700)
committerNicolas Catania <niko@google.com>
Mon, 12 Oct 2009 18:41:45 +0000 (11:41 -0700)
Backport from Ieb30191ace8a0d62adec4feaca8f81df7ac4e71b

Previously we blindely set the EditText to NULL to prevent the IME
keyboard to pop up in portrait mode. The issue is that in landscape
mode, the keyboard is not in numlock mode which is a pb on devices
where the 1st line is not made of numbers.

Bug: 2180808

res/layout-finger/twelve_key_dialer.xml
res/layout-land-finger/twelve_key_dialer.xml
res/layout-long-finger/twelve_key_dialer.xml
res/layout-long-land-finger/twelve_key_dialer.xml
src/com/android/contacts/TwelveKeyDialer.java

index 3550444..5601574 100644 (file)
     android:orientation="vertical"
 >
 
-    <!-- Text field above the keypad where the digits are displayed -->
+    <!-- Text field above the keypad where the digits are displayed.
+         It's type is set to NULL (to disable the IME keyboard) in the
+         java code.
+    -->
     <!-- TODO: Use a textAppearance to control the display of the number -->
     <EditText android:id="@+id/digits"
         android:layout_width="fill_parent"
index 8c66ff3..92906ba 100644 (file)
     android:orientation="vertical"
 >
 
-    <!-- Text field above the keypad where the digits are displayed -->
+    <!-- Text field above the keypad where the digits are displayed.
+         It's type is set to PHONE (to put the keyboard in the right
+         config) in the java code.
+    -->
     <!-- TODO: Use a textAppearance to control the display of the number -->
     <EditText android:id="@+id/digits"
         android:layout_width="fill_parent"
index d1d0f37..1ccb70c 100644 (file)
     android:orientation="vertical"
 >
 
-    <!-- Text field above the keypad where the digits are displayed -->
+    <!-- Text field above the keypad where the digits are displayed.
+         It's type is set to NULL (to disable the IME keyboard) in the
+         java code.
+    -->
     <!-- TODO: Use a textAppearance to control the display of the number -->
     <EditText android:id="@+id/digits"
         android:layout_width="fill_parent"
index 618792a..18c9a0f 100644 (file)
     android:orientation="vertical"
 >
 
-    <!-- Text field above the keypad where the digits are displayed -->
+    <!-- Text field above the keypad where the digits are displayed.
+         It's type is set to PHONE (to put the keyboard in the right
+         config) in the java code.
+    -->
     <!-- TODO: Use a textAppearance to control the display of the number -->
     <EditText android:id="@+id/digits"
         android:layout_width="fill_parent"
index 176997a..0eb9c94 100644 (file)
@@ -185,7 +185,6 @@ public class TwelveKeyDialer extends Activity implements View.OnClickListener,
         mDigits.setKeyListener(DialerKeyListener.getInstance());
         mDigits.setOnClickListener(this);
         mDigits.setOnKeyListener(this);
-        mDigits.setInputType(android.text.InputType.TYPE_NULL);  // Don't show IME when focused.
 
         maybeAddNumberFormatting();
 
@@ -214,7 +213,16 @@ public class TwelveKeyDialer extends Activity implements View.OnClickListener,
         view.setOnLongClickListener(this);
         mDelete = view;
 
-        mDialpad = findViewById(R.id.dialpad);  // This is null in landscape mode
+        mDialpad = findViewById(R.id.dialpad);  // This is null in landscape mode.
+
+        // In landscape we put the keyboard in phone mode.
+        // In portrait we prevent the soft keyboard to show since the
+        // dialpad acts as one already.
+        if (null == mDialpad) {
+            mDigits.setInputType(android.text.InputType.TYPE_CLASS_PHONE);
+        } else {
+            mDigits.setInputType(android.text.InputType.TYPE_NULL);
+        }
 
         // Set up the "dialpad chooser" UI; see showDialpadChooser().
         mDialpadChooser = (ListView) findViewById(R.id.dialpadChooser);