Skip to content

Commit 7d84b3c

Browse files
author
sds100
committed
use method references to reduce recompositions
Signed-off-by: sds100 <developer.sds100@gmail.com>
1 parent a5dbe6e commit 7d84b3c

2 files changed

Lines changed: 18 additions & 18 deletions

File tree

app/src/main/java/com/mapcode/map/InfoScreenPart.kt

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,7 @@ package com.mapcode.map
33
import androidx.compose.foundation.clickable
44
import androidx.compose.foundation.layout.*
55
import androidx.compose.material.ScaffoldState
6-
import androidx.compose.runtime.Composable
7-
import androidx.compose.runtime.collectAsState
8-
import androidx.compose.runtime.getValue
9-
import androidx.compose.runtime.rememberCoroutineScope
6+
import androidx.compose.runtime.*
107
import androidx.compose.ui.Modifier
118
import androidx.compose.ui.res.stringResource
129
import androidx.compose.ui.unit.dp
@@ -147,11 +144,8 @@ fun InfoArea(
147144
val uiState by viewModel.uiState.collectAsState()
148145
val scope = rememberCoroutineScope()
149146
val copiedMessageStr = stringResource(R.string.copied_to_clipboard_snackbar_text)
150-
151-
InfoArea(
152-
modifier,
153-
uiState,
154-
onMapcodeClick = {
147+
val onMapcodeClick = remember {
148+
{
155149
val copied = viewModel.copyMapcode()
156150
if (copied) {
157151
scope.launch {
@@ -160,11 +154,17 @@ fun InfoArea(
160154
scaffoldState.snackbarHostState.showSnackbar(copiedMessageStr)
161155
}
162156
}
163-
},
164-
onAddressChange = { viewModel.queryAddress(it) },
165-
onTerritoryClick = { viewModel.onTerritoryClick() },
166-
onLatitudeChange = { viewModel.queryLatitude(it) },
167-
onLongitudeChange = { viewModel.queryLongitude(it) },
157+
}
158+
}
159+
160+
InfoArea(
161+
modifier,
162+
uiState,
163+
onMapcodeClick = onMapcodeClick,
164+
onAddressChange = viewModel::queryAddress,
165+
onTerritoryClick = viewModel::onTerritoryClick,
166+
onLatitudeChange = viewModel::queryLatitude,
167+
onLongitudeChange = viewModel::queryLongitude,
168168
isVerticalLayout = isVerticalLayout
169169
)
170170
}

app/src/main/java/com/mapcode/map/MapScreen.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ fun MapControls(
197197

198198
MapControls(
199199
modifier = modifier,
200-
onSatelliteButtonClick = { viewModel.onSatelliteButtonClick() },
200+
onSatelliteButtonClick = viewModel::onSatelliteButtonClick,
201201
isSatelliteModeEnabled = isSatelliteModeEnabled,
202202
onZoomInClick = {
203203
scope.launch {
@@ -222,8 +222,8 @@ fun MapControls(
222222
locationPermissionsState.launchMultiplePermissionRequest()
223223
}
224224
},
225-
onDirectionsClick = { viewModel.onDirectionsClick() },
226-
onShareMapcodeClick = { viewModel.shareMapcode() },
225+
onDirectionsClick = viewModel::onDirectionsClick,
226+
onShareMapcodeClick = viewModel::shareMapcode,
227227
onAboutClick = { showAboutDialog = true }
228228
)
229229
}
@@ -367,7 +367,7 @@ fun MapWithCrossHairs(
367367
if (renderGoogleMaps) {
368368
Map(
369369
properties = viewModel.mapProperties,
370-
onCameraMoved = { lat, long, zoom -> viewModel.onCameraMoved(lat, long, zoom) },
370+
onCameraMoved = viewModel::onCameraMoved,
371371
cameraPositionState = viewModel.cameraPositionState
372372
)
373373
}

0 commit comments

Comments
 (0)