From 8052bbdd88a933a8e37e48edc628077fbbed5ec0 Mon Sep 17 00:00:00 2001 From: Janet Do Date: Sun, 15 Jan 2017 17:48:32 +0100 Subject: [PATCH] resized icons and corrected code --- .../habits/list/ListHabitsController.java | 9 +-- .../habits/list/ListHabitsScreen.java | 3 +- .../habits/show/ShowHabitActivity.java | 12 ---- .../habits/show/ShowHabitScreen.java | 16 ------ .../habits/show/ShowHabitsMenu.java | 52 ++++++++++++++---- .../drawable-hdpi/ic_action_download_dark.png | Bin 250 -> 249 bytes .../ic_action_download_light.png | Bin 256 -> 280 bytes .../drawable-mdpi/ic_action_download_dark.png | Bin 175 -> 198 bytes .../ic_action_download_light.png | Bin 185 -> 236 bytes .../ic_action_download_dark.png | Bin 251 -> 279 bytes .../ic_action_download_light.png | Bin 260 -> 319 bytes .../ic_action_download_dark.png | Bin 371 -> 366 bytes .../ic_action_download_light.png | Bin 409 -> 397 bytes .../habits/list/ListHabitsScreenTest.java | 3 +- .../habits/list/ShowHabitsMenuTest.java | 50 +++++++++-------- 15 files changed, 71 insertions(+), 74 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 7941c3371..c3117cbb0 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,15 +97,10 @@ public class ListHabitsController this.exportCSVFactory = exportCSVFactory; } - public void onExportCSV(List selectedHabits) + public void onExportCSV() { - List selected = new ArrayList<>(); - if(selectedHabits.isEmpty()) { + List selected = new LinkedList<>(); for (Habit h : habitList) selected.add(h); - } - else { - selected = selectedHabits; - } ExportCSVTask task = exportCSVFactory.create(selected, filename -> { if (filename != null){ 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 3c69f81f3..045505a90 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,7 +36,6 @@ import org.isoron.uhabits.models.*; import org.isoron.uhabits.utils.*; import java.io.*; -import java.util.LinkedList; import javax.inject.*; @@ -155,7 +154,7 @@ public class ListHabitsScreen extends BaseScreen break; case RESULT_EXPORT_CSV: - controller.onExportCSV(new LinkedList()); + controller.onExportCSV(); 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 bebd11c62..17c94c718 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,9 +26,7 @@ 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.*; /** @@ -45,19 +43,10 @@ public class ShowHabitActivity extends BaseActivity 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()) @@ -67,7 +56,6 @@ 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 e4a3598a2..1c238c02e 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,11 +24,8 @@ 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.ArrayList; - import javax.inject.*; @ActivityScope @@ -40,9 +37,6 @@ public class ShowHabitScreen extends BaseScreen @Nullable private ShowHabitController controller; - @NonNull - private ListHabitsController habitController; - @NonNull private final EditHabitDialogFactory editHabitDialogFactory; @@ -75,22 +69,12 @@ 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"); } - public void downloadHabit(){ - ArrayList selected = new ArrayList(); - selected.add(habit); - habitController.onExportCSV(selected); - } - public void showEditHistoryDialog() { if(controller == null) throw new IllegalStateException(); diff --git a/app/src/main/java/org/isoron/uhabits/activities/habits/show/ShowHabitsMenu.java b/app/src/main/java/org/isoron/uhabits/activities/habits/show/ShowHabitsMenu.java index 0219f3dfa..b1be809cc 100644 --- a/app/src/main/java/org/isoron/uhabits/activities/habits/show/ShowHabitsMenu.java +++ b/app/src/main/java/org/isoron/uhabits/activities/habits/show/ShowHabitsMenu.java @@ -24,34 +24,52 @@ import android.view.*; import org.isoron.uhabits.*; import org.isoron.uhabits.activities.*; +import org.isoron.uhabits.models.Habit; +import org.isoron.uhabits.tasks.ExportCSVTask; +import org.isoron.uhabits.tasks.ExportCSVTaskFactory; +import org.isoron.uhabits.tasks.TaskRunner; + +import java.util.LinkedList; +import java.util.List; import javax.inject.*; @ActivityScope -public class ShowHabitsMenu extends BaseMenu -{ +public class ShowHabitsMenu extends BaseMenu { @NonNull private final ShowHabitScreen screen; + @NonNull + private final Habit habit; + + @NonNull + private final TaskRunner taskRunner; + + @NonNull + private ExportCSVTaskFactory exportCSVFactory; + @Inject public ShowHabitsMenu(@NonNull BaseActivity activity, - @NonNull ShowHabitScreen screen) - { + @NonNull ShowHabitScreen screen, + @NonNull Habit habit, + @NonNull ExportCSVTaskFactory exportCSVFactory, + @NonNull TaskRunner taskRunner) { super(activity); this.screen = screen; + this.habit = habit; + this.taskRunner = taskRunner; + this.exportCSVFactory = exportCSVFactory; } @Override - public boolean onItemSelected(@NonNull MenuItem item) - { - switch (item.getItemId()) - { + public boolean onItemSelected(@NonNull MenuItem item) { + switch (item.getItemId()) { case R.id.action_edit_habit: screen.showEditHabitDialog(); return true; case R.id.download: - screen.downloadHabit(); + this.downloadHabit(); return true; default: @@ -59,9 +77,21 @@ public class ShowHabitsMenu extends BaseMenu } } + public void downloadHabit() { + List selected = new LinkedList<>(); + selected.add(habit); + ExportCSVTask task = exportCSVFactory.create(selected, filename -> { + if (filename != null) { + screen.showSendFileScreen(filename); + } else { + screen.showMessage(R.string.could_not_export); + } + }); + taskRunner.execute(task); + } + @Override - protected int getMenuResourceId() - { + protected int getMenuResourceId() { return R.menu.show_habit; } } diff --git a/app/src/main/res/drawable-hdpi/ic_action_download_dark.png b/app/src/main/res/drawable-hdpi/ic_action_download_dark.png index 08819ac700ea3ecbbab3de1e79a5ba173ba0b062..cd22795b4b6ac0f8d0ca9c20492a1701d2224199 100644 GIT binary patch delta 221 zcmV<303!eT0r>%tB!9q3L_t(|+U=G-3c^4TMi&y#BsOB@ebNawX$Xu2w34tE$PYi0 zxEjI-GkD`UiRtAX=Hv%&FsI-SpJ`6A%jGl9X@B@X<`jy7Pgk6i6m|Ixb1D~p#hgO% z@C$R2DlY#+qCWVUM4j-2d~dneJ{|tdeEQIy5IB-Rr@dtZ+_~UU|l{X(M0)g5>1sKuZbqh4<*>`Hh{^o`9O2~S~&Zf z|9|eKPNIXI>IQ*agb*7kr70PjmTN3d00000ROSu6-*E{2tvee40000ZvwWH_?0eO^IG> z^S4eT)Mis+)bKxvk;4P5IOi_13SZhkGwaC9|McFU5jd29e2^Y8i^Yh*y{SOnZuR_0000>5ikNPl0p8EGTHBU Y0qk;xSTpj7)Bpeg07*qoM6N<$g8m^!TL1t6 delta 147 zcmV;E0Brxp0j~j&B!6~EL_t(|+GAiC1*3pO@c;k+Gx+eR14bP%>VVM{~r$ zSUw`!er{B#2VmHFNIF0th&!o-bw|_GC>XQ=01w$)z<09`4GaJP002ovPDHLkV1n2g BKqLSF diff --git a/app/src/main/res/drawable-mdpi/ic_action_download_light.png b/app/src/main/res/drawable-mdpi/ic_action_download_light.png index 91981ea362d3bb1718f773ffbaf06ebbe3506b81..6f5078ee897c6d269a69c597d7c138125266e50f 100644 GIT binary patch delta 208 zcmV;>05AW!0qg;gB!9C>L_t(|+GAiC1*2dTkO)FULzzuXOw_SqkQ~h&psudY3$$z| zHVl#*b-<_tsBU3HLjx1YU>G(wHkQQY0FWHAT9969xPj5o&@c{{rFd{GNH4Vlf>cLP z)pEEafI%ETP?i%F5=KTwF|@RtkRxL0VL2{G(A9DjN6;(SaY;I2AT6g400y%ZFqrGf z!Jv|n8V-;rqZ9;VQ&Uq}iXEV$qQVaJi847Dq<6FpISNL>pa%dT(yY7Ej*CD50000< KMNUMnLSTXbVp1Le delta 157 zcmV;O0Al~_0l5K?B!7TOL_t(|+GAiC1*3pOU}9o26CWORz^DU89WZUz78U>ib)X0R0Zr@?00000 LNkvXXu0mjfH)lE= diff --git a/app/src/main/res/drawable-xhdpi/ic_action_download_dark.png b/app/src/main/res/drawable-xhdpi/ic_action_download_dark.png index fe0ea048d36b69f4b2a38a71a3fe53fd34502218..6700e66946c5e60318dde184e9b49b6809ecc1b3 100644 GIT binary patch delta 251 zcmey(IGt&NO8q@g7srr_TW@FBavgFIa0_0UF%dD(Kg8V2oa^Lx zWdGeAhu^%Z{;;+2`wbmMUuFg{sN_)GvMKmUls}`@P1PbV976k@Ij)eGv z(#bX3?GzpUKb`6A%_z31xGCk8+s!k#G%s`|_{SMG#a5QIa(sJg?55#v=iKt?iM-Mo zbvKRhfBfnTYkqPH{yCxU@~=eL%^x!M`7-K|6R;~ zmTyo>ja2cR#5Faj>Ww7>8gQ5qxcuw8>f@<h7 z_kMJ76dn(E=&;|X;AH=pTj7hjowC#Zh{whXU+nAH4_Q3^?;w%?hpnaX`2Plje?Rm& zKKB3__kWnTSRVHdI=}wA=>_}7>#-nv7l<7w+*`civ!|}-q$Rwzj4xuRUyaypU}v;Y7A diff --git a/app/src/main/res/drawable-xhdpi/ic_action_download_light.png b/app/src/main/res/drawable-xhdpi/ic_action_download_light.png index 9073f18cde82a681c3a64aced6c6545dd33ef9e2..67109515418d44b5082eef4b388801967e5d9e90 100644 GIT binary patch delta 293 zcmV+=0owkA0>1)~BYyz~NklJzF1~=qnHYwK^0Sy2CO03$MWXNH z+u9B!EEo%+xm?ak?pV0r3B4sv5&!@I0001(hcr$1*4leW`88?;)M10@N0fO)4x-UfGo?lu79alXvhiG7DcfU^%caD z;DSHJg^wjcbodAoTJhog5?r(IRfeBI!t%m*_{OJfheho9xn_cj@Dn7oYQm403HrhZ zNYESpkL{p8{E!4y120sC*EW@j9%l3jz=zgsQ4e r?mWN6EMv@(=^hIJ0000005FO#>EwT;3oQ_j6ybqG|boFyt=akR{0A##hh5!Hn diff --git a/app/src/main/res/drawable-xxhdpi/ic_action_download_dark.png b/app/src/main/res/drawable-xxhdpi/ic_action_download_dark.png index 2021430f792c9f77663082e731a0a18b89f47eed..4c09750f4ae78a066944a88c51b1baf3cb1458a1 100644 GIT binary patch delta 339 zcmey&^p0tQO1-J4i(^Q|t+%(V{g?tp8WO`69BkXcWai-dP%cB~#oZ=V?E>~s0x6bn zGWVziWhAOdKD%@LyXtZ^%l|QHZ3a?|3}A5Jz^-+(msP&cTxM2P+YmV`*xz__AR~(d z1EYWg1B(Cyg1Mlz)viwe>;BDe3=e!db-sSy6^RFmXZIandN1o*=DTcL*5@4UJ=6EE zE&IvpawBB_pC08coB!}A=gf|-b2EQdy7}~f(TA6(-oNH)5&yH??7#6Li?f9dPwON8 z-530}?vIuKp>v-ezvEo@=fHOsf9po|#N?la>IXkDD@W8lxIXbI`#cu&I|n8|Xy4kX zEVDP|=|`W$;F!kG@Z|52Pg9;PoiOvdL_+9+|4#a!wHg?hI20NfOj#@ZK8Kyq hvDwZ9@hwBZ2K_^Nlg?F3^6mwRc)I$ztaD0e0sx8Pn9l$J delta 344 zcmaFI^qFabO1+h*i(^Q|t+%%~W-$c{xFue^;`l{yt7ln864suy&UM?cVe5pQ z#^0?!>_0H)>4pt&vRE0wKxL!O>HFHx53vX^FmW(2vNSL-IWRCPG%yG_FmM1VCM2Tb zSHMZ6Tl^Sb#nN5(cvxV&7PoW$j9SQ=7v0dUs3h<+nBUKn-9Z@{(`pm8)2Tm{>Y~1|${NxYY zb_7XIjM98!b>qj&KLe1$QCfM z&r06*kj<}YaoU5_v#Qz!LTmm!5HOKvSP^Zh_igFB=K)Xi3h%}+y#D%YOw7!`mN z2NLn1e$DGD>%PaYx3)`c^wPAy{k5|Ge)3nLZPK;3U24)L|5fViU*-RQXp>I)?iLsS zI_tydrz}p}G}+MoY^r*2->kEKZ8E0w=T0l0qGql8Oe3}|>QvyZH(Mqw{&I7rrF;8H zzg|nLn6j)>7ZW!JJNNO;pL;^)q+dc`in@XOCgB;%H#yHte8ck0ql~Fo#k$dQ(%b_w zC(DuLJI_yiSY>E=bfrnINw5Tz_6Ki0kR<=d#Wzp$PyO CIG&;a diff --git a/app/src/test/java/org/isoron/uhabits/activities/habits/list/ListHabitsScreenTest.java b/app/src/test/java/org/isoron/uhabits/activities/habits/list/ListHabitsScreenTest.java index 7e30b3d42..da6c04587 100644 --- a/app/src/test/java/org/isoron/uhabits/activities/habits/list/ListHabitsScreenTest.java +++ b/app/src/test/java/org/isoron/uhabits/activities/habits/list/ListHabitsScreenTest.java @@ -37,7 +37,6 @@ import org.junit.runner.*; import org.junit.runners.*; import java.io.*; -import java.util.ArrayList; import static org.isoron.uhabits.activities.habits.list.ListHabitsScreen.*; import static org.mockito.Matchers.any; @@ -134,7 +133,7 @@ public class ListHabitsScreenTest extends BaseUnitTest public void testOnResult_exportCSV() { screen.onResult(REQUEST_SETTINGS, RESULT_EXPORT_CSV, null); - verify(controller).onExportCSV(new ArrayList() ); + verify(controller).onExportCSV(); } @Test diff --git a/app/src/test/java/org/isoron/uhabits/activities/habits/list/ShowHabitsMenuTest.java b/app/src/test/java/org/isoron/uhabits/activities/habits/list/ShowHabitsMenuTest.java index 426d3dd88..d435d7b17 100644 --- a/app/src/test/java/org/isoron/uhabits/activities/habits/list/ShowHabitsMenuTest.java +++ b/app/src/test/java/org/isoron/uhabits/activities/habits/list/ShowHabitsMenuTest.java @@ -19,63 +19,65 @@ package org.isoron.uhabits.activities.habits.list; -import android.view.Menu; import android.view.MenuItem; import org.isoron.uhabits.BaseUnitTest; import org.isoron.uhabits.R; -import org.isoron.uhabits.activities.BaseActivity; -import org.isoron.uhabits.activities.ThemeSwitcher; -import org.isoron.uhabits.activities.habits.list.model.HabitCardListAdapter; import org.isoron.uhabits.activities.habits.show.ShowHabitActivity; import org.isoron.uhabits.activities.habits.show.ShowHabitScreen; import org.isoron.uhabits.activities.habits.show.ShowHabitsMenu; -import org.isoron.uhabits.models.HabitMatcher; -import org.isoron.uhabits.preferences.Preferences; +import org.isoron.uhabits.models.Habit; +import org.isoron.uhabits.tasks.ExportCSVTask; +import org.isoron.uhabits.tasks.ExportCSVTaskFactory; +import org.isoron.uhabits.tasks.TaskRunner; import org.junit.Test; -import org.mockito.ArgumentCaptor; +import org.mockito.Mockito; -import static junit.framework.Assert.assertFalse; -import static junit.framework.Assert.assertTrue; +import static org.mockito.Matchers.any; +import static org.mockito.Matchers.isA; import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.reset; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -public class ShowHabitsMenuTest extends BaseUnitTest -{ +public class ShowHabitsMenuTest extends BaseUnitTest { private ShowHabitActivity activity; private ShowHabitScreen screen; private ShowHabitsMenu menu; + private Habit habit; + + private ExportCSVTaskFactory exportCSVFactory; + + private TaskRunner taskRunner; + + private ExportCSVTask task; + @Override - public void setUp() - { + public void setUp() { super.setUp(); - + activity = mock(ShowHabitActivity.class); screen = mock(ShowHabitScreen.class); - - menu = new ShowHabitsMenu(activity, screen); + habit = mock(Habit.class); + exportCSVFactory = mock(ExportCSVTaskFactory.class); + taskRunner = mock(TaskRunner.class); + menu = new ShowHabitsMenu(activity, screen, habit, exportCSVFactory, taskRunner); } @Test - public void testOnEdit_habit() - { + public void testOnEditHabit() { onItemSelected(R.id.action_edit_habit); verify(screen).showEditHabitDialog(); } @Test - public void testOnDownload() - { + public void testOnDownloadHabit() { onItemSelected(R.id.download); - verify(screen).downloadHabit(); + verify(taskRunner).execute(any()); } - protected void onItemSelected(int actionId) - { + protected void onItemSelected(int actionId) { MenuItem item = mock(MenuItem.class); when(item.getItemId()).thenReturn(actionId); menu.onItemSelected(item);