Skip to content

Commit 6c38254

Browse files
committed
#320 fix tests and other tweaks
1 parent c53147a commit 6c38254

File tree

5 files changed

+29
-8
lines changed

5 files changed

+29
-8
lines changed

app/src/main/java/io/github/sds100/keymapper/backup/BackupManager.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -457,7 +457,7 @@ class BackupManagerImpl(
457457
if (backupContent.groups != null) {
458458
val groupUids = backupContent.groups.map { it.uid }.toMutableSet()
459459

460-
groupRepository.groups.first()
460+
groupRepository.getAllGroups().first()
461461
.map { it.uid }
462462
.toSet()
463463
.also { groupUids.addAll(it) }

app/src/main/java/io/github/sds100/keymapper/data/repositories/GroupRepository.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ interface GroupRepository {
2020

2121
fun getKeyMapsByGroup(groupUid: String): Flow<KeyMapEntitiesWithGroup>
2222
suspend fun getGroup(uid: String): GroupEntity?
23-
suspend fun getAllGroups(): Flow<List<GroupEntity>>
24-
suspend fun getGroups(vararg uid: String): Flow<List<GroupEntity>>
23+
fun getAllGroups(): Flow<List<GroupEntity>>
24+
fun getGroups(vararg uid: String): Flow<List<GroupEntity>>
2525
fun getGroupsByParent(uid: String?): Flow<List<GroupEntity>>
2626
fun getGroupWithSubGroups(uid: String): Flow<GroupEntityWithSubGroups>
2727
suspend fun insert(groupEntity: GroupEntity)
@@ -46,12 +46,12 @@ class RoomGroupRepository(
4646
return withContext(dispatchers.io()) { dao.getById(uid) }
4747
}
4848

49-
override suspend fun getAllGroups(): Flow<List<GroupEntity>> {
50-
return withContext(dispatchers.io()) { dao.getAll() }
49+
override fun getAllGroups(): Flow<List<GroupEntity>> {
50+
return dao.getAll().flowOn(dispatchers.io())
5151
}
5252

53-
override suspend fun getGroups(vararg uid: String): Flow<List<GroupEntity>> {
54-
return withContext(dispatchers.io()) { dao.getManyByIdFlow(*uid) }
53+
override fun getGroups(vararg uid: String): Flow<List<GroupEntity>> {
54+
return dao.getManyByIdFlow(*uid).flowOn(dispatchers.io())
5555
}
5656

5757
override fun getGroupsByParent(uid: String?): Flow<List<GroupEntity>> {

app/src/main/java/io/github/sds100/keymapper/home/HomeKeyMapListScreen.kt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import androidx.activity.compose.LocalActivity
44
import androidx.activity.compose.rememberLauncherForActivityResult
55
import androidx.activity.result.contract.ActivityResultContracts
66
import androidx.compose.animation.AnimatedVisibility
7+
import androidx.compose.animation.animateContentSize
78
import androidx.compose.animation.fadeIn
89
import androidx.compose.animation.fadeOut
910
import androidx.compose.animation.slideInHorizontally
@@ -30,16 +31,19 @@ import androidx.compose.runtime.Composable
3031
import androidx.compose.runtime.LaunchedEffect
3132
import androidx.compose.runtime.getValue
3233
import androidx.compose.runtime.mutableStateOf
34+
import androidx.compose.runtime.remember
3335
import androidx.compose.runtime.saveable.rememberSaveable
3436
import androidx.compose.runtime.setValue
3537
import androidx.compose.ui.Alignment
3638
import androidx.compose.ui.Modifier
3739
import androidx.compose.ui.input.nestedscroll.nestedScroll
40+
import androidx.compose.ui.layout.onSizeChanged
3841
import androidx.compose.ui.platform.LocalContext
3942
import androidx.compose.ui.platform.LocalUriHandler
4043
import androidx.compose.ui.res.stringResource
4144
import androidx.compose.ui.tooling.preview.Preview
4245
import androidx.compose.ui.unit.Dp
46+
import androidx.compose.ui.unit.dp
4347
import androidx.core.net.toUri
4448
import androidx.lifecycle.compose.collectAsStateWithLifecycle
4549
import io.github.sds100.keymapper.R
@@ -137,6 +141,8 @@ fun HomeKeyMapListScreen(
137141
val uriHandler = LocalUriHandler.current
138142
val helpUrl = stringResource(R.string.url_quick_start_guide)
139143

144+
var keyMapListBottomPadding by remember { mutableStateOf(100.dp) }
145+
140146
HomeKeyMapListScreen(
141147
modifier = modifier.nestedScroll(scrollBehavior.nestedScrollConnection),
142148
snackbarState = snackbarState,
@@ -156,6 +162,7 @@ fun HomeKeyMapListScreen(
156162
},
157163
listContent = {
158164
KeyMapList(
165+
modifier = Modifier.animateContentSize(),
159166
lazyListState = rememberLazyListState(),
160167
listItems = state.listItems,
161168
footerText = stringResource(R.string.home_key_map_list_footer_text),
@@ -165,6 +172,7 @@ fun HomeKeyMapListScreen(
165172
onSelectedChange = viewModel::onKeyMapSelectedChanged,
166173
onFixClick = viewModel::onFixClick,
167174
onTriggerErrorClick = viewModel::onFixTriggerError,
175+
bottomListPadding = keyMapListBottomPadding,
168176
)
169177
},
170178
appBarContent = {
@@ -212,6 +220,10 @@ fun HomeKeyMapListScreen(
212220
)
213221

214222
SelectionBottomSheet(
223+
modifier = Modifier.onSizeChanged { size ->
224+
keyMapListBottomPadding =
225+
((size.height.dp / 2) - 100.dp).coerceAtLeast(0.dp)
226+
},
215227
enabled = selectionState.selectionCount > 0,
216228
groups = selectionState.groups,
217229
selectedKeyMapsEnabled = selectionState.selectedKeyMapsEnabled,

app/src/main/java/io/github/sds100/keymapper/mappings/keymaps/KeyMapListScreen.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ import androidx.compose.ui.text.font.FontWeight
4949
import androidx.compose.ui.text.style.TextAlign
5050
import androidx.compose.ui.text.withStyle
5151
import androidx.compose.ui.tooling.preview.Preview
52+
import androidx.compose.ui.unit.Dp
5253
import androidx.compose.ui.unit.dp
5354
import androidx.compose.ui.unit.sp
5455
import com.google.accompanist.drawablepainter.rememberDrawablePainter
@@ -77,6 +78,7 @@ fun KeyMapList(
7778
onSelectedChange: (String, Boolean) -> Unit = { _, _ -> },
7879
onFixClick: (Error) -> Unit = {},
7980
onTriggerErrorClick: (TriggerError) -> Unit = {},
81+
bottomListPadding: Dp = 100.dp,
8082
) {
8183
when (listItems) {
8284
is State.Loading -> {
@@ -101,6 +103,7 @@ fun KeyMapList(
101103
onSelectedChange,
102104
onFixClick,
103105
onTriggerErrorClick,
106+
bottomListPadding,
104107
)
105108
}
106109
}
@@ -149,6 +152,7 @@ private fun LoadedKeyMapList(
149152
onSelectedChange: (String, Boolean) -> Unit,
150153
onFixClick: (Error) -> Unit,
151154
onTriggerErrorClick: (TriggerError) -> Unit,
155+
bottomListPadding: Dp,
152156
) {
153157
val haptics = LocalHapticFeedback.current
154158

@@ -187,7 +191,7 @@ private fun LoadedKeyMapList(
187191

188192
// Give some space at the end of the list so that the FAB doesn't block the items.
189193
item {
190-
Spacer(Modifier.height(100.dp))
194+
Spacer(Modifier.height(bottomListPadding))
191195
}
192196
}
193197
}

app/src/test/java/io/github/sds100/keymapper/BackupManagerTest.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import io.github.sds100.keymapper.data.entities.ActionEntity
1212
import io.github.sds100.keymapper.data.entities.EntityExtra
1313
import io.github.sds100.keymapper.data.entities.KeyMapEntity
1414
import io.github.sds100.keymapper.data.repositories.FakePreferenceRepository
15+
import io.github.sds100.keymapper.data.repositories.GroupRepository
1516
import io.github.sds100.keymapper.data.repositories.PreferenceRepository
1617
import io.github.sds100.keymapper.mappings.keymaps.KeyMapRepository
1718
import io.github.sds100.keymapper.system.files.FakeFileAdapter
@@ -43,6 +44,7 @@ import org.junit.runner.RunWith
4344
import org.mockito.junit.MockitoJUnitRunner
4445
import org.mockito.kotlin.any
4546
import org.mockito.kotlin.anyVararg
47+
import org.mockito.kotlin.doReturn
4648
import org.mockito.kotlin.mock
4749
import org.mockito.kotlin.never
4850
import org.mockito.kotlin.times
@@ -109,6 +111,9 @@ class BackupManagerTest {
109111
uuidGenerator = mockUuidGenerator,
110112
floatingButtonRepository = mock {},
111113
floatingLayoutRepository = mock {},
114+
groupRepository = mock<GroupRepository> {
115+
on { getAllGroups() } doReturn MutableStateFlow(emptyList())
116+
},
112117
)
113118

114119
parser = JsonParser()

0 commit comments

Comments
 (0)