Fixes to numpad interactions

This commit is contained in:
Phillip Hsu 2016-06-02 20:48:38 -07:00
parent 68fb80b42b
commit c2707b12b2
3 changed files with 21 additions and 4 deletions

View File

@ -58,12 +58,14 @@ public class EditAlarmActivity extends BaseActivity implements AlarmNumpad.KeyLi
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setWeekDaysText(); setWeekDaysText();
mNumpad.setKeyListener(this);
long alarmId = getIntent().getLongExtra(EXTRA_ALARM_ID, -1); long alarmId = getIntent().getLongExtra(EXTRA_ALARM_ID, -1);
if (alarmId > -1) { if (alarmId > -1) {
mAlarm = AlarmsRepository.getInstance(this).getItem(alarmId); mAlarm = AlarmsRepository.getInstance(this).getItem(alarmId);
if (mAlarm != null) { if (mAlarm != null) {
mNumpad.setTime(mAlarm.hour(), mAlarm.minutes());
mSwitch.setChecked(mAlarm.isEnabled()); mSwitch.setChecked(mAlarm.isEnabled());
mTimeText.setText(getTimeFormat(this).format(new Date(mAlarm.ringsAt()))); //mTimeText.setText(getTimeFormat(this).format(new Date(mAlarm.ringsAt())));
for (int i = SUNDAY; i <= SATURDAY; i++) { for (int i = SUNDAY; i <= SATURDAY; i++) {
// What position in the week is this day located at? // What position in the week is this day located at?
int at = DaysOfWeek.getInstance(this).positionOf(i); int at = DaysOfWeek.getInstance(this).positionOf(i);
@ -98,7 +100,6 @@ public class EditAlarmActivity extends BaseActivity implements AlarmNumpad.KeyLi
mSelectedRingtoneUri = RingtoneManager.getActualDefaultRingtoneUri(this, RingtoneManager.TYPE_ALARM); mSelectedRingtoneUri = RingtoneManager.getActualDefaultRingtoneUri(this, RingtoneManager.TYPE_ALARM);
mNumpad.setVisibility(View.VISIBLE); mNumpad.setVisibility(View.VISIBLE);
} }
mNumpad.setKeyListener(this);
updateRingtoneButtonText(); updateRingtoneButtonText();
} }
@ -152,21 +153,25 @@ public class EditAlarmActivity extends BaseActivity implements AlarmNumpad.KeyLi
public void onAcceptChanges() { public void onAcceptChanges() {
mNumpad.setVisibility(View.GONE); mNumpad.setVisibility(View.GONE);
mSwitch.setChecked(true); mSwitch.setChecked(true);
mSwitch.requestFocus();
} }
@Override @Override
public void onNumberInput(String formattedInput) { public void onNumberInput(String formattedInput) {
mTimeText.setText(formattedInput); mTimeText.setText(formattedInput);
mTimeText.setSelection(mTimeText.length());
} }
@Override @Override
public void onCollapse() { public void onCollapse() {
mNumpad.setVisibility(View.GONE); mNumpad.setVisibility(View.GONE);
mSwitch.requestFocus();
} }
@Override @Override
public void onBackspace(String newStr) { public void onBackspace(String newStr) {
mTimeText.setText(newStr); mTimeText.setText(newStr);
mTimeText.setSelection(mTimeText.length());
if (!mNumpad.checkTimeValid() && mSwitch.isChecked()) { if (!mNumpad.checkTimeValid() && mSwitch.isChecked()) {
mSwitch.setChecked(false); mSwitch.setChecked(false);
} }
@ -176,11 +181,14 @@ public class EditAlarmActivity extends BaseActivity implements AlarmNumpad.KeyLi
public void onLongBackspace() { public void onLongBackspace() {
mTimeText.setText(""); mTimeText.setText("");
mSwitch.setChecked(false); mSwitch.setChecked(false);
mTimeText.setSelection(0);
} }
@OnTouch(R.id.input_time) @OnTouch(R.id.input_time)
boolean touch(MotionEvent event) { boolean touch(MotionEvent event) {
mNumpad.setVisibility(View.VISIBLE); if (event.getActionMasked() == MotionEvent.ACTION_UP && mNumpad.getVisibility() != View.VISIBLE) {
mNumpad.setVisibility(View.VISIBLE);
}
return true; return true;
} }

View File

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="#FF000000"
android:pathData="M16.59,8.59L12,13.17 7.41,8.59 6,10l6,6 6,-6z"/>
</vector>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<ImageButton xmlns:android="http://schemas.android.com/apk/res/android" <ImageButton xmlns:android="http://schemas.android.com/apk/res/android"
style="@style/NumpadButton" style="@style/NumberButton"
android:src="@drawable/ic_collapse_24dp"/> android:src="@drawable/ic_collapse_24dp"/>