diff --git a/app/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsController.java b/app/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsController.java index e6c6d4260..7941c3371 100644 --- a/app/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsController.java +++ b/app/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsController.java @@ -99,17 +99,23 @@ public class ListHabitsController public void onExportCSV(List selectedHabits) { - List selected = new LinkedList<>(); + List selected = new ArrayList<>(); if(selectedHabits.isEmpty()) { for (Habit h : habitList) selected.add(h); } else { selected = selectedHabits; } - taskRunner.execute(exportCSVFactory.create(selected, filename -> { - if (filename != null) screen.showSendFileScreen(filename); - else screen.showMessage(R.string.could_not_export); - })); + + ExportCSVTask task = exportCSVFactory.create(selected, filename -> { + if (filename != null){ + screen.showSendFileScreen(filename); + } + else { + screen.showMessage(R.string.could_not_export); + } + }); + taskRunner.execute(task); } public void onExportDB() diff --git a/app/src/main/java/org/isoron/uhabits/activities/habits/show/ShowHabitScreen.java b/app/src/main/java/org/isoron/uhabits/activities/habits/show/ShowHabitScreen.java index 351678d1b..e4a3598a2 100644 --- a/app/src/main/java/org/isoron/uhabits/activities/habits/show/ShowHabitScreen.java +++ b/app/src/main/java/org/isoron/uhabits/activities/habits/show/ShowHabitScreen.java @@ -27,7 +27,7 @@ import org.isoron.uhabits.activities.habits.edit.*; import org.isoron.uhabits.activities.habits.list.ListHabitsController; import org.isoron.uhabits.models.*; -import java.util.LinkedList; +import java.util.ArrayList; import javax.inject.*; @@ -81,12 +81,14 @@ public class ShowHabitScreen extends BaseScreen public void showEditHabitDialog() { - LinkedList selected = new LinkedList<>(); + EditHabitDialog dialog = editHabitDialogFactory.create(habit); + activity.showDialog(dialog, "editHabit"); + } + + public void downloadHabit(){ + ArrayList selected = new ArrayList(); selected.add(habit); habitController.onExportCSV(selected); - - // EditHabitDialog dialog = editHabitDialogFactory.create(habit); - // activity.showDialog(dialog, "editHabit"); } public void showEditHistoryDialog() diff --git a/app/src/main/java/org/isoron/uhabits/activities/habits/show/ShowHabitsMenu.java b/app/src/main/java/org/isoron/uhabits/activities/habits/show/ShowHabitsMenu.java index 92e5af582..0219f3dfa 100644 --- a/app/src/main/java/org/isoron/uhabits/activities/habits/show/ShowHabitsMenu.java +++ b/app/src/main/java/org/isoron/uhabits/activities/habits/show/ShowHabitsMenu.java @@ -50,6 +50,10 @@ public class ShowHabitsMenu extends BaseMenu screen.showEditHabitDialog(); return true; + case R.id.download: + screen.downloadHabit(); + return true; + default: return false; } diff --git a/app/src/main/res/drawable-hdpi/ic_action_download_dark.png b/app/src/main/res/drawable-hdpi/ic_action_download_dark.png new file mode 100644 index 000000000..08819ac70 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_action_download_dark.png differ diff --git a/app/src/main/res/drawable-hdpi/ic_action_download_light.png b/app/src/main/res/drawable-hdpi/ic_action_download_light.png new file mode 100644 index 000000000..1fa597cf1 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_action_download_light.png differ diff --git a/app/src/main/res/drawable-mdpi/ic_action_download_dark.png b/app/src/main/res/drawable-mdpi/ic_action_download_dark.png new file mode 100644 index 000000000..26f4b1e46 Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_action_download_dark.png differ diff --git a/app/src/main/res/drawable-mdpi/ic_action_download_light.png b/app/src/main/res/drawable-mdpi/ic_action_download_light.png new file mode 100644 index 000000000..91981ea36 Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_action_download_light.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_action_download_dark.png b/app/src/main/res/drawable-xhdpi/ic_action_download_dark.png new file mode 100644 index 000000000..fe0ea048d Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_action_download_dark.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_action_download_light.png b/app/src/main/res/drawable-xhdpi/ic_action_download_light.png new file mode 100644 index 000000000..9073f18cd Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_action_download_light.png differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_action_download_dark.png b/app/src/main/res/drawable-xxhdpi/ic_action_download_dark.png new file mode 100644 index 000000000..2021430f7 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_action_download_dark.png differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_action_download_light.png b/app/src/main/res/drawable-xxhdpi/ic_action_download_light.png new file mode 100644 index 000000000..ab3290371 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_action_download_light.png differ diff --git a/app/src/main/res/menu/show_habit.xml b/app/src/main/res/menu/show_habit.xml index 6043fd4e5..96c8ac768 100644 --- a/app/src/main/res/menu/show_habit.xml +++ b/app/src/main/res/menu/show_habit.xml @@ -23,7 +23,7 @@ diff --git a/app/src/main/res/values/attrs.xml b/app/src/main/res/values/attrs.xml index 3c584749f..6470a9b0d 100644 --- a/app/src/main/res/values/attrs.xml +++ b/app/src/main/res/values/attrs.xml @@ -38,6 +38,7 @@ + diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 867e29ec9..a456262a8 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -53,6 +53,7 @@ @drawable/ic_action_add_dark @drawable/ic_action_archive_dark @drawable/ic_action_edit_dark + @drawable/ic_action_download_dark @drawable/ic_action_unarchive_dark @drawable/ic_action_color_dark @drawable/ic_action_filter_dark diff --git a/app/src/test/java/org/isoron/uhabits/activities/habits/list/ListHabitsScreenTest.java b/app/src/test/java/org/isoron/uhabits/activities/habits/list/ListHabitsScreenTest.java index da6c04587..7e30b3d42 100644 --- a/app/src/test/java/org/isoron/uhabits/activities/habits/list/ListHabitsScreenTest.java +++ b/app/src/test/java/org/isoron/uhabits/activities/habits/list/ListHabitsScreenTest.java @@ -37,6 +37,7 @@ import org.junit.runner.*; import org.junit.runners.*; import java.io.*; +import java.util.ArrayList; import static org.isoron.uhabits.activities.habits.list.ListHabitsScreen.*; import static org.mockito.Matchers.any; @@ -133,7 +134,7 @@ public class ListHabitsScreenTest extends BaseUnitTest public void testOnResult_exportCSV() { screen.onResult(REQUEST_SETTINGS, RESULT_EXPORT_CSV, null); - verify(controller).onExportCSV(); + verify(controller).onExportCSV(new ArrayList() ); } @Test diff --git a/app/src/test/java/org/isoron/uhabits/activities/habits/list/ShowHabitsMenuTest.java b/app/src/test/java/org/isoron/uhabits/activities/habits/list/ShowHabitsMenuTest.java index d92e79d25..426d3dd88 100644 --- a/app/src/test/java/org/isoron/uhabits/activities/habits/list/ShowHabitsMenuTest.java +++ b/app/src/test/java/org/isoron/uhabits/activities/habits/list/ShowHabitsMenuTest.java @@ -49,40 +49,15 @@ public class ShowHabitsMenuTest extends BaseUnitTest private ShowHabitScreen screen; private ShowHabitsMenu menu; - private ThemeSwitcher themeSwitcher; - - private ArgumentCaptor matcherCaptor; @Override public void setUp() { super.setUp(); - activity = mock(ShowHabitActivity.class); screen = mock(ShowHabitScreen.class); menu = new ShowHabitsMenu(activity, screen); - - //matcherCaptor = ArgumentCaptor.forClass(HabitMatcher.class); - - } - - @Test - public void testOnCreate() - { - MenuItem nightModeItem = mock(MenuItem.class); - MenuItem hideArchivedItem = mock(MenuItem.class); - MenuItem hideCompletedItem = mock(MenuItem.class); - Menu androidMenu = mock(Menu.class); - when(androidMenu.findItem(R.id.actionToggleNightMode)).thenReturn( - nightModeItem); - when(androidMenu.findItem(R.id.actionHideArchived)).thenReturn( - hideArchivedItem); - when(androidMenu.findItem(R.id.actionHideCompleted)).thenReturn( - hideCompletedItem); - - menu.onCreate(androidMenu); - } @Test