From 33ae8d1edf30f28dd17e43cb1b503ae18b702589 Mon Sep 17 00:00:00 2001 From: Alinson Xavier Date: Thu, 28 Jul 2016 20:48:48 -0400 Subject: [PATCH] Show empty message at startup --- .../list/model/HabitCardListAdapter.java | 6 + .../habits/list/model/HabitCardListCache.java | 3 + .../models/memory/MemoryHabitList.java | 2 +- .../models/sqlite/SQLiteHabitList.java | 11 +- .../list/model/HabitCardListAdapterTest.java | 112 ------------------ .../list/model/HabitCardListCacheTest.java | 12 ++ 6 files changed, 29 insertions(+), 117 deletions(-) delete mode 100644 app/src/test/java/org/isoron/uhabits/activities/habits/list/model/HabitCardListAdapterTest.java 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 90822a68c..dc8670453 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 @@ -199,6 +199,12 @@ public class HabitCardListAdapter observable.notifyListeners(); } + @Override + public void onRefreshFinished() + { + observable.notifyListeners(); + } + /** * Removes a list of habits from the adapter. *

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 f821a76b1..f6358a7bb 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 @@ -190,6 +190,8 @@ public class HabitCardListCache implements CommandRunner.Listener default void onItemMoved(int oldPosition, int newPosition) {} default void onItemRemoved(int position) {} + + default void onRefreshFinished() {} } private class CacheData @@ -319,6 +321,7 @@ public class HabitCardListCache implements CommandRunner.Listener public void onPostExecute() { currentFetchTask = null; + listener.onRefreshFinished(); } @Override diff --git a/app/src/main/java/org/isoron/uhabits/models/memory/MemoryHabitList.java b/app/src/main/java/org/isoron/uhabits/models/memory/MemoryHabitList.java index faa835b68..e014107ce 100644 --- a/app/src/main/java/org/isoron/uhabits/models/memory/MemoryHabitList.java +++ b/app/src/main/java/org/isoron/uhabits/models/memory/MemoryHabitList.java @@ -70,7 +70,7 @@ public class MemoryHabitList extends HabitList return null; } - @Nullable + @NonNull @Override public Habit getByPosition(int position) { diff --git a/app/src/main/java/org/isoron/uhabits/models/sqlite/SQLiteHabitList.java b/app/src/main/java/org/isoron/uhabits/models/sqlite/SQLiteHabitList.java index cd738881d..1c1e7d950 100644 --- a/app/src/main/java/org/isoron/uhabits/models/sqlite/SQLiteHabitList.java +++ b/app/src/main/java/org/isoron/uhabits/models/sqlite/SQLiteHabitList.java @@ -41,7 +41,7 @@ public class SQLiteHabitList extends HabitList private final SQLiteUtils sqlite; - private ModelFactory modelFactory; + private final ModelFactory modelFactory; public SQLiteHabitList(@NonNull ModelFactory modelFactory) { @@ -52,9 +52,12 @@ public class SQLiteHabitList extends HabitList sqlite = new SQLiteUtils<>(HabitRecord.class); } - protected SQLiteHabitList(@NonNull HabitMatcher filter) + protected SQLiteHabitList(@NonNull ModelFactory modelFactory, + @NonNull HabitMatcher filter) { super(filter); + this.modelFactory = modelFactory; + if (cache == null) cache = new HashMap<>(); sqlite = new SQLiteUtils<>(HabitRecord.class); } @@ -105,7 +108,7 @@ public class SQLiteHabitList extends HabitList } @Override - @Nullable + @NonNull public Habit getByPosition(int position) { return toList().get(position); @@ -115,7 +118,7 @@ public class SQLiteHabitList extends HabitList @Override public HabitList getFiltered(HabitMatcher filter) { - return new SQLiteHabitList(filter); + return new SQLiteHabitList(modelFactory, filter); } @Override diff --git a/app/src/test/java/org/isoron/uhabits/activities/habits/list/model/HabitCardListAdapterTest.java b/app/src/test/java/org/isoron/uhabits/activities/habits/list/model/HabitCardListAdapterTest.java deleted file mode 100644 index aa8fb199c..000000000 --- a/app/src/test/java/org/isoron/uhabits/activities/habits/list/model/HabitCardListAdapterTest.java +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Copyright (C) 2016 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.activities.habits.list.model; - -import org.isoron.uhabits.BaseUnitTest; -import org.junit.Before; -import org.junit.Test; - -public class HabitCardListAdapterTest extends BaseUnitTest -{ - @Override - @Before - public void setUp() - { - super.setUp(); - } - - @Test - public void testSelection() throws Exception - { - - } - - @Test - public void testGetCount() throws Exception - { - - } - - @Test - public void testGetItem() throws Exception - { - - } - - @Test - public void testGetItemId() throws Exception - { - - } - - @Test - public void testGetSelected() throws Exception - { - - } - - @Test - public void testGetView() throws Exception - { - - } - - @Test - public void testIsSelectionEmpty() throws Exception - { - - } - - @Test - public void testOnAttached() throws Exception - { - - } - - @Test - public void testOnCacheRefresh() throws Exception - { - - } - - @Test - public void testOnDetached() throws Exception - { - - } - - @Test - public void testReorder() throws Exception - { - - } - - @Test - public void testSetListView() throws Exception - { - - } - - @Test - public void testToggleSelection() throws Exception - { - - } -} \ No newline at end of file diff --git a/app/src/test/java/org/isoron/uhabits/activities/habits/list/model/HabitCardListCacheTest.java b/app/src/test/java/org/isoron/uhabits/activities/habits/list/model/HabitCardListCacheTest.java index feeec3585..2db4bf71a 100644 --- a/app/src/test/java/org/isoron/uhabits/activities/habits/list/model/HabitCardListCacheTest.java +++ b/app/src/test/java/org/isoron/uhabits/activities/habits/list/model/HabitCardListCacheTest.java @@ -82,6 +82,7 @@ public class HabitCardListCacheTest extends BaseUnitTest null); verify(listener).onItemRemoved(0); + verify(listener).onRefreshFinished(); assertThat(cache.getHabitCount(), equalTo(9)); } @@ -94,6 +95,7 @@ public class HabitCardListCacheTest extends BaseUnitTest h2.getId()); verify(listener).onItemChanged(2); + verify(listener).onRefreshFinished(); verifyNoMoreInteractions(listener); } @@ -128,9 +130,18 @@ public class HabitCardListCacheTest extends BaseUnitTest cache.refreshAllHabits(); verify(listener).onItemRemoved(0); verify(listener).onItemRemoved(3); + verify(listener).onRefreshFinished(); assertThat(cache.getHabitCount(), equalTo(8)); } + @Test + public void testRefreshWithNoChanges() + { + cache.refreshAllHabits(); + verify(listener).onRefreshFinished(); + verifyNoMoreInteractions(listener); + } + @Test public void testReorder_onCache() { @@ -170,6 +181,7 @@ public class HabitCardListCacheTest extends BaseUnitTest verify(listener).onItemMoved(5, 4); verify(listener).onItemMoved(6, 5); verify(listener).onItemMoved(7, 6); + verify(listener).onRefreshFinished(); verifyNoMoreInteractions(listener); }