Reconfigure how alarms are setup.
Fixes bug:3368780 Canceling in the Middle of Adding an Alarm Flow is Confusing on Tablet
now:
On existing alarm: can delete, cancel, save(ok)
on new alarm: can cancel or save(ok)
time picker is in the first dialog
Change-Id: I3fa86fc8de4b73ee422e78790a796bad14e404e7
diff --git a/res/layout/set_alarm.xml b/res/layout/set_alarm.xml
index a5ebe5c..059b6c3 100644
--- a/res/layout/set_alarm.xml
+++ b/res/layout/set_alarm.xml
@@ -3,16 +3,16 @@
/*
** Copyright 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
+** 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
+** 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
+** 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.
*/
-->
@@ -21,6 +21,13 @@
android:layout_height="match_parent"
android:orientation="vertical">
+ <TimePicker
+ android:id="@+id/timePicker"
+ android:layout_gravity="center_horizontal"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ />
+
<ListView android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
diff --git a/src/com/android/deskclock/SetAlarm.java b/src/com/android/deskclock/SetAlarm.java
index dd23222..32a7b0a 100644
--- a/src/com/android/deskclock/SetAlarm.java
+++ b/src/com/android/deskclock/SetAlarm.java
@@ -17,7 +17,6 @@
package com.android.deskclock;
import android.app.AlertDialog;
-import android.app.TimePickerDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
@@ -41,13 +40,13 @@
import android.widget.ListView;
import android.widget.TimePicker;
import android.widget.Toast;
+import android.widget.TimePicker.OnTimeChangedListener;
/**
* Manages each alarm
*/
-public class SetAlarm extends PreferenceActivity
- implements TimePickerDialog.OnTimeSetListener,
- Preference.OnPreferenceChangeListener {
+public class SetAlarm extends PreferenceActivity implements Preference.OnPreferenceChangeListener,
+ OnTimeChangedListener {
private EditTextPreference mLabel;
private CheckBoxPreference mEnabledPref;
@@ -55,7 +54,7 @@
private AlarmPreference mAlarmPref;
private CheckBoxPreference mVibratePref;
private RepeatPreference mRepeatPref;
- private MenuItem mTestAlarmItem;
+ private TimePicker mTimePicker;
private int mId;
private int mHour;
@@ -140,7 +139,7 @@
}
});
final Button revert = (Button) findViewById(R.id.alarm_revert);
- revert.setEnabled(false);
+ revert.setEnabled(true);
revert.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
int newId = mId;
@@ -151,14 +150,16 @@
} else {
saveAlarm();
}
- revert.setEnabled(false);
+ revert.setEnabled(true);
finish();
}
});
b = (Button) findViewById(R.id.alarm_delete);
if (mId == -1) {
b.setEnabled(false);
+ b.setVisibility(View.GONE);
} else {
+ b.setVisibility(View.VISIBLE);
b.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
deleteAlarm();
@@ -228,15 +229,21 @@
}
private void showTimePicker() {
- new TimePickerDialog(this, this, mHour, mMinutes,
- DateFormat.is24HourFormat(this)).show();
+ mTimePicker = (TimePicker) findViewById(R.id.timePicker);
+ mTimePicker.setCurrentHour(mHour);
+ mTimePicker.setCurrentMinute(mMinutes);
+ mTimePicker.setIs24HourView(DateFormat.is24HourFormat(this));
+ mTimePicker.setVisibility(View.VISIBLE);
+ mTimePicker.setOnTimeChangedListener(this);
}
- public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
+
+ @Override
+ public void onTimeChanged(TimePicker timePicker, int hourOfDay, int minute) {
// onTimeSet is called when the user clicks "Set"
mTimePickerCancelled = false;
- mHour = hourOfDay;
- mMinutes = minute;
+ mHour = timePicker.getCurrentHour();
+ mMinutes = timePicker.getCurrentMinute();
updateTime();
// If the time has been changed, enable the alarm.
mEnabledPref.setChecked(true);