added download functionality for certain habit

pull/234/head
Janet Do 9 years ago
parent 0a8b763ece
commit 110561a57a

@ -97,11 +97,15 @@ public class ListHabitsController
this.exportCSVFactory = exportCSVFactory; this.exportCSVFactory = exportCSVFactory;
} }
public void onExportCSV() public void onExportCSV(List<Habit> selectedHabits)
{ {
List<Habit> selected = new LinkedList<>(); List<Habit> 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 -> { taskRunner.execute(exportCSVFactory.create(selected, filename -> {
if (filename != null) screen.showSendFileScreen(filename); if (filename != null) screen.showSendFileScreen(filename);
else screen.showMessage(R.string.could_not_export); else screen.showMessage(R.string.could_not_export);

@ -36,6 +36,7 @@ import org.isoron.uhabits.models.*;
import org.isoron.uhabits.utils.*; import org.isoron.uhabits.utils.*;
import java.io.*; import java.io.*;
import java.util.LinkedList;
import javax.inject.*; import javax.inject.*;
@ -154,7 +155,7 @@ public class ListHabitsScreen extends BaseScreen
break; break;
case RESULT_EXPORT_CSV: case RESULT_EXPORT_CSV:
controller.onExportCSV(); controller.onExportCSV(new LinkedList<Habit>());
break; break;
case RESULT_EXPORT_DB: case RESULT_EXPORT_DB:

@ -26,6 +26,9 @@ import android.support.annotation.*;
import org.isoron.uhabits.*; import org.isoron.uhabits.*;
import org.isoron.uhabits.activities.*; 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.*; import org.isoron.uhabits.models.*;
/** /**
@ -36,16 +39,25 @@ import org.isoron.uhabits.models.*;
public class ShowHabitActivity extends BaseActivity public class ShowHabitActivity extends BaseActivity
{ {
private HabitList habits; private HabitList habits;
private ListHabitsComponent listHabitComponent;
@Override @Override
protected void onCreate(Bundle savedInstanceState) protected void onCreate(Bundle savedInstanceState)
{ {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
HabitsApplication app = (HabitsApplication) getApplicationContext(); HabitsApplication app = (HabitsApplication) getApplicationContext();
habits = app.getComponent().getHabitList(); habits = app.getComponent().getHabitList();
Habit habit = getHabitFromIntent(); Habit habit = getHabitFromIntent();
listHabitComponent = DaggerListHabitsComponent
.builder()
.appComponent(app.getComponent())
.activityModule(new ActivityModule(this))
.build();
ListHabitsController listHabitController = listHabitComponent.getController();
ShowHabitComponent component = DaggerShowHabitComponent ShowHabitComponent component = DaggerShowHabitComponent
.builder() .builder()
.appComponent(app.getComponent()) .appComponent(app.getComponent())
@ -55,6 +67,7 @@ public class ShowHabitActivity extends BaseActivity
ShowHabitRootView rootView = component.getRootView(); ShowHabitRootView rootView = component.getRootView();
ShowHabitScreen screen = component.getScreen(); ShowHabitScreen screen = component.getScreen();
screen.setHabitsController(listHabitController);
setScreen(screen); setScreen(screen);
screen.setMenu(component.getMenu()); screen.setMenu(component.getMenu());
screen.setController(component.getController()); screen.setController(component.getController());

@ -24,8 +24,11 @@ import android.support.annotation.*;
import org.isoron.uhabits.activities.*; import org.isoron.uhabits.activities.*;
import org.isoron.uhabits.activities.common.dialogs.*; import org.isoron.uhabits.activities.common.dialogs.*;
import org.isoron.uhabits.activities.habits.edit.*; import org.isoron.uhabits.activities.habits.edit.*;
import org.isoron.uhabits.activities.habits.list.ListHabitsController;
import org.isoron.uhabits.models.*; import org.isoron.uhabits.models.*;
import java.util.LinkedList;
import javax.inject.*; import javax.inject.*;
@ActivityScope @ActivityScope
@ -37,6 +40,9 @@ public class ShowHabitScreen extends BaseScreen
@Nullable @Nullable
private ShowHabitController controller; private ShowHabitController controller;
@NonNull
private ListHabitsController habitController;
@NonNull @NonNull
private final EditHabitDialogFactory editHabitDialogFactory; private final EditHabitDialogFactory editHabitDialogFactory;
@ -69,10 +75,18 @@ public class ShowHabitScreen extends BaseScreen
historyEditor.setController(controller); historyEditor.setController(controller);
} }
public void setHabitsController(@Nullable ListHabitsController controller){
this.habitController = controller;
}
public void showEditHabitDialog() public void showEditHabitDialog()
{ {
EditHabitDialog dialog = editHabitDialogFactory.create(habit); LinkedList<Habit> selected = new LinkedList<>();
activity.showDialog(dialog, "editHabit"); selected.add(habit);
habitController.onExportCSV(selected);
// EditHabitDialog dialog = editHabitDialogFactory.create(habit);
// activity.showDialog(dialog, "editHabit");
} }
public void showEditHistoryDialog() public void showEditHistoryDialog()

@ -21,10 +21,18 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android" <menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"> xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/download"
android:icon="?iconArchive"
android:title="@string/download"
app:showAsAction="ifRoom"/>
<item <item
android:id="@+id/action_edit_habit" android:id="@+id/action_edit_habit"
android:icon="?iconEdit" android:icon="?iconEdit"
android:title="@string/edit" android:title="@string/edit"
app:showAsAction="ifRoom"/> app:showAsAction="ifRoom"/>
</menu> </menu>

@ -103,13 +103,13 @@ Loop hat eine minimale Oberfläche und ist deshalb einfach zu benutzen. Es folgt
<!-- Fuzzy --> <!-- Fuzzy -->
<string name="store_feature_score">"&lt;b&gt;Habit Wertung&lt;/b&gt; <string name="store_feature_score">"&lt;b&gt;Habit Wertung&lt;/b&gt;
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."</string> 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."</string>
<string name="store_feature_statistics">"&lt;b&gt;Statistiken&lt;/b&gt; <string name="store_feature_statistics">"&lt;b&gt;Statistiken&lt;/b&gt;
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."</string> 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."</string>
<string name="store_feature_schedules">"&lt;b&gt;Flexible Zeiten&lt;/b&gt; <string name="store_feature_schedules">"&lt;b&gt;Flexible Zeiten&lt;/b&gt;
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."</string> 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."</string>
<string name="store_feature_reminders">"&lt;b&gt;Erinnerungen&lt;/b&gt; <string name="store_feature_reminders">"&lt;b&gt;Erinnerungen&lt;/b&gt;
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."</string> 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."</string>
<string name="store_feature_opensource">"&lt;b&gt;Komplett werbefrei und Open Source&lt;/b&gt; <string name="store_feature_opensource">"&lt;b&gt;Komplett werbefrei und Open Source&lt;/b&gt;
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."</string> 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."</string>
<string name="store_feature_wear">"&lt;b&gt;Optimiert für Smartwatches&lt;/b&gt; <string name="store_feature_wear">"&lt;b&gt;Optimiert für Smartwatches&lt;/b&gt;
@ -142,7 +142,7 @@ Erinnerungen können direkt von deiner Android Wear Watch abgehakt, pausiert ode
<!-- "All time" number of repetitions. Or number of repetitions "since the beginning". --> <!-- "All time" number of repetitions. Or number of repetitions "since the beginning". -->
<!-- Fuzzy --> <!-- Fuzzy -->
<string name="all_time">"Allzeit"</string> <string name="all_time">"Jederzeit"</string>
<string name="every_day">"Jeden Tag"</string> <string name="every_day">"Jeden Tag"</string>
<string name="every_week">"Jede Woche"</string> <string name="every_week">"Jede Woche"</string>
<string name="two_times_per_week">"2 Mal pro Woche"</string> <string name="two_times_per_week">"2 Mal pro Woche"</string>

@ -23,6 +23,7 @@
<string name="app_name">Loop Habit Tracker</string> <string name="app_name">Loop Habit Tracker</string>
<string name="main_activity_title">Habits</string> <string name="main_activity_title">Habits</string>
<string name="action_settings">Settings</string> <string name="action_settings">Settings</string>
<string name="download">Download</string>
<string name="edit">Edit</string> <string name="edit">Edit</string>
<string name="delete">Delete</string> <string name="delete">Delete</string>
<string name="archive">Archive</string> <string name="archive">Archive</string>

Loading…
Cancel
Save