Finish the UI improvements for the alarm list.
diff --git a/res/drawable-hdpi/ic_clock_add_alarm.png b/res/drawable-hdpi/ic_clock_add_alarm.png
new file mode 100644
index 0000000..f7cc82d
--- /dev/null
+++ b/res/drawable-hdpi/ic_clock_add_alarm.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_clock_add_alarm_selected.png b/res/drawable-hdpi/ic_clock_add_alarm_selected.png
new file mode 100644
index 0000000..55cd344
--- /dev/null
+++ b/res/drawable-hdpi/ic_clock_add_alarm_selected.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_desk_clock.png b/res/drawable-hdpi/ic_menu_desk_clock.png
new file mode 100644
index 0000000..e4d8ecc
--- /dev/null
+++ b/res/drawable-hdpi/ic_menu_desk_clock.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_clock_add_alarm.png b/res/drawable-mdpi/ic_clock_add_alarm.png
new file mode 100644
index 0000000..c49358e
--- /dev/null
+++ b/res/drawable-mdpi/ic_clock_add_alarm.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_clock_add_alarm_selected.png b/res/drawable-mdpi/ic_clock_add_alarm_selected.png
new file mode 100644
index 0000000..c4817c4
--- /dev/null
+++ b/res/drawable-mdpi/ic_clock_add_alarm_selected.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_menu_desk_clock.png b/res/drawable-mdpi/ic_menu_desk_clock.png
new file mode 100644
index 0000000..d9893ed
--- /dev/null
+++ b/res/drawable-mdpi/ic_menu_desk_clock.png
Binary files differ
diff --git a/res/drawable/add_alarm.xml b/res/drawable/add_alarm.xml
new file mode 100644
index 0000000..950894d
--- /dev/null
+++ b/res/drawable/add_alarm.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2009 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.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:state_focused="true" android:state_window_focused="true"
+ android:drawable="@drawable/ic_clock_add_alarm_selected" />
+ <item android:state_pressed="true" android:state_window_focused="true"
+ android:drawable="@drawable/ic_clock_add_alarm_selected" />
+ <item android:state_focused="false"
+ android:drawable="@drawable/ic_clock_add_alarm" />
+</selector>
diff --git a/res/layout/alarm_clock.xml b/res/layout/alarm_clock.xml
index 5ae1537..ed8b757 100644
--- a/res/layout/alarm_clock.xml
+++ b/res/layout/alarm_clock.xml
@@ -20,6 +20,34 @@
android:layout_height="fill_parent"
android:orientation="vertical">
+ <LinearLayout android:id="@+id/add_alarm"
+ android:clickable="true"
+ android:focusable="true"
+ android:focusableInTouchMode="true"
+ android:background="@android:drawable/list_selector_background"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:paddingTop="4dip"
+ android:paddingBottom="4dip"
+ android:orientation="horizontal">
+
+ <ImageView
+ style="@style/alarm_list_left_column"
+ android:duplicateParentState="true"
+ android:gravity="center"
+ android:scaleType="center"
+ android:src="@drawable/add_alarm" />
+
+ <TextView
+ android:layout_height="wrap_content"
+ android:layout_width="wrap_content"
+ android:layout_gravity="center_vertical"
+ android:textSize="28sp"
+ android:textColor="@color/white"
+ android:text="@string/add_alarm" />
+
+ </LinearLayout>
+
<ListView
android:id="@+id/alarms_list"
android:layout_width="fill_parent"
@@ -29,22 +57,42 @@
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
- android:orientation="horizontal"
- style="@android:style/ButtonBar">
+ android:orientation="horizontal" >
- <Button android:id="@+id/add_alarm"
- android:focusable="true"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:layout_weight="1"
- android:text="@string/add_alarm"/>
+ <ImageButton android:id="@+id/desk_clock_button"
+ style="@style/ButtonStripLeft"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:src="@drawable/ic_menu_desk_clock"
+ android:contentDescription="@string/desk_clock_button_description"/>
- <Button android:id="@+id/settings"
- android:focusable="true"
+ <com.android.deskclock.DigitalClock
+ style="@style/ButtonStripRight"
android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:layout_weight="1"
- android:text="@string/settings"/>
+ android:layout_height="fill_parent">
+
+ <LinearLayout
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:baselineAligned="true">
+
+ <TextView android:id="@+id/timeDisplay"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:paddingRight="6dip"
+ android:textSize="42sp"
+ android:textColor="@color/white" />
+
+ <TextView android:id="@+id/am_pm"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textSize="18sp"
+ android:textStyle="bold"
+ android:textColor="@color/white" />
+
+ </LinearLayout>
+
+ </com.android.deskclock.DigitalClock>
</LinearLayout>
diff --git a/res/layout/alarm_time.xml b/res/layout/alarm_time.xml
index 24a485b..6ab5a66 100644
--- a/res/layout/alarm_time.xml
+++ b/res/layout/alarm_time.xml
@@ -23,12 +23,8 @@
android:orientation="horizontal">
<LinearLayout android:id="@+id/indicator"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:paddingLeft="14dip"
- android:paddingRight="14dip"
- android:paddingTop="8dip"
- android:paddingBottom="8dip"
+ style="@style/alarm_list_left_column"
+ android:gravity="center"
android:orientation="vertical">
<CheckBox android:id="@+id/clock_onoff"
android:focusable="false"
@@ -87,6 +83,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
+ android:paddingLeft="4dip"
android:textSize="16sp"
android:textColor="@color/grey"
android:textStyle="bold"
diff --git a/res/menu/alarm_list_menu.xml b/res/menu/alarm_list_menu.xml
new file mode 100644
index 0000000..a8d1911
--- /dev/null
+++ b/res/menu/alarm_list_menu.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2009 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.
+-->
+
+<menu xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:id="@+id/menu_item_settings"
+ android:title="@string/settings"
+ android:icon="@android:drawable/ic_menu_preferences"/>
+</menu>
+
+
diff --git a/res/values/strings.xml b/res/values/strings.xml
index b4cbabc..ef2817e 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -228,6 +228,7 @@
<string name="music_button_description">Music</string>
<string name="nightmode_button_description">Dim</string>
<string name="home_button_description">Launcher</string>
+ <string name="desk_clock_button_description">Clock Display</string>
<!-- A short representation of charging information, e.g "34%" -->
<string name="battery_charging_level"><xliff:g id="number">%d</xliff:g><xliff:g id="percent">%%</xliff:g></string>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 6ba3eeb..11a6550 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -52,4 +52,9 @@
<item name="android:layout_height">wrap_content</item>
<item name="android:background">@drawable/btn_strip_trans_right</item>
</style>
+
+ <style name="alarm_list_left_column">
+ <item name="android:layout_width">64dip</item>
+ <item name="android:layout_height">54dip</item>
+ </style>
</resources>
diff --git a/src/com/android/deskclock/AlarmClock.java b/src/com/android/deskclock/AlarmClock.java
index f2533c3..acf42b3 100644
--- a/src/com/android/deskclock/AlarmClock.java
+++ b/src/com/android/deskclock/AlarmClock.java
@@ -24,7 +24,6 @@
import android.content.SharedPreferences;
import android.content.res.Configuration;
import android.database.Cursor;
-import android.database.DataSetObserver;
import android.graphics.Typeface;
import android.net.Uri;
import android.os.Bundle;
@@ -45,6 +44,7 @@
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CursorAdapter;
+import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
@@ -58,9 +58,6 @@
final static String PREFERENCES = "AlarmClock";
- /** Cap alarm count at this number */
- final static int MAX_ALARM_COUNT = 12;
-
/** This must be false for production. If true, turns on logging,
test code, etc. */
final static boolean DEBUG = false;
@@ -221,7 +218,7 @@
mAlarmsList.setOnItemClickListener(this);
mAlarmsList.setOnCreateContextMenuListener(this);
- final Button addAlarm = (Button) findViewById(R.id.add_alarm);
+ View addAlarm = findViewById(R.id.add_alarm);
addAlarm.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Uri uri = Alarms.addAlarm(getContentResolver());
@@ -237,28 +234,14 @@
startActivity(intent);
}
});
- // Update the enabled state of the "Add alarm" menu item depending on
- // how many alarms are set.
- adapter.registerDataSetObserver(new DataSetObserver() {
- public void onChanged() {
- updateAddAlarmButton(addAlarm);
- }
- public void onInvalidate() {
- updateAddAlarmButton(addAlarm);
- }
- });
- Button settings = (Button) findViewById(R.id.settings);
- settings.setOnClickListener(new View.OnClickListener() {
+ ImageButton deskClock =
+ (ImageButton) findViewById(R.id.desk_clock_button);
+ deskClock.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
- startActivity(
- new Intent(AlarmClock.this, SettingsActivity.class));
+ startActivity(new Intent(AlarmClock.this, DeskClock.class));
}
- });
- }
-
- private void updateAddAlarmButton(Button b) {
- b.setEnabled(mAlarmsList.getAdapter().getCount() < MAX_ALARM_COUNT);
+ });
}
@Override
@@ -301,6 +284,21 @@
}
}
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ if (item.getItemId() == R.id.menu_item_settings) {
+ startActivity(new Intent(this, SettingsActivity.class));
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ public boolean onCreateOptionsMenu(Menu menu) {
+ getMenuInflater().inflate(R.menu.alarm_list_menu, menu);
+ return true;
+ }
+
public void onItemClick(AdapterView parent, View v, int pos, long id) {
Intent intent = new Intent(this, SetAlarm.class);
intent.putExtra(Alarms.ALARM_ID, (int) id);