TODOs: Minor Polish
An attempt to improve the look-and-feel of the app without changing
interactions much yet.
- The plus in the FAB is now a white icon instead of green.
- New icons for delete and delete todo list
- Menu items made visible for Share and Edit List
- Padding removed in the content area
- Swipe backgrounds have margin so that they don't look bad.
Colors updated to off-green and off-red.
- UI tests were updated since accessing menu items in the action bar
differs from the overflow menu.
Note: It's really hard to get Material Icons in Android.
Way, way harder than Flutter. Also, I don't understand why these aren't
readily available already. The icon assets are just 1 software update away.
Why should everybody be downloading these in every copy of their apps?
Change-Id: I5a51fe4154fcfce6f5d88fa834e54ae5e2c9b318
diff --git a/app/src/androidTestMock/java/io/v/todos/TodoListActivityTest.java b/app/src/androidTestMock/java/io/v/todos/TodoListActivityTest.java
index 3fd8212..22be53e 100644
--- a/app/src/androidTestMock/java/io/v/todos/TodoListActivityTest.java
+++ b/app/src/androidTestMock/java/io/v/todos/TodoListActivityTest.java
@@ -394,12 +394,17 @@
verifyMockPersistence(mocked, 0, 0, 0, 1, 1, 0);
}
- private void tapMenuItem(int stringId) {
+ private void tapMenuItem(int itemId) {
+ // This item is visible in the action bar. It has no text, so refer to it by id.
+ onView(withId(itemId)).perform(click());
+ }
+
+ private void tapMenuItemInMenu(int stringId) {
openActionBarOverflowOrOptionsMenu(mActivity);
pause();
- // The menu items don't know their own IDs, so we have to use their text to find them.
+ // Use the string id if it was in overflow/options. These don't have ids.
onView(withText(stringId)).perform(click());
}
@@ -421,7 +426,7 @@
pause();
// 1. DISMISS THE DIALOG
- tapMenuItem(R.string.action_edit);
+ tapMenuItem(R.id.action_edit);
pause();
@@ -434,7 +439,7 @@
verifyMockPersistence(mocked);
// 2. CANCEL THE DIALOG
- tapMenuItem(R.string.action_edit);
+ tapMenuItem(R.id.action_edit);
pause();
@@ -447,7 +452,7 @@
verifyMockPersistence(mocked);
// 3. PRESS SAVE
- tapMenuItem(R.string.action_edit);
+ tapMenuItem(R.id.action_edit);
pause();
@@ -460,7 +465,7 @@
verifyMockPersistence(mocked, 1, 0, 0, 0, 0, 0);
// 4. PRESS DELETE
- tapMenuItem(R.string.action_edit);
+ tapMenuItem(R.id.action_edit);
pause();
@@ -476,7 +481,7 @@
public void testTapMenuShowDone() {
TodoListPersistence mocked = mockPersistence();
- tapMenuItem(R.string.show_done);
+ tapMenuItemInMenu(R.string.show_done);
pause();
diff --git a/app/src/main/res/drawable-hdpi/ic_add_white_24dp.png b/app/src/main/res/drawable-hdpi/ic_add_white_24dp.png
new file mode 100644
index 0000000..694179b
--- /dev/null
+++ b/app/src/main/res/drawable-hdpi/ic_add_white_24dp.png
Binary files differ
diff --git a/app/src/main/res/drawable-hdpi/ic_create_white_24dp.png b/app/src/main/res/drawable-hdpi/ic_create_white_24dp.png
new file mode 100644
index 0000000..d3ff58d
--- /dev/null
+++ b/app/src/main/res/drawable-hdpi/ic_create_white_24dp.png
Binary files differ
diff --git a/app/src/main/res/drawable-hdpi/ic_delete_black_24dp.png b/app/src/main/res/drawable-hdpi/ic_delete_black_24dp.png
new file mode 100644
index 0000000..dbbb602
--- /dev/null
+++ b/app/src/main/res/drawable-hdpi/ic_delete_black_24dp.png
Binary files differ
diff --git a/app/src/main/res/drawable-hdpi/ic_delete_sweep_black_24dp.png b/app/src/main/res/drawable-hdpi/ic_delete_sweep_black_24dp.png
new file mode 100644
index 0000000..2441f51
--- /dev/null
+++ b/app/src/main/res/drawable-hdpi/ic_delete_sweep_black_24dp.png
Binary files differ
diff --git a/app/src/main/res/drawable-hdpi/ic_person_add_white_24dp.png b/app/src/main/res/drawable-hdpi/ic_person_add_white_24dp.png
new file mode 100644
index 0000000..10ae5a7
--- /dev/null
+++ b/app/src/main/res/drawable-hdpi/ic_person_add_white_24dp.png
Binary files differ
diff --git a/app/src/main/res/drawable-mdpi/ic_add_white_24dp.png b/app/src/main/res/drawable-mdpi/ic_add_white_24dp.png
new file mode 100644
index 0000000..3856041
--- /dev/null
+++ b/app/src/main/res/drawable-mdpi/ic_add_white_24dp.png
Binary files differ
diff --git a/app/src/main/res/drawable-mdpi/ic_create_white_24dp.png b/app/src/main/res/drawable-mdpi/ic_create_white_24dp.png
new file mode 100644
index 0000000..12b09f1
--- /dev/null
+++ b/app/src/main/res/drawable-mdpi/ic_create_white_24dp.png
Binary files differ
diff --git a/app/src/main/res/drawable-mdpi/ic_delete_black_24dp.png b/app/src/main/res/drawable-mdpi/ic_delete_black_24dp.png
new file mode 100644
index 0000000..999aa4c
--- /dev/null
+++ b/app/src/main/res/drawable-mdpi/ic_delete_black_24dp.png
Binary files differ
diff --git a/app/src/main/res/drawable-mdpi/ic_delete_sweep_black_24dp.png b/app/src/main/res/drawable-mdpi/ic_delete_sweep_black_24dp.png
new file mode 100644
index 0000000..5cda51e
--- /dev/null
+++ b/app/src/main/res/drawable-mdpi/ic_delete_sweep_black_24dp.png
Binary files differ
diff --git a/app/src/main/res/drawable-mdpi/ic_person_add_white_24dp.png b/app/src/main/res/drawable-mdpi/ic_person_add_white_24dp.png
new file mode 100644
index 0000000..38e0a28
--- /dev/null
+++ b/app/src/main/res/drawable-mdpi/ic_person_add_white_24dp.png
Binary files differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_add_white_24dp.png b/app/src/main/res/drawable-xhdpi/ic_add_white_24dp.png
new file mode 100644
index 0000000..67bb598
--- /dev/null
+++ b/app/src/main/res/drawable-xhdpi/ic_add_white_24dp.png
Binary files differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_create_white_24dp.png b/app/src/main/res/drawable-xhdpi/ic_create_white_24dp.png
new file mode 100644
index 0000000..5a06bff
--- /dev/null
+++ b/app/src/main/res/drawable-xhdpi/ic_create_white_24dp.png
Binary files differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_delete_black_24dp.png b/app/src/main/res/drawable-xhdpi/ic_delete_black_24dp.png
new file mode 100644
index 0000000..796ccd2
--- /dev/null
+++ b/app/src/main/res/drawable-xhdpi/ic_delete_black_24dp.png
Binary files differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_delete_sweep_black_24dp.png b/app/src/main/res/drawable-xhdpi/ic_delete_sweep_black_24dp.png
new file mode 100644
index 0000000..c49cf21
--- /dev/null
+++ b/app/src/main/res/drawable-xhdpi/ic_delete_sweep_black_24dp.png
Binary files differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_person_add_white_24dp.png b/app/src/main/res/drawable-xhdpi/ic_person_add_white_24dp.png
new file mode 100644
index 0000000..7e7c289
--- /dev/null
+++ b/app/src/main/res/drawable-xhdpi/ic_person_add_white_24dp.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_add_white_24dp.png b/app/src/main/res/drawable-xxhdpi/ic_add_white_24dp.png
new file mode 100644
index 0000000..0fdced8
--- /dev/null
+++ b/app/src/main/res/drawable-xxhdpi/ic_add_white_24dp.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_create_white_24dp.png b/app/src/main/res/drawable-xxhdpi/ic_create_white_24dp.png
new file mode 100644
index 0000000..02e19d0
--- /dev/null
+++ b/app/src/main/res/drawable-xxhdpi/ic_create_white_24dp.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_delete_black_24dp.png b/app/src/main/res/drawable-xxhdpi/ic_delete_black_24dp.png
new file mode 100644
index 0000000..6d7cb81
--- /dev/null
+++ b/app/src/main/res/drawable-xxhdpi/ic_delete_black_24dp.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_delete_sweep_black_24dp.png b/app/src/main/res/drawable-xxhdpi/ic_delete_sweep_black_24dp.png
new file mode 100644
index 0000000..9933e46
--- /dev/null
+++ b/app/src/main/res/drawable-xxhdpi/ic_delete_sweep_black_24dp.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_person_add_white_24dp.png b/app/src/main/res/drawable-xxhdpi/ic_person_add_white_24dp.png
new file mode 100644
index 0000000..8f744f0
--- /dev/null
+++ b/app/src/main/res/drawable-xxhdpi/ic_person_add_white_24dp.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxxhdpi/ic_add_white_24dp.png b/app/src/main/res/drawable-xxxhdpi/ic_add_white_24dp.png
new file mode 100644
index 0000000..d64c22e
--- /dev/null
+++ b/app/src/main/res/drawable-xxxhdpi/ic_add_white_24dp.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxxhdpi/ic_create_white_24dp.png b/app/src/main/res/drawable-xxxhdpi/ic_create_white_24dp.png
new file mode 100644
index 0000000..d6668a0
--- /dev/null
+++ b/app/src/main/res/drawable-xxxhdpi/ic_create_white_24dp.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxxhdpi/ic_delete_black_24dp.png b/app/src/main/res/drawable-xxxhdpi/ic_delete_black_24dp.png
new file mode 100644
index 0000000..f2b75c3
--- /dev/null
+++ b/app/src/main/res/drawable-xxxhdpi/ic_delete_black_24dp.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxxhdpi/ic_delete_sweep_black_24dp.png b/app/src/main/res/drawable-xxxhdpi/ic_delete_sweep_black_24dp.png
new file mode 100644
index 0000000..34725ef
--- /dev/null
+++ b/app/src/main/res/drawable-xxxhdpi/ic_delete_sweep_black_24dp.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxxhdpi/ic_person_add_white_24dp.png b/app/src/main/res/drawable-xxxhdpi/ic_person_add_white_24dp.png
new file mode 100644
index 0000000..2fa2cca
--- /dev/null
+++ b/app/src/main/res/drawable-xxxhdpi/ic_person_add_white_24dp.png
Binary files differ
diff --git a/app/src/main/res/layout/content_main.xml b/app/src/main/res/layout/content_main.xml
index 2b88956..fd3e0fb 100644
--- a/app/src/main/res/layout/content_main.xml
+++ b/app/src/main/res/layout/content_main.xml
@@ -4,10 +4,6 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:paddingBottom="@dimen/activity_vertical_margin"
- android:paddingLeft="@dimen/activity_horizontal_margin"
- android:paddingRight="@dimen/activity_horizontal_margin"
- android:paddingTop="@dimen/activity_vertical_margin"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="io.v.todos.MainActivity"
tools:showIn="@layout/activity_main">
@@ -41,6 +37,6 @@
android:layout_margin="@dimen/fab_margin"
android:clickable="true"
android:onClick="initiateItemAdd"
- android:src="@android:drawable/ic_input_add"
+ android:src="@drawable/ic_add_white_24dp"
app:fabSize="normal"/>
</RelativeLayout>
diff --git a/app/src/main/res/layout/task_row.xml b/app/src/main/res/layout/task_row.xml
index e268ea8..b0d15a5 100644
--- a/app/src/main/res/layout/task_row.xml
+++ b/app/src/main/res/layout/task_row.xml
@@ -7,7 +7,8 @@
android:id="@+id/swipe_right"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:background="#00FF00"
+ android:background="#4CAF50"
+ android:layout_marginBottom="1dp"
android:visibility="gone">
<ImageView
@@ -22,7 +23,8 @@
android:id="@+id/swipe_left"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:background="#FF0000"
+ android:background="#F44336"
+ android:layout_marginBottom="1dp"
android:gravity="right"
android:visibility="gone">
@@ -31,7 +33,7 @@
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_margin="@dimen/fab_margin"
- android:src="@android:drawable/ic_input_delete"/>
+ android:src="@drawable/ic_delete_black_24dp"/>
</LinearLayout>
<android.support.v7.widget.CardView android:id="@+id/card"
@@ -39,8 +41,9 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="1dp"
+ card_view:cardElevation="1dp"
card_view:cardBackgroundColor="#DDDDFF"
- card_view:cardElevation="1dp">
+ card_view:cardCornerRadius="0dp">
<LinearLayout
android:layout_width="match_parent"
diff --git a/app/src/main/res/layout/todo_list_row.xml b/app/src/main/res/layout/todo_list_row.xml
index 819b107..0797e93 100644
--- a/app/src/main/res/layout/todo_list_row.xml
+++ b/app/src/main/res/layout/todo_list_row.xml
@@ -6,7 +6,8 @@
android:id="@+id/swipe_right"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:background="#00FF00"
+ android:background="#4CAF50"
+ android:layout_marginBottom="1dp"
android:visibility="gone">
<ImageView
android:layout_width="wrap_content"
@@ -19,13 +20,14 @@
android:id="@+id/swipe_left"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:background="#FF0000"
+ android:background="#F44336"
+ android:layout_marginBottom="1dp"
android:gravity="right"
android:visibility="gone">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:src="@android:drawable/ic_input_delete"
+ android:src="@drawable/ic_delete_sweep_black_24dp"
android:layout_gravity="center_vertical"
android:layout_margin="@dimen/fab_margin"/>
</LinearLayout>
@@ -37,7 +39,7 @@
android:layout_marginBottom="1dp"
card_view:cardElevation="1dp"
card_view:cardBackgroundColor="#DDDDFF"
- card_view:cardCornerRadius="5dp">
+ card_view:cardCornerRadius="0dp">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
diff --git a/app/src/main/res/menu/menu_task.xml b/app/src/main/res/menu/menu_task.xml
index 449ae38..03c1083 100644
--- a/app/src/main/res/menu/menu_task.xml
+++ b/app/src/main/res/menu/menu_task.xml
@@ -3,18 +3,20 @@
xmlns:tools="http://schemas.android.com/tools"
tools:context="io.v.todos.TodoListActivity">
<item
- android:id="@+id/show_done"
- android:orderInCategory="101"
- android:checkable="true"
- android:title="@string/show_done" />
- <item
- android:id="@+id/action_edit"
android:orderInCategory="102"
+ android:id="@+id/action_edit"
android:title="@string/action_edit"
- app:showAsAction="never" />
+ android:icon="@drawable/ic_create_white_24dp"
+ android:showAsAction="always" />
+ <item
+ android:id="@+id/show_done"
+ android:orderInCategory="104"
+ android:checkable="true"
+ android:title="@string/show_done"
+ android:showAsAction="never"/>
<item
android:id="@+id/action_debug"
- android:orderInCategory="104"
+ android:orderInCategory="105"
android:title="@string/action_debug"
- app:showAsAction="never" />
+ android:showAsAction="never" />
</menu>
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 5b062a7..3d878aa 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1,7 +1,7 @@
<resources>
<string name="action_debug">Debug DB</string>
- <string name="action_edit">Edit</string>
- <string name="action_share">Share</string>
+ <string name="action_edit">Edit List</string>
+ <string name="action_share">Share List</string>
<string name="show_done">Show Done</string>
<string name="set_button">Set</string>
<string name="add_button">Add</string>
diff --git a/app/src/syncbase/res/menu/menu_share.xml b/app/src/syncbase/res/menu/menu_share.xml
index f74bd86..90f5725 100644
--- a/app/src/syncbase/res/menu/menu_share.xml
+++ b/app/src/syncbase/res/menu/menu_share.xml
@@ -4,7 +4,8 @@
tools:context="io.v.todos.TodoListActivity">
<item
android:id="@+id/action_share"
- android:orderInCategory="103"
+ android:orderInCategory="101"
android:title="@string/action_share"
- app:showAsAction="never" />
+ android:icon="@drawable/ic_person_add_white_24dp"
+ android:showAsAction="always" />
</menu>
diff --git a/app/src/syncbase/res/menu/neighborhood.xml b/app/src/syncbase/res/menu/neighborhood.xml
index 622ff1d..b7d77d8 100644
--- a/app/src/syncbase/res/menu/neighborhood.xml
+++ b/app/src/syncbase/res/menu/neighborhood.xml
@@ -2,6 +2,7 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:id="@+id/advertise_neighborhood"
+ android:orderInCategory="103"
android:checkable="true"
android:icon="@drawable/ic_advertise_neighborhood_off_white_24dp"
android:title="@string/share_location"
diff --git a/app/src/syncbase/res/values/strings.xml b/app/src/syncbase/res/values/strings.xml
index dbffb09..bc20f9d 100644
--- a/app/src/syncbase/res/values/strings.xml
+++ b/app/src/syncbase/res/values/strings.xml
@@ -1,6 +1,6 @@
<resources>
<string name="app_name">Syncbase Todos</string>
- <string name="share_location">Share Location</string>
+ <string name="share_location">Share Presence</string>
<!-- For Sharing Menu -->
<string name="sharing_already">Sharing With</string>
<string name="sharing_possible">Nearby</string>