From de45f3fe6b87722dfdd43d62f87e210f023dbb29 Mon Sep 17 00:00:00 2001 From: Rechee Jozil Date: Tue, 21 Feb 2017 22:14:21 -0500 Subject: [PATCH 1/6] Added stackable notifications --- .../uhabits/notifications/NotificationTray.java | 15 +++++++++++++++ app/src/main/res/values/strings.xml | 1 + 2 files changed, 16 insertions(+) diff --git a/app/src/main/java/org/isoron/uhabits/notifications/NotificationTray.java b/app/src/main/java/org/isoron/uhabits/notifications/NotificationTray.java index d6a0253a2..770174297 100644 --- a/app/src/main/java/org/isoron/uhabits/notifications/NotificationTray.java +++ b/app/src/main/java/org/isoron/uhabits/notifications/NotificationTray.java @@ -172,6 +172,9 @@ public class NotificationTray private final long reminderTime; + private final String GROUP_KEY_HABITS = "group_key_habits"; + private static final int SUMMARY_ID = 0; + public ShowNotificationTask(Habit habit, NotificationData data) { this.habit = habit; @@ -221,17 +224,29 @@ public class NotificationTray .addAction(snoozeAction) .setSound(getRingtoneUri(context)) .extend(wearableExtender) + .setGroup(GROUP_KEY_HABITS) .setWhen(reminderTime) .setShowWhen(true) .setOngoing(preferences.shouldMakeNotificationsSticky()) .build(); + //you need to create a summary notification to group notifications together. + Notification summaryNotification = new Builder(context) + .setSmallIcon(R.drawable.ic_notification) + .setContentTitle(context.getString(R.string.summary_notification_title)) + .setWhen(reminderTime) + .setGroupSummary(true) + .setGroup(GROUP_KEY_HABITS) + .setShowWhen(true) + .build(); + NotificationManager notificationManager = (NotificationManager) context.getSystemService( Activity.NOTIFICATION_SERVICE); int notificationId = getNotificationId(habit); notificationManager.notify(notificationId, notification); + notificationManager.notify(SUMMARY_ID, summaryNotification); } private boolean shouldShowReminderToday() diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 04b2c20bc..e985ba481 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -203,4 +203,5 @@ By color By score Download + Habit Reminders \ No newline at end of file From 7c85786d5c47d65684a57db5983cff1ff7fc9052 Mon Sep 17 00:00:00 2001 From: Rechee Jozil Date: Thu, 23 Feb 2017 21:02:10 -0500 Subject: [PATCH 2/6] Temporary check in --- .../habits/list/ListHabitsActivity.java | 26 ++++++++++++++++++- .../list/model/HabitCardListAdapter.java | 15 +++++++++++ .../habits/list/model/HabitCardListCache.java | 11 ++++++++ 3 files changed, 51 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsActivity.java b/app/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsActivity.java index deb1b3649..f8421204b 100644 --- a/app/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsActivity.java +++ b/app/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsActivity.java @@ -24,9 +24,13 @@ import android.os.*; import org.isoron.uhabits.*; import org.isoron.uhabits.activities.*; import org.isoron.uhabits.activities.habits.list.model.*; +import org.isoron.uhabits.models.Habit; import org.isoron.uhabits.preferences.*; import org.isoron.uhabits.utils.*; +import java.util.ArrayList; +import java.util.List; + /** * Activity that allows the user to see and modify the list of habits. */ @@ -57,7 +61,6 @@ public class ListHabitsActivity extends BaseActivity super.onCreate(savedInstanceState); HabitsApplication app = (HabitsApplication) getApplicationContext(); - component = DaggerListHabitsComponent .builder() .appComponent(app.getComponent()) @@ -82,10 +85,31 @@ public class ListHabitsActivity extends BaseActivity midnightTimer = component.getMidnightTimer(); + if(savedInstanceState != null){ + long[] selected = savedInstanceState.getLongArray("selected"); + + if(selected != null){ + adapter.selectSavedHabits(selected); + } + } + setScreen(screen); controller.onStartup(); } + @Override + protected void onSaveInstanceState (Bundle outState){ + super.onSaveInstanceState(outState); + List selected = adapter.getSelected(); + if(selected.size() != 0){ + long[] ids = new long[selected.size()]; + for(int i = 0; i < selected.size(); i++){ + ids[i] = selected.get(i).getId(); + } + outState.putLongArray("selected", ids); + } + } + @Override protected void onPause() { diff --git a/app/src/main/java/org/isoron/uhabits/activities/habits/list/model/HabitCardListAdapter.java b/app/src/main/java/org/isoron/uhabits/activities/habits/list/model/HabitCardListAdapter.java index 55656b542..aa63b38ec 100644 --- a/app/src/main/java/org/isoron/uhabits/activities/habits/list/model/HabitCardListAdapter.java +++ b/app/src/main/java/org/isoron/uhabits/activities/habits/list/model/HabitCardListAdapter.java @@ -19,6 +19,8 @@ package org.isoron.uhabits.activities.habits.list.model; +import android.content.res.Resources; +import android.content.res.Resources.NotFoundException; import android.support.annotation.*; import android.support.v7.widget.*; import android.view.*; @@ -305,4 +307,17 @@ public class HabitCardListAdapter else selected.remove(h); notifyDataSetChanged(); } + + public void addSelectedHabit(Habit habitToSelect){ + selected.add(habitToSelect); + notifyDataSetChanged(); + } + + public void selectSavedHabits(long[] selectedIDs) throws NotFoundException { + for(long id : selectedIDs) + { + Habit selectedHabit = cache.getHabitById(id); + addSelectedHabit(selectedHabit); + } + } } diff --git a/app/src/main/java/org/isoron/uhabits/activities/habits/list/model/HabitCardListCache.java b/app/src/main/java/org/isoron/uhabits/activities/habits/list/model/HabitCardListCache.java index fbb4e51a6..2231b453f 100644 --- a/app/src/main/java/org/isoron/uhabits/activities/habits/list/model/HabitCardListCache.java +++ b/app/src/main/java/org/isoron/uhabits/activities/habits/list/model/HabitCardListCache.java @@ -19,6 +19,7 @@ package org.isoron.uhabits.activities.habits.list.model; +import android.content.res.Resources; import android.support.annotation.*; import org.isoron.uhabits.*; @@ -102,6 +103,16 @@ public class HabitCardListCache implements CommandRunner.Listener return data.habits.get(position); } + public Habit getHabitById(long id){ + for(Habit habit: data.habits){ + if(habit.getId() == id){ + return habit; + } + } + + throw new Resources.NotFoundException("Habit not found."); + } + public int getHabitCount() { return data.habits.size(); From ef62afb07e01e36782bd07ed4a25cc74cea91291 Mon Sep 17 00:00:00 2001 From: Rechee Jozil Date: Fri, 24 Feb 2017 17:15:51 -0500 Subject: [PATCH 3/6] Revert "Temporary check in" This reverts commit 7c85786d5c47d65684a57db5983cff1ff7fc9052. --- .../habits/list/ListHabitsActivity.java | 26 +------------------ .../list/model/HabitCardListAdapter.java | 15 ----------- .../habits/list/model/HabitCardListCache.java | 11 -------- 3 files changed, 1 insertion(+), 51 deletions(-) diff --git a/app/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsActivity.java b/app/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsActivity.java index f8421204b..deb1b3649 100644 --- a/app/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsActivity.java +++ b/app/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsActivity.java @@ -24,13 +24,9 @@ import android.os.*; import org.isoron.uhabits.*; import org.isoron.uhabits.activities.*; import org.isoron.uhabits.activities.habits.list.model.*; -import org.isoron.uhabits.models.Habit; import org.isoron.uhabits.preferences.*; import org.isoron.uhabits.utils.*; -import java.util.ArrayList; -import java.util.List; - /** * Activity that allows the user to see and modify the list of habits. */ @@ -61,6 +57,7 @@ public class ListHabitsActivity extends BaseActivity super.onCreate(savedInstanceState); HabitsApplication app = (HabitsApplication) getApplicationContext(); + component = DaggerListHabitsComponent .builder() .appComponent(app.getComponent()) @@ -85,31 +82,10 @@ public class ListHabitsActivity extends BaseActivity midnightTimer = component.getMidnightTimer(); - if(savedInstanceState != null){ - long[] selected = savedInstanceState.getLongArray("selected"); - - if(selected != null){ - adapter.selectSavedHabits(selected); - } - } - setScreen(screen); controller.onStartup(); } - @Override - protected void onSaveInstanceState (Bundle outState){ - super.onSaveInstanceState(outState); - List selected = adapter.getSelected(); - if(selected.size() != 0){ - long[] ids = new long[selected.size()]; - for(int i = 0; i < selected.size(); i++){ - ids[i] = selected.get(i).getId(); - } - outState.putLongArray("selected", ids); - } - } - @Override protected void onPause() { diff --git a/app/src/main/java/org/isoron/uhabits/activities/habits/list/model/HabitCardListAdapter.java b/app/src/main/java/org/isoron/uhabits/activities/habits/list/model/HabitCardListAdapter.java index aa63b38ec..55656b542 100644 --- a/app/src/main/java/org/isoron/uhabits/activities/habits/list/model/HabitCardListAdapter.java +++ b/app/src/main/java/org/isoron/uhabits/activities/habits/list/model/HabitCardListAdapter.java @@ -19,8 +19,6 @@ package org.isoron.uhabits.activities.habits.list.model; -import android.content.res.Resources; -import android.content.res.Resources.NotFoundException; import android.support.annotation.*; import android.support.v7.widget.*; import android.view.*; @@ -307,17 +305,4 @@ public class HabitCardListAdapter else selected.remove(h); notifyDataSetChanged(); } - - public void addSelectedHabit(Habit habitToSelect){ - selected.add(habitToSelect); - notifyDataSetChanged(); - } - - public void selectSavedHabits(long[] selectedIDs) throws NotFoundException { - for(long id : selectedIDs) - { - Habit selectedHabit = cache.getHabitById(id); - addSelectedHabit(selectedHabit); - } - } } diff --git a/app/src/main/java/org/isoron/uhabits/activities/habits/list/model/HabitCardListCache.java b/app/src/main/java/org/isoron/uhabits/activities/habits/list/model/HabitCardListCache.java index 2231b453f..fbb4e51a6 100644 --- a/app/src/main/java/org/isoron/uhabits/activities/habits/list/model/HabitCardListCache.java +++ b/app/src/main/java/org/isoron/uhabits/activities/habits/list/model/HabitCardListCache.java @@ -19,7 +19,6 @@ package org.isoron.uhabits.activities.habits.list.model; -import android.content.res.Resources; import android.support.annotation.*; import org.isoron.uhabits.*; @@ -103,16 +102,6 @@ public class HabitCardListCache implements CommandRunner.Listener return data.habits.get(position); } - public Habit getHabitById(long id){ - for(Habit habit: data.habits){ - if(habit.getId() == id){ - return habit; - } - } - - throw new Resources.NotFoundException("Habit not found."); - } - public int getHabitCount() { return data.habits.size(); From c5251d8e33720c295b1b4a758cda723b99ec37a3 Mon Sep 17 00:00:00 2001 From: Rechee Jozil Date: Fri, 24 Feb 2017 17:20:36 -0500 Subject: [PATCH 4/6] Revert "Revert "Temporary check in"" This reverts commit ef62afb07e01e36782bd07ed4a25cc74cea91291. --- .../habits/list/ListHabitsActivity.java | 26 ++++++++++++++++++- .../list/model/HabitCardListAdapter.java | 15 +++++++++++ .../habits/list/model/HabitCardListCache.java | 11 ++++++++ 3 files changed, 51 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsActivity.java b/app/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsActivity.java index deb1b3649..f8421204b 100644 --- a/app/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsActivity.java +++ b/app/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsActivity.java @@ -24,9 +24,13 @@ import android.os.*; import org.isoron.uhabits.*; import org.isoron.uhabits.activities.*; import org.isoron.uhabits.activities.habits.list.model.*; +import org.isoron.uhabits.models.Habit; import org.isoron.uhabits.preferences.*; import org.isoron.uhabits.utils.*; +import java.util.ArrayList; +import java.util.List; + /** * Activity that allows the user to see and modify the list of habits. */ @@ -57,7 +61,6 @@ public class ListHabitsActivity extends BaseActivity super.onCreate(savedInstanceState); HabitsApplication app = (HabitsApplication) getApplicationContext(); - component = DaggerListHabitsComponent .builder() .appComponent(app.getComponent()) @@ -82,10 +85,31 @@ public class ListHabitsActivity extends BaseActivity midnightTimer = component.getMidnightTimer(); + if(savedInstanceState != null){ + long[] selected = savedInstanceState.getLongArray("selected"); + + if(selected != null){ + adapter.selectSavedHabits(selected); + } + } + setScreen(screen); controller.onStartup(); } + @Override + protected void onSaveInstanceState (Bundle outState){ + super.onSaveInstanceState(outState); + List selected = adapter.getSelected(); + if(selected.size() != 0){ + long[] ids = new long[selected.size()]; + for(int i = 0; i < selected.size(); i++){ + ids[i] = selected.get(i).getId(); + } + outState.putLongArray("selected", ids); + } + } + @Override protected void onPause() { diff --git a/app/src/main/java/org/isoron/uhabits/activities/habits/list/model/HabitCardListAdapter.java b/app/src/main/java/org/isoron/uhabits/activities/habits/list/model/HabitCardListAdapter.java index 55656b542..aa63b38ec 100644 --- a/app/src/main/java/org/isoron/uhabits/activities/habits/list/model/HabitCardListAdapter.java +++ b/app/src/main/java/org/isoron/uhabits/activities/habits/list/model/HabitCardListAdapter.java @@ -19,6 +19,8 @@ package org.isoron.uhabits.activities.habits.list.model; +import android.content.res.Resources; +import android.content.res.Resources.NotFoundException; import android.support.annotation.*; import android.support.v7.widget.*; import android.view.*; @@ -305,4 +307,17 @@ public class HabitCardListAdapter else selected.remove(h); notifyDataSetChanged(); } + + public void addSelectedHabit(Habit habitToSelect){ + selected.add(habitToSelect); + notifyDataSetChanged(); + } + + public void selectSavedHabits(long[] selectedIDs) throws NotFoundException { + for(long id : selectedIDs) + { + Habit selectedHabit = cache.getHabitById(id); + addSelectedHabit(selectedHabit); + } + } } diff --git a/app/src/main/java/org/isoron/uhabits/activities/habits/list/model/HabitCardListCache.java b/app/src/main/java/org/isoron/uhabits/activities/habits/list/model/HabitCardListCache.java index fbb4e51a6..2231b453f 100644 --- a/app/src/main/java/org/isoron/uhabits/activities/habits/list/model/HabitCardListCache.java +++ b/app/src/main/java/org/isoron/uhabits/activities/habits/list/model/HabitCardListCache.java @@ -19,6 +19,7 @@ package org.isoron.uhabits.activities.habits.list.model; +import android.content.res.Resources; import android.support.annotation.*; import org.isoron.uhabits.*; @@ -102,6 +103,16 @@ public class HabitCardListCache implements CommandRunner.Listener return data.habits.get(position); } + public Habit getHabitById(long id){ + for(Habit habit: data.habits){ + if(habit.getId() == id){ + return habit; + } + } + + throw new Resources.NotFoundException("Habit not found."); + } + public int getHabitCount() { return data.habits.size(); From 5d8b4055cca7fde746ec433465c74f333ca6c9c4 Mon Sep 17 00:00:00 2001 From: Rechee Jozil Date: Sat, 25 Feb 2017 16:35:40 -0500 Subject: [PATCH 5/6] Improved summary notifications a bit. --- .../notifications/NotificationTray.java | 59 +++++++++++++------ app/src/main/res/values/strings.xml | 3 +- 2 files changed, 44 insertions(+), 18 deletions(-) diff --git a/app/src/main/java/org/isoron/uhabits/notifications/NotificationTray.java b/app/src/main/java/org/isoron/uhabits/notifications/NotificationTray.java index 770174297..16c2985d2 100644 --- a/app/src/main/java/org/isoron/uhabits/notifications/NotificationTray.java +++ b/app/src/main/java/org/isoron/uhabits/notifications/NotificationTray.java @@ -27,6 +27,7 @@ import android.support.v4.app.*; import android.support.v4.app.NotificationCompat.*; import org.isoron.uhabits.*; +import org.isoron.uhabits.activities.habits.list.ListHabitsActivity; import org.isoron.uhabits.commands.*; import org.isoron.uhabits.intents.*; import org.isoron.uhabits.models.*; @@ -38,6 +39,7 @@ import java.util.*; import javax.inject.*; +import static android.app.PendingIntent.FLAG_UPDATE_CURRENT; import static android.graphics.BitmapFactory.*; import static org.isoron.uhabits.utils.RingtoneUtils.*; @@ -118,7 +120,7 @@ public class NotificationTray { NotificationData data = new NotificationData(timestamp, reminderTime); active.put(habit, data); - taskRunner.execute(new ShowNotificationTask(habit, data)); + taskRunner.execute(new ShowNotificationTask(habit, data, this.active.keySet())); } public void startListening() @@ -142,10 +144,11 @@ public class NotificationTray private void reshowAll() { - for (Habit habit : active.keySet()) + Set activeHabits = active.keySet(); + for (Habit habit : activeHabits) { NotificationData data = active.get(habit); - taskRunner.execute(new ShowNotificationTask(habit, data)); + taskRunner.execute(new ShowNotificationTask(habit, data, activeHabits)); } } @@ -175,11 +178,14 @@ public class NotificationTray private final String GROUP_KEY_HABITS = "group_key_habits"; private static final int SUMMARY_ID = 0; - public ShowNotificationTask(Habit habit, NotificationData data) + private Set activeHabits; + + public ShowNotificationTask(Habit habit, NotificationData data, Set activeHabits) { this.habit = habit; this.timestamp = data.timestamp; this.reminderTime = data.reminderTime; + this.activeHabits = activeHabits; } @Override @@ -230,23 +236,42 @@ public class NotificationTray .setOngoing(preferences.shouldMakeNotificationsSticky()) .build(); - //you need to create a summary notification to group notifications together. - Notification summaryNotification = new Builder(context) - .setSmallIcon(R.drawable.ic_notification) - .setContentTitle(context.getString(R.string.summary_notification_title)) - .setWhen(reminderTime) - .setGroupSummary(true) - .setGroup(GROUP_KEY_HABITS) - .setShowWhen(true) - .build(); - NotificationManager notificationManager = - (NotificationManager) context.getSystemService( - Activity.NOTIFICATION_SERVICE); + (NotificationManager) context.getSystemService( + Activity.NOTIFICATION_SERVICE); int notificationId = getNotificationId(habit); notificationManager.notify(notificationId, notification); - notificationManager.notify(SUMMARY_ID, summaryNotification); + + if(this.activeHabits.size() > 1) + { + //if there's more than 1 notification, let's show a summary notification + Intent habitListIntent = new Intent(context, ListHabitsActivity.class); + + PendingIntent pendingIntent = android.support.v4.app.TaskStackBuilder + .create(context) + .addNextIntentWithParentStack(habitListIntent) + .getPendingIntent(0, FLAG_UPDATE_CURRENT); + + NotificationCompat.InboxStyle notificationInboxStyle = new NotificationCompat.InboxStyle(); + for(Habit activeHabit: this.activeHabits){ + notificationInboxStyle.addLine(activeHabit.getName()); + } + + Notification summaryNotification = new NotificationCompat.Builder(context) + .setSmallIcon(R.drawable.ic_notification) + .setContentTitle(String.format("%d %s", this.activeHabits.size(), context.getString(R.string.habit_reminders))) + .setContentIntent(pendingIntent) + .setSound(getRingtoneUri(context)) + .extend(wearableExtender) + .setGroupSummary(true) + .setStyle(notificationInboxStyle) + .setGroup(GROUP_KEY_HABITS) + .setOngoing(preferences.shouldMakeNotificationsSticky()) + .build(); + + notificationManager.notify(SUMMARY_ID, summaryNotification); + } } private boolean shouldShowReminderToday() diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e985ba481..66f71be7a 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -203,5 +203,6 @@ By color By score Download - Habit Reminders + You have habit reminders. + habit reminders \ No newline at end of file From 30d707345e97ded90cae0f1cc00c49d3735d3206 Mon Sep 17 00:00:00 2001 From: Rechee Jozil Date: Sat, 25 Feb 2017 16:44:25 -0500 Subject: [PATCH 6/6] Revert "Revert "Revert "Temporary check in""" This reverts commit c5251d8e33720c295b1b4a758cda723b99ec37a3. --- .../habits/list/ListHabitsActivity.java | 26 +------------------ .../list/model/HabitCardListAdapter.java | 15 ----------- .../habits/list/model/HabitCardListCache.java | 11 -------- 3 files changed, 1 insertion(+), 51 deletions(-) diff --git a/app/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsActivity.java b/app/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsActivity.java index f8421204b..deb1b3649 100644 --- a/app/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsActivity.java +++ b/app/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsActivity.java @@ -24,13 +24,9 @@ import android.os.*; import org.isoron.uhabits.*; import org.isoron.uhabits.activities.*; import org.isoron.uhabits.activities.habits.list.model.*; -import org.isoron.uhabits.models.Habit; import org.isoron.uhabits.preferences.*; import org.isoron.uhabits.utils.*; -import java.util.ArrayList; -import java.util.List; - /** * Activity that allows the user to see and modify the list of habits. */ @@ -61,6 +57,7 @@ public class ListHabitsActivity extends BaseActivity super.onCreate(savedInstanceState); HabitsApplication app = (HabitsApplication) getApplicationContext(); + component = DaggerListHabitsComponent .builder() .appComponent(app.getComponent()) @@ -85,31 +82,10 @@ public class ListHabitsActivity extends BaseActivity midnightTimer = component.getMidnightTimer(); - if(savedInstanceState != null){ - long[] selected = savedInstanceState.getLongArray("selected"); - - if(selected != null){ - adapter.selectSavedHabits(selected); - } - } - setScreen(screen); controller.onStartup(); } - @Override - protected void onSaveInstanceState (Bundle outState){ - super.onSaveInstanceState(outState); - List selected = adapter.getSelected(); - if(selected.size() != 0){ - long[] ids = new long[selected.size()]; - for(int i = 0; i < selected.size(); i++){ - ids[i] = selected.get(i).getId(); - } - outState.putLongArray("selected", ids); - } - } - @Override protected void onPause() { diff --git a/app/src/main/java/org/isoron/uhabits/activities/habits/list/model/HabitCardListAdapter.java b/app/src/main/java/org/isoron/uhabits/activities/habits/list/model/HabitCardListAdapter.java index aa63b38ec..55656b542 100644 --- a/app/src/main/java/org/isoron/uhabits/activities/habits/list/model/HabitCardListAdapter.java +++ b/app/src/main/java/org/isoron/uhabits/activities/habits/list/model/HabitCardListAdapter.java @@ -19,8 +19,6 @@ package org.isoron.uhabits.activities.habits.list.model; -import android.content.res.Resources; -import android.content.res.Resources.NotFoundException; import android.support.annotation.*; import android.support.v7.widget.*; import android.view.*; @@ -307,17 +305,4 @@ public class HabitCardListAdapter else selected.remove(h); notifyDataSetChanged(); } - - public void addSelectedHabit(Habit habitToSelect){ - selected.add(habitToSelect); - notifyDataSetChanged(); - } - - public void selectSavedHabits(long[] selectedIDs) throws NotFoundException { - for(long id : selectedIDs) - { - Habit selectedHabit = cache.getHabitById(id); - addSelectedHabit(selectedHabit); - } - } } diff --git a/app/src/main/java/org/isoron/uhabits/activities/habits/list/model/HabitCardListCache.java b/app/src/main/java/org/isoron/uhabits/activities/habits/list/model/HabitCardListCache.java index 2231b453f..fbb4e51a6 100644 --- a/app/src/main/java/org/isoron/uhabits/activities/habits/list/model/HabitCardListCache.java +++ b/app/src/main/java/org/isoron/uhabits/activities/habits/list/model/HabitCardListCache.java @@ -19,7 +19,6 @@ package org.isoron.uhabits.activities.habits.list.model; -import android.content.res.Resources; import android.support.annotation.*; import org.isoron.uhabits.*; @@ -103,16 +102,6 @@ public class HabitCardListCache implements CommandRunner.Listener return data.habits.get(position); } - public Habit getHabitById(long id){ - for(Habit habit: data.habits){ - if(habit.getId() == id){ - return habit; - } - } - - throw new Resources.NotFoundException("Habit not found."); - } - public int getHabitCount() { return data.habits.size();