From 7c85786d5c47d65684a57db5983cff1ff7fc9052 Mon Sep 17 00:00:00 2001 From: Rechee Jozil Date: Thu, 23 Feb 2017 21:02:10 -0500 Subject: [PATCH] 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();