From 110561a57a51db71e1a8c1120e347b260506234c Mon Sep 17 00:00:00 2001 From: Janet Do Date: Mon, 2 Jan 2017 19:54:14 +0100 Subject: [PATCH] added download functionality for certain habit --- .../habits/list/ListHabitsController.java | 10 +++++++--- .../habits/list/ListHabitsScreen.java | 3 ++- .../habits/show/ShowHabitActivity.java | 13 +++++++++++++ .../habits/show/ShowHabitScreen.java | 18 ++++++++++++++++-- app/src/main/res/menu/show_habit.xml | 8 ++++++++ app/src/main/res/values-de/strings.xml | 8 ++++---- app/src/main/res/values/strings.xml | 1 + 7 files changed, 51 insertions(+), 10 deletions(-) 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 1d6462893..e6c6d4260 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 @@ -97,11 +97,15 @@ public class ListHabitsController this.exportCSVFactory = exportCSVFactory; } - public void onExportCSV() + public void onExportCSV(List selectedHabits) { List selected = new LinkedList<>(); - for (Habit h : habitList) selected.add(h); - + 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); diff --git a/app/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsScreen.java b/app/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsScreen.java index 045505a90..3c69f81f3 100644 --- a/app/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsScreen.java +++ b/app/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsScreen.java @@ -36,6 +36,7 @@ import org.isoron.uhabits.models.*; import org.isoron.uhabits.utils.*; import java.io.*; +import java.util.LinkedList; import javax.inject.*; @@ -154,7 +155,7 @@ public class ListHabitsScreen extends BaseScreen break; case RESULT_EXPORT_CSV: - controller.onExportCSV(); + controller.onExportCSV(new LinkedList()); break; case RESULT_EXPORT_DB: diff --git a/app/src/main/java/org/isoron/uhabits/activities/habits/show/ShowHabitActivity.java b/app/src/main/java/org/isoron/uhabits/activities/habits/show/ShowHabitActivity.java index 7d9a90eef..bebd11c62 100644 --- a/app/src/main/java/org/isoron/uhabits/activities/habits/show/ShowHabitActivity.java +++ b/app/src/main/java/org/isoron/uhabits/activities/habits/show/ShowHabitActivity.java @@ -26,6 +26,9 @@ import android.support.annotation.*; import org.isoron.uhabits.*; import org.isoron.uhabits.activities.*; +import org.isoron.uhabits.activities.habits.list.DaggerListHabitsComponent; +import org.isoron.uhabits.activities.habits.list.ListHabitsComponent; +import org.isoron.uhabits.activities.habits.list.ListHabitsController; import org.isoron.uhabits.models.*; /** @@ -36,16 +39,25 @@ import org.isoron.uhabits.models.*; public class ShowHabitActivity extends BaseActivity { private HabitList habits; + private ListHabitsComponent listHabitComponent; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + HabitsApplication app = (HabitsApplication) getApplicationContext(); habits = app.getComponent().getHabitList(); Habit habit = getHabitFromIntent(); + listHabitComponent = DaggerListHabitsComponent + .builder() + .appComponent(app.getComponent()) + .activityModule(new ActivityModule(this)) + .build(); + ListHabitsController listHabitController = listHabitComponent.getController(); + ShowHabitComponent component = DaggerShowHabitComponent .builder() .appComponent(app.getComponent()) @@ -55,6 +67,7 @@ public class ShowHabitActivity extends BaseActivity ShowHabitRootView rootView = component.getRootView(); ShowHabitScreen screen = component.getScreen(); + screen.setHabitsController(listHabitController); setScreen(screen); screen.setMenu(component.getMenu()); screen.setController(component.getController()); 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 1c238c02e..351678d1b 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 @@ -24,8 +24,11 @@ import android.support.annotation.*; import org.isoron.uhabits.activities.*; import org.isoron.uhabits.activities.common.dialogs.*; 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 javax.inject.*; @ActivityScope @@ -37,6 +40,9 @@ public class ShowHabitScreen extends BaseScreen @Nullable private ShowHabitController controller; + @NonNull + private ListHabitsController habitController; + @NonNull private final EditHabitDialogFactory editHabitDialogFactory; @@ -69,10 +75,18 @@ public class ShowHabitScreen extends BaseScreen historyEditor.setController(controller); } + public void setHabitsController(@Nullable ListHabitsController controller){ + this.habitController = controller; + } + public void showEditHabitDialog() { - EditHabitDialog dialog = editHabitDialogFactory.create(habit); - activity.showDialog(dialog, "editHabit"); + LinkedList selected = new LinkedList<>(); + selected.add(habit); + habitController.onExportCSV(selected); + + // EditHabitDialog dialog = editHabitDialogFactory.create(habit); + // activity.showDialog(dialog, "editHabit"); } public void showEditHistoryDialog() diff --git a/app/src/main/res/menu/show_habit.xml b/app/src/main/res/menu/show_habit.xml index ec81337c8..6043fd4e5 100644 --- a/app/src/main/res/menu/show_habit.xml +++ b/app/src/main/res/menu/show_habit.xml @@ -21,10 +21,18 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index e3fa85f7f..a0761b191 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -103,13 +103,13 @@ Loop hat eine minimale Oberfläche und ist deshalb einfach zu benutzen. Es folgt "<b>Habit Wertung</b> -Um dir deine kleinen Schwächen zu zeigen hat Loop einen Algorithmus, um deine Gewohnheiten zu erkennen. Jede Wiederholung verstärkt diese und jedes Aussetzen schwächt sie. Aber ein paar Verfehlungen nach langem Durchhalten machen natürlich nicht gleich alles zu Nichte." +Um dir deine kleinen Schwächen zu zeigen hat Loop einen Algorithmus entwickelt, um deine Gewohnheiten zu erkennen. Jede Wiederholung verstärkt diese und jedes Aussetzen schwächt sie. Aber ein paar Fehltage nach langem Durchhalten machen natürlich nicht gleich alles zu Nichte." "<b>Statistiken</b> -Schau dir an, wie sich deine Gewohnheiten im Laufe der Zeit entwickelt haben. Schau auf die schönen Diagramme und gehe zurück im gesamten Verlauf." +Schau dir an, wie sich deine Gewohnheiten im Laufe der Zeit entwickelt haben. Schaue dir die Diagramme an oder gehe zurück im gesamten Verlauf." "<b>Flexible Zeiten</b> Unterstützt sowohl tägliche Vorgaben, als auch komplexere Pläne, wie etwa 3 Mal pro Woche; einmal in jeder anderen Woche; oder jeden anderen Tag." "<b>Erinnerungen</b> -Erstelle individuelle Erinnerungen und wann diese dich benachrichtigen sollen. Kontrolliere deine Vorhaben ganz einfach und lehne sie bei Bedarf direkt ab, ohne die App zu öffnen." +Erstelle individuelle Erinnerungen und wann diese dich benachrichtigen sollen. Kontrolliere dein Vorhaben ganz einfach und lehne sie bei Bedarf direkt ab, ohne die App zu öffnen." "<b>Komplett werbefrei und Open Source</b> Es gibt absolut keine Werbung, nervende Einblendungen oder merkwürdige Berechtigungen in dieser App und das wird auch so bleiben. Der komplette Quellcode steht unter der GPLv3." "<b>Optimiert für Smartwatches</b> @@ -142,7 +142,7 @@ Erinnerungen können direkt von deiner Android Wear Watch abgehakt, pausiert ode -"Allzeit" +"Jederzeit" "Jeden Tag" "Jede Woche" "2 Mal pro Woche" diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 9d3f32315..1b414e89d 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -23,6 +23,7 @@ Loop Habit Tracker Habits Settings + Download Edit Delete Archive