Skip to content

Commit 05ffa58

Browse files
committed
fix: finish activity when pressing back from home screen
1 parent 8648f0c commit 05ffa58

3 files changed

Lines changed: 16 additions & 14 deletions

File tree

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ class HomeFragment : Fragment() {
4848
onAboutClick = {
4949
findNavController().navigate(NavAppDirections.actionGlobalAboutFragment())
5050
},
51+
finishActivity = requireActivity()::finish,
5152
)
5253
}
5354
}

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

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@ import androidx.navigation.compose.composable
122122
import androidx.navigation.compose.currentBackStackEntryAsState
123123
import androidx.navigation.compose.rememberNavController
124124
import io.github.sds100.keymapper.R
125+
import io.github.sds100.keymapper.backup.ImportExportState
125126
import io.github.sds100.keymapper.backup.RestoreType
126127
import io.github.sds100.keymapper.compose.KeyMapperTheme
127128
import io.github.sds100.keymapper.compose.LocalCustomColorsPalette
@@ -143,6 +144,7 @@ fun HomeScreen(
143144
viewModel: HomeViewModel,
144145
onSettingsClick: () -> Unit,
145146
onAboutClick: () -> Unit,
147+
finishActivity: () -> Unit,
146148
) {
147149
val homeState by viewModel.state.collectAsStateWithLifecycle()
148150

@@ -279,7 +281,11 @@ fun HomeScreen(
279281
onImportClick = { importFileLauncher.launch(FileUtils.MIME_TYPE_ALL) },
280282
onTogglePausedClick = viewModel::onTogglePausedClick,
281283
onFixWarningClick = viewModel::onFixWarningClick,
282-
onBackClick = viewModel::onBackClick,
284+
onBackClick = {
285+
if (!viewModel.onBackClick()) {
286+
finishActivity()
287+
}
288+
},
283289
onSelectAllClick = viewModel::onSelectAllClick,
284290
)
285291
},

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

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import androidx.lifecycle.viewModelScope
1414
import io.github.sds100.keymapper.Constants
1515
import io.github.sds100.keymapper.R
1616
import io.github.sds100.keymapper.backup.BackupRestoreMappingsUseCase
17+
import io.github.sds100.keymapper.backup.ImportExportState
1718
import io.github.sds100.keymapper.backup.RestoreType
1819
import io.github.sds100.keymapper.floating.FloatingLayoutsState
1920
import io.github.sds100.keymapper.floating.ListFloatingLayoutsUseCase
@@ -490,8 +491,13 @@ class HomeViewModel(
490491
_importExportState.value = ImportExportState.Idle
491492
}
492493

493-
fun onBackClick() {
494-
multiSelectProvider.stopSelecting()
494+
fun onBackClick(): Boolean {
495+
if (multiSelectProvider.state.value is SelectionState.Selecting) {
496+
multiSelectProvider.stopSelecting()
497+
return true
498+
} else {
499+
return false
500+
}
495501
}
496502

497503
@Suppress("UNCHECKED_CAST")
@@ -521,17 +527,6 @@ class HomeViewModel(
521527
}
522528
}
523529

524-
sealed class ImportExportState {
525-
data object Idle : ImportExportState()
526-
data object Exporting : ImportExportState()
527-
data class FinishedExport(val uri: String) : ImportExportState()
528-
529-
data class ConfirmImport(val fileUri: String, val keyMapCount: Int) : ImportExportState()
530-
data object Importing : ImportExportState()
531-
data object FinishedImport : ImportExportState()
532-
data class Error(val error: String) : ImportExportState()
533-
}
534-
535530
sealed class HomeState {
536531
data class Selecting(
537532
val selectionCount: Int,

0 commit comments

Comments
 (0)