mirror of
https://github.com/iSoron/uhabits.git
synced 2025-12-14 21:18:51 -06:00
Implement edit habit group activity
This commit is contained in:
@@ -56,7 +56,7 @@ class EditHabitGroupActivity : AppCompatActivity() {
|
|||||||
|
|
||||||
if (intent.hasExtra("habitGroupId")) {
|
if (intent.hasExtra("habitGroupId")) {
|
||||||
binding.toolbar.title = getString(R.string.edit_habit_group)
|
binding.toolbar.title = getString(R.string.edit_habit_group)
|
||||||
habitGroupId = intent.getLongExtra("habitId", -1)
|
habitGroupId = intent.getLongExtra("habitGroupId", -1)
|
||||||
val hgr = component.habitGroupList.getById(habitGroupId)!!
|
val hgr = component.habitGroupList.getById(habitGroupId)!!
|
||||||
color = hgr.color
|
color = hgr.color
|
||||||
hgr.reminder?.let {
|
hgr.reminder?.let {
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ import org.isoron.uhabits.core.commands.ChangeHabitColorCommand
|
|||||||
import org.isoron.uhabits.core.commands.Command
|
import org.isoron.uhabits.core.commands.Command
|
||||||
import org.isoron.uhabits.core.commands.CommandRunner
|
import org.isoron.uhabits.core.commands.CommandRunner
|
||||||
import org.isoron.uhabits.core.commands.CreateHabitCommand
|
import org.isoron.uhabits.core.commands.CreateHabitCommand
|
||||||
|
import org.isoron.uhabits.core.commands.DeleteHabitGroupsCommand
|
||||||
import org.isoron.uhabits.core.commands.DeleteHabitsCommand
|
import org.isoron.uhabits.core.commands.DeleteHabitsCommand
|
||||||
import org.isoron.uhabits.core.commands.EditHabitCommand
|
import org.isoron.uhabits.core.commands.EditHabitCommand
|
||||||
import org.isoron.uhabits.core.commands.UnarchiveHabitsCommand
|
import org.isoron.uhabits.core.commands.UnarchiveHabitsCommand
|
||||||
@@ -179,6 +180,11 @@ class ListHabitsScreen
|
|||||||
activity.startActivity(intent)
|
activity.startActivity(intent)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun showEditHabitGroupScreen(selected: List<HabitGroup>) {
|
||||||
|
val intent = intentFactory.startEditGroupActivity(activity, selected[0])
|
||||||
|
activity.startActivity(intent)
|
||||||
|
}
|
||||||
|
|
||||||
override fun showFAQScreen() {
|
override fun showFAQScreen() {
|
||||||
val intent = intentFactory.viewFAQ(activity)
|
val intent = intentFactory.viewFAQ(activity)
|
||||||
activity.startActivity(intent)
|
activity.startActivity(intent)
|
||||||
@@ -318,6 +324,12 @@ class ListHabitsScreen
|
|||||||
command.selected.size
|
command.selected.size
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
is DeleteHabitGroupsCommand -> {
|
||||||
|
return activity.resources.getQuantityString(
|
||||||
|
R.plurals.toast_habits_deleted,
|
||||||
|
command.selected.size
|
||||||
|
)
|
||||||
|
}
|
||||||
is EditHabitCommand -> {
|
is EditHabitCommand -> {
|
||||||
return activity.resources.getQuantityString(R.plurals.toast_habits_changed, 1)
|
return activity.resources.getQuantityString(R.plurals.toast_habits_changed, 1)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ class ListHabitsSelectionMenu @Inject constructor(
|
|||||||
itemArchive.isVisible = behavior.canArchive()
|
itemArchive.isVisible = behavior.canArchive()
|
||||||
itemUnarchive.isVisible = behavior.canUnarchive()
|
itemUnarchive.isVisible = behavior.canUnarchive()
|
||||||
itemNotify.isVisible = prefs.isDeveloper
|
itemNotify.isVisible = prefs.isDeveloper
|
||||||
activeActionMode?.title = listAdapter.selectedHabits.size.toString()
|
activeActionMode?.title = (listAdapter.selectedHabits.size + listAdapter.selectedHabitGroups.size).toString()
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
override fun onDestroyActionMode(mode: ActionMode?) {
|
override fun onDestroyActionMode(mode: ActionMode?) {
|
||||||
|
|||||||
@@ -79,11 +79,12 @@ class HabitCardListAdapter @Inject constructor(
|
|||||||
*/
|
*/
|
||||||
override fun clearSelection() {
|
override fun clearSelection() {
|
||||||
selectedHabits.clear()
|
selectedHabits.clear()
|
||||||
|
selectedHabitGroups.clear()
|
||||||
notifyDataSetChanged()
|
notifyDataSetChanged()
|
||||||
observable.notifyListeners()
|
observable.notifyListeners()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getSelected(): List<Habit> {
|
override fun getSelectedHabits(): List<Habit> {
|
||||||
return ArrayList(selectedHabits)
|
return ArrayList(selectedHabits)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -8,11 +8,9 @@ import androidx.appcompat.app.AppCompatActivity
|
|||||||
import kotlinx.coroutines.CoroutineScope
|
import kotlinx.coroutines.CoroutineScope
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import org.isoron.uhabits.AndroidDirFinder
|
|
||||||
import org.isoron.uhabits.HabitsApplication
|
import org.isoron.uhabits.HabitsApplication
|
||||||
import org.isoron.uhabits.R
|
import org.isoron.uhabits.R
|
||||||
import org.isoron.uhabits.activities.AndroidThemeSwitcher
|
import org.isoron.uhabits.activities.AndroidThemeSwitcher
|
||||||
import org.isoron.uhabits.activities.HabitGroupsDirFinder
|
|
||||||
import org.isoron.uhabits.activities.common.dialogs.ConfirmDeleteDialog
|
import org.isoron.uhabits.activities.common.dialogs.ConfirmDeleteDialog
|
||||||
import org.isoron.uhabits.core.commands.Command
|
import org.isoron.uhabits.core.commands.Command
|
||||||
import org.isoron.uhabits.core.commands.CommandRunner
|
import org.isoron.uhabits.core.commands.CommandRunner
|
||||||
@@ -68,9 +66,7 @@ class ShowHabitGroupActivity : AppCompatActivity(), CommandRunner.Listener {
|
|||||||
commandRunner = commandRunner,
|
commandRunner = commandRunner,
|
||||||
habitGroup = habitGroup,
|
habitGroup = habitGroup,
|
||||||
habitGroupList = habitGroupList,
|
habitGroupList = habitGroupList,
|
||||||
screen = screen,
|
screen = screen
|
||||||
system = HabitGroupsDirFinder(AndroidDirFinder(this)),
|
|
||||||
taskRunner = appComponent.taskRunner
|
|
||||||
)
|
)
|
||||||
|
|
||||||
menu = ShowHabitGroupMenu(
|
menu = ShowHabitGroupMenu(
|
||||||
|
|||||||
@@ -19,11 +19,11 @@ class ShowHabitGroupMenu(
|
|||||||
fun onOptionsItemSelected(item: MenuItem): Boolean {
|
fun onOptionsItemSelected(item: MenuItem): Boolean {
|
||||||
when (item.itemId) {
|
when (item.itemId) {
|
||||||
R.id.action_edit_habit_group -> {
|
R.id.action_edit_habit_group -> {
|
||||||
presenter.onEditHabit()
|
presenter.onEditHabitGroup()
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
R.id.action_delete -> {
|
R.id.action_delete -> {
|
||||||
presenter.onDeleteHabit()
|
presenter.onDeleteHabitGroup()
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,13 +18,17 @@
|
|||||||
*/
|
*/
|
||||||
package org.isoron.uhabits.core.ui.screens.habits.list
|
package org.isoron.uhabits.core.ui.screens.habits.list
|
||||||
|
|
||||||
|
import org.isoron.uhabits.core.commands.ArchiveHabitGroupsCommand
|
||||||
import org.isoron.uhabits.core.commands.ArchiveHabitsCommand
|
import org.isoron.uhabits.core.commands.ArchiveHabitsCommand
|
||||||
import org.isoron.uhabits.core.commands.ChangeHabitColorCommand
|
import org.isoron.uhabits.core.commands.ChangeHabitColorCommand
|
||||||
|
import org.isoron.uhabits.core.commands.ChangeHabitGroupColorCommand
|
||||||
import org.isoron.uhabits.core.commands.CommandRunner
|
import org.isoron.uhabits.core.commands.CommandRunner
|
||||||
|
import org.isoron.uhabits.core.commands.DeleteHabitGroupsCommand
|
||||||
import org.isoron.uhabits.core.commands.DeleteHabitsCommand
|
import org.isoron.uhabits.core.commands.DeleteHabitsCommand
|
||||||
import org.isoron.uhabits.core.commands.UnarchiveHabitsCommand
|
import org.isoron.uhabits.core.commands.UnarchiveHabitsCommand
|
||||||
import org.isoron.uhabits.core.models.Habit
|
import org.isoron.uhabits.core.models.Habit
|
||||||
import org.isoron.uhabits.core.models.HabitGroup
|
import org.isoron.uhabits.core.models.HabitGroup
|
||||||
|
import org.isoron.uhabits.core.models.HabitGroupList
|
||||||
import org.isoron.uhabits.core.models.HabitList
|
import org.isoron.uhabits.core.models.HabitList
|
||||||
import org.isoron.uhabits.core.models.PaletteColor
|
import org.isoron.uhabits.core.models.PaletteColor
|
||||||
import org.isoron.uhabits.core.ui.callbacks.OnColorPickedCallback
|
import org.isoron.uhabits.core.ui.callbacks.OnColorPickedCallback
|
||||||
@@ -33,33 +37,55 @@ import javax.inject.Inject
|
|||||||
|
|
||||||
class ListHabitsSelectionMenuBehavior @Inject constructor(
|
class ListHabitsSelectionMenuBehavior @Inject constructor(
|
||||||
private val habitList: HabitList,
|
private val habitList: HabitList,
|
||||||
|
private val habitGroupList: HabitGroupList,
|
||||||
private val screen: Screen,
|
private val screen: Screen,
|
||||||
private val adapter: Adapter,
|
private val adapter: Adapter,
|
||||||
var commandRunner: CommandRunner
|
var commandRunner: CommandRunner
|
||||||
) {
|
) {
|
||||||
fun canArchive(): Boolean {
|
fun canArchive(): Boolean {
|
||||||
for (habit in adapter.getSelected()) if (habit.isArchived) return false
|
for (habit in adapter.getSelectedHabits()) if (habit.isArchived) return false
|
||||||
|
for (hgr in adapter.getSelectedHabitGroups()) if (hgr.isArchived) return false
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
fun canEdit(): Boolean {
|
fun canEdit(): Boolean {
|
||||||
return adapter.getSelected().size == 1
|
return (adapter.getSelectedHabits().size + adapter.getSelectedHabitGroups().size == 1)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun canUnarchive(): Boolean {
|
fun canUnarchive(): Boolean {
|
||||||
for (habit in adapter.getSelected()) if (!habit.isArchived) return false
|
for (habit in adapter.getSelectedHabits()) if (!habit.isArchived) return false
|
||||||
|
for (hgr in adapter.getSelectedHabitGroups()) if (!hgr.isArchived) return false
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
fun onArchiveHabits() {
|
fun onArchiveHabits() {
|
||||||
commandRunner.run(ArchiveHabitsCommand(habitList, adapter.getSelected()))
|
commandRunner.run(ArchiveHabitsCommand(habitList, adapter.getSelectedHabits()))
|
||||||
|
commandRunner.run(ArchiveHabitGroupsCommand(habitGroupList, adapter.getSelectedHabitGroups()))
|
||||||
adapter.clearSelection()
|
adapter.clearSelection()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun onChangeColor() {
|
fun onChangeColor() {
|
||||||
val (color) = adapter.getSelected()[0]
|
val color = if (adapter.getSelectedHabits().isNotEmpty()) {
|
||||||
|
adapter.getSelectedHabits()[0].color
|
||||||
|
} else {
|
||||||
|
adapter.getSelectedHabitGroups()[0].color
|
||||||
|
}
|
||||||
|
|
||||||
screen.showColorPicker(color) { selectedColor: PaletteColor ->
|
screen.showColorPicker(color) { selectedColor: PaletteColor ->
|
||||||
commandRunner.run(ChangeHabitColorCommand(habitList, adapter.getSelected(), selectedColor))
|
commandRunner.run(
|
||||||
|
ChangeHabitColorCommand(
|
||||||
|
habitList,
|
||||||
|
adapter.getSelectedHabits(),
|
||||||
|
selectedColor
|
||||||
|
)
|
||||||
|
)
|
||||||
|
commandRunner.run(
|
||||||
|
ChangeHabitGroupColorCommand(
|
||||||
|
habitGroupList,
|
||||||
|
adapter.getSelectedHabitGroups(),
|
||||||
|
selectedColor
|
||||||
|
)
|
||||||
|
)
|
||||||
adapter.clearSelection()
|
adapter.clearSelection()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -67,28 +93,36 @@ class ListHabitsSelectionMenuBehavior @Inject constructor(
|
|||||||
fun onDeleteHabits() {
|
fun onDeleteHabits() {
|
||||||
screen.showDeleteConfirmationScreen(
|
screen.showDeleteConfirmationScreen(
|
||||||
{
|
{
|
||||||
adapter.performRemove(adapter.getSelected())
|
adapter.performRemove(adapter.getSelectedHabits())
|
||||||
commandRunner.run(DeleteHabitsCommand(habitList, adapter.getSelected()))
|
adapter.performRemoveHabitGroup(adapter.getSelectedHabitGroups())
|
||||||
|
commandRunner.run(DeleteHabitsCommand(habitList, adapter.getSelectedHabits()))
|
||||||
|
commandRunner.run(DeleteHabitGroupsCommand(habitGroupList, adapter.getSelectedHabitGroups()))
|
||||||
adapter.clearSelection()
|
adapter.clearSelection()
|
||||||
},
|
},
|
||||||
adapter.getSelected().size
|
adapter.getSelectedHabits().size + adapter.getSelectedHabitGroups().size
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun onEditHabits() {
|
fun onEditHabits() {
|
||||||
val selected = adapter.getSelected()
|
val selected = adapter.getSelectedHabits()
|
||||||
if (selected.isNotEmpty()) screen.showEditHabitsScreen(selected)
|
if (selected.isNotEmpty()) {
|
||||||
|
screen.showEditHabitsScreen(selected)
|
||||||
|
} else {
|
||||||
|
val selectedGroup = adapter.getSelectedHabitGroups()
|
||||||
|
screen.showEditHabitGroupScreen(selectedGroup)
|
||||||
|
}
|
||||||
|
|
||||||
adapter.clearSelection()
|
adapter.clearSelection()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun onUnarchiveHabits() {
|
fun onUnarchiveHabits() {
|
||||||
commandRunner.run(UnarchiveHabitsCommand(habitList, adapter.getSelected()))
|
commandRunner.run(UnarchiveHabitsCommand(habitList, adapter.getSelectedHabits()))
|
||||||
adapter.clearSelection()
|
adapter.clearSelection()
|
||||||
}
|
}
|
||||||
|
|
||||||
interface Adapter {
|
interface Adapter {
|
||||||
fun clearSelection()
|
fun clearSelection()
|
||||||
fun getSelected(): List<Habit>
|
fun getSelectedHabits(): List<Habit>
|
||||||
fun getSelectedHabitGroups(): List<HabitGroup>
|
fun getSelectedHabitGroups(): List<HabitGroup>
|
||||||
fun performRemove(selected: List<Habit>)
|
fun performRemove(selected: List<Habit>)
|
||||||
fun performRemoveHabitGroup(selected: List<HabitGroup>)
|
fun performRemoveHabitGroup(selected: List<HabitGroup>)
|
||||||
@@ -106,5 +140,7 @@ class ListHabitsSelectionMenuBehavior @Inject constructor(
|
|||||||
)
|
)
|
||||||
|
|
||||||
fun showEditHabitsScreen(selected: List<Habit>)
|
fun showEditHabitsScreen(selected: List<Habit>)
|
||||||
|
|
||||||
|
fun showEditHabitGroupScreen(selected: List<HabitGroup>)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import org.isoron.uhabits.core.commands.CommandRunner
|
|||||||
import org.isoron.uhabits.core.commands.DeleteHabitGroupsCommand
|
import org.isoron.uhabits.core.commands.DeleteHabitGroupsCommand
|
||||||
import org.isoron.uhabits.core.models.HabitGroup
|
import org.isoron.uhabits.core.models.HabitGroup
|
||||||
import org.isoron.uhabits.core.models.HabitGroupList
|
import org.isoron.uhabits.core.models.HabitGroupList
|
||||||
import org.isoron.uhabits.core.tasks.TaskRunner
|
|
||||||
import org.isoron.uhabits.core.ui.callbacks.OnConfirmedCallback
|
import org.isoron.uhabits.core.ui.callbacks.OnConfirmedCallback
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
@@ -12,15 +11,13 @@ class ShowHabitGroupMenuPresenter(
|
|||||||
private val commandRunner: CommandRunner,
|
private val commandRunner: CommandRunner,
|
||||||
private val habitGroup: HabitGroup,
|
private val habitGroup: HabitGroup,
|
||||||
private val habitGroupList: HabitGroupList,
|
private val habitGroupList: HabitGroupList,
|
||||||
private val screen: Screen,
|
private val screen: Screen
|
||||||
private val system: System,
|
|
||||||
private val taskRunner: TaskRunner
|
|
||||||
) {
|
) {
|
||||||
fun onEditHabit() {
|
fun onEditHabitGroup() {
|
||||||
screen.showEditHabitGroupScreen(habitGroup)
|
screen.showEditHabitGroupScreen(habitGroup)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun onDeleteHabit() {
|
fun onDeleteHabitGroup() {
|
||||||
screen.showDeleteConfirmationScreen {
|
screen.showDeleteConfirmationScreen {
|
||||||
commandRunner.run(DeleteHabitGroupsCommand(habitGroupList, listOf(habitGroup)))
|
commandRunner.run(DeleteHabitGroupsCommand(habitGroupList, listOf(habitGroup)))
|
||||||
screen.close()
|
screen.close()
|
||||||
|
|||||||
@@ -52,27 +52,27 @@ class ListHabitsSelectionMenuBehaviorTest : BaseUnitTest() {
|
|||||||
@Test
|
@Test
|
||||||
@Throws(Exception::class)
|
@Throws(Exception::class)
|
||||||
fun canArchive() {
|
fun canArchive() {
|
||||||
whenever(adapter.getSelected()).thenReturn(listOf(habit1, habit2))
|
whenever(adapter.getSelectedHabits()).thenReturn(listOf(habit1, habit2))
|
||||||
assertFalse(behavior.canArchive())
|
assertFalse(behavior.canArchive())
|
||||||
whenever(adapter.getSelected()).thenReturn(listOf(habit2, habit3))
|
whenever(adapter.getSelectedHabits()).thenReturn(listOf(habit2, habit3))
|
||||||
assertTrue(behavior.canArchive())
|
assertTrue(behavior.canArchive())
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@Throws(Exception::class)
|
@Throws(Exception::class)
|
||||||
fun canEdit() {
|
fun canEdit() {
|
||||||
whenever(adapter.getSelected()).thenReturn(listOf(habit1))
|
whenever(adapter.getSelectedHabits()).thenReturn(listOf(habit1))
|
||||||
assertTrue(behavior.canEdit())
|
assertTrue(behavior.canEdit())
|
||||||
whenever(adapter.getSelected()).thenReturn(listOf(habit1, habit2))
|
whenever(adapter.getSelectedHabits()).thenReturn(listOf(habit1, habit2))
|
||||||
assertFalse(behavior.canEdit())
|
assertFalse(behavior.canEdit())
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@Throws(Exception::class)
|
@Throws(Exception::class)
|
||||||
fun canUnarchive() {
|
fun canUnarchive() {
|
||||||
whenever(adapter.getSelected()).thenReturn(listOf(habit1, habit2))
|
whenever(adapter.getSelectedHabits()).thenReturn(listOf(habit1, habit2))
|
||||||
assertFalse(behavior.canUnarchive())
|
assertFalse(behavior.canUnarchive())
|
||||||
whenever(adapter.getSelected()).thenReturn(listOf(habit1))
|
whenever(adapter.getSelectedHabits()).thenReturn(listOf(habit1))
|
||||||
assertTrue(behavior.canUnarchive())
|
assertTrue(behavior.canUnarchive())
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -80,7 +80,7 @@ class ListHabitsSelectionMenuBehaviorTest : BaseUnitTest() {
|
|||||||
@Throws(Exception::class)
|
@Throws(Exception::class)
|
||||||
fun onArchiveHabits() {
|
fun onArchiveHabits() {
|
||||||
assertFalse(habit2.isArchived)
|
assertFalse(habit2.isArchived)
|
||||||
whenever(adapter.getSelected()).thenReturn(listOf(habit2))
|
whenever(adapter.getSelectedHabits()).thenReturn(listOf(habit2))
|
||||||
behavior.onArchiveHabits()
|
behavior.onArchiveHabits()
|
||||||
assertTrue(habit2.isArchived)
|
assertTrue(habit2.isArchived)
|
||||||
}
|
}
|
||||||
@@ -90,7 +90,7 @@ class ListHabitsSelectionMenuBehaviorTest : BaseUnitTest() {
|
|||||||
fun onChangeColor() {
|
fun onChangeColor() {
|
||||||
assertThat(habit1.color, equalTo(PaletteColor(8)))
|
assertThat(habit1.color, equalTo(PaletteColor(8)))
|
||||||
assertThat(habit2.color, equalTo(PaletteColor(8)))
|
assertThat(habit2.color, equalTo(PaletteColor(8)))
|
||||||
whenever(adapter.getSelected()).thenReturn(listOf(habit1, habit2))
|
whenever(adapter.getSelectedHabits()).thenReturn(listOf(habit1, habit2))
|
||||||
behavior.onChangeColor()
|
behavior.onChangeColor()
|
||||||
verify(screen)
|
verify(screen)
|
||||||
.showColorPicker(eq(PaletteColor(8)), colorPickerCallback.capture())
|
.showColorPicker(eq(PaletteColor(8)), colorPickerCallback.capture())
|
||||||
@@ -103,7 +103,7 @@ class ListHabitsSelectionMenuBehaviorTest : BaseUnitTest() {
|
|||||||
fun onDeleteHabits() {
|
fun onDeleteHabits() {
|
||||||
val id = habit1.id!!
|
val id = habit1.id!!
|
||||||
habitList.getById(id)!!
|
habitList.getById(id)!!
|
||||||
whenever(adapter.getSelected()).thenReturn(listOf(habit1))
|
whenever(adapter.getSelectedHabits()).thenReturn(listOf(habit1))
|
||||||
behavior.onDeleteHabits()
|
behavior.onDeleteHabits()
|
||||||
verify(screen).showDeleteConfirmationScreen(deleteCallback.capture(), eq(1))
|
verify(screen).showDeleteConfirmationScreen(deleteCallback.capture(), eq(1))
|
||||||
deleteCallback.lastValue.onConfirmed()
|
deleteCallback.lastValue.onConfirmed()
|
||||||
@@ -114,7 +114,7 @@ class ListHabitsSelectionMenuBehaviorTest : BaseUnitTest() {
|
|||||||
@Throws(Exception::class)
|
@Throws(Exception::class)
|
||||||
fun onEditHabits() {
|
fun onEditHabits() {
|
||||||
val selected: List<Habit> = listOf(habit1, habit2)
|
val selected: List<Habit> = listOf(habit1, habit2)
|
||||||
whenever(adapter.getSelected()).thenReturn(selected)
|
whenever(adapter.getSelectedHabits()).thenReturn(selected)
|
||||||
behavior.onEditHabits()
|
behavior.onEditHabits()
|
||||||
verify(screen).showEditHabitsScreen(selected)
|
verify(screen).showEditHabitsScreen(selected)
|
||||||
}
|
}
|
||||||
@@ -123,7 +123,7 @@ class ListHabitsSelectionMenuBehaviorTest : BaseUnitTest() {
|
|||||||
@Throws(Exception::class)
|
@Throws(Exception::class)
|
||||||
fun onUnarchiveHabits() {
|
fun onUnarchiveHabits() {
|
||||||
assertTrue(habit1.isArchived)
|
assertTrue(habit1.isArchived)
|
||||||
whenever(adapter.getSelected()).thenReturn(listOf(habit1))
|
whenever(adapter.getSelectedHabits()).thenReturn(listOf(habit1))
|
||||||
behavior.onUnarchiveHabits()
|
behavior.onUnarchiveHabits()
|
||||||
assertFalse(habit1.isArchived)
|
assertFalse(habit1.isArchived)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user