From 0a7c007da4cb36e41f6982903679c40ffae4da5a Mon Sep 17 00:00:00 2001 From: Phillip Hsu Date: Sat, 16 Jul 2016 04:27:49 -0700 Subject: [PATCH] Created focus grabber for time input field --- .../com/philliphsu/clock2/editalarm/GridLayoutNumpad.java | 4 ++-- .../com/philliphsu/clock2/editalarm/NumpadTimePicker.java | 2 +- .../clock2/editalarm/NumpadTimePickerDialog.java | 4 ++++ app/src/main/res/layout/dialog_time_picker_numpad.xml | 8 ++++++++ 4 files changed, 15 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/philliphsu/clock2/editalarm/GridLayoutNumpad.java b/app/src/main/java/com/philliphsu/clock2/editalarm/GridLayoutNumpad.java index 63fddf5..7c738f7 100644 --- a/app/src/main/java/com/philliphsu/clock2/editalarm/GridLayoutNumpad.java +++ b/app/src/main/java/com/philliphsu/clock2/editalarm/GridLayoutNumpad.java @@ -66,7 +66,7 @@ public abstract class GridLayoutNumpad extends GridLayout implements View.OnClic /** * @return the number of digits we can input */ - protected abstract int capacity(); + public abstract int capacity(); /** * @return the layout resource that defines the children for this numpad @@ -102,7 +102,7 @@ public abstract class GridLayoutNumpad extends GridLayout implements View.OnClic /** * @return the number of digits inputted */ - protected final int count() { + public final int count() { return mCount; } diff --git a/app/src/main/java/com/philliphsu/clock2/editalarm/NumpadTimePicker.java b/app/src/main/java/com/philliphsu/clock2/editalarm/NumpadTimePicker.java index 5f78bdb..070620b 100644 --- a/app/src/main/java/com/philliphsu/clock2/editalarm/NumpadTimePicker.java +++ b/app/src/main/java/com/philliphsu/clock2/editalarm/NumpadTimePicker.java @@ -65,7 +65,7 @@ public class NumpadTimePicker extends GridLayoutNumpad implements TimePicker { } @Override - protected int capacity() { + public int capacity() { return MAX_DIGITS; } diff --git a/app/src/main/java/com/philliphsu/clock2/editalarm/NumpadTimePickerDialog.java b/app/src/main/java/com/philliphsu/clock2/editalarm/NumpadTimePickerDialog.java index 3abc66b..9e74fc7 100644 --- a/app/src/main/java/com/philliphsu/clock2/editalarm/NumpadTimePickerDialog.java +++ b/app/src/main/java/com/philliphsu/clock2/editalarm/NumpadTimePickerDialog.java @@ -44,6 +44,7 @@ public class NumpadTimePickerDialog extends DialogFragment implements NumpadTime // Don't need to keep a reference to the dismiss ImageButton @Bind(R.id.input_time) EditText mInputField; @Bind(R.id.number_grid) NumpadTimePicker mNumpad; + @Bind(R.id.focus_grabber) View mFocusGrabber; public NumpadTimePickerDialog() { // Empty constructor required for dialog fragment. @@ -156,5 +157,8 @@ public class NumpadTimePickerDialog extends DialogFragment implements NumpadTime mInputField.setText(inputText); // Move the cursor mInputField.setSelection(mInputField.length()); + if (mNumpad.count() == mNumpad.capacity()) { + mFocusGrabber.requestFocus(); + } } } diff --git a/app/src/main/res/layout/dialog_time_picker_numpad.xml b/app/src/main/res/layout/dialog_time_picker_numpad.xml index 7d21558..9bcca3e 100644 --- a/app/src/main/res/layout/dialog_time_picker_numpad.xml +++ b/app/src/main/res/layout/dialog_time_picker_numpad.xml @@ -38,6 +38,14 @@ android:background="@android:color/transparent" style="@style/TextAppearance.AppCompat.Inverse"/> + + +