Skip to content

Commit

Permalink
feat: added connect/disconnect button in charge point screen
Browse files Browse the repository at this point in the history
  • Loading branch information
BrianEstrada committed Sep 8, 2024
1 parent dcc7b65 commit 02c555a
Show file tree
Hide file tree
Showing 4 changed files with 54 additions and 36 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,11 @@ import androidx.compose.ui.unit.dp
@Composable
fun TextTooltip(
text: String,
modifier: Modifier = Modifier,
content: @Composable () -> Unit
) {
TooltipArea(
modifier = modifier,
tooltip = {
Card(
modifier = Modifier.padding(8.dp),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ import androidx.compose.ui.unit.sp
import com.monta.ocpp.emulator.chargepoint.entity.ChargePointDAO
import com.monta.ocpp.emulator.common.components.MontaIcon
import com.monta.ocpp.emulator.common.components.MontaStateIcon
import com.monta.ocpp.emulator.common.components.TextTooltip
import com.monta.ocpp.emulator.common.components.getCardStyle
import com.monta.ocpp.emulator.common.components.toKilowattString
import com.monta.ocpp.emulator.common.idValue
Expand Down Expand Up @@ -123,41 +122,6 @@ fun TextWithLabel(
}
}

/**
* Displays the state of a charge point,
* and allows the user to connect or disconnect the charge point quickly
*/
@Composable
private fun ChargePointConnectionButton(
chargePoint: ChargePointDAO
) {
val connectionManager: ConnectionManager by injectAnywhere()

TextTooltip(
text = if (chargePoint.connected) {
"Disconnect charge point"
} else {
"Connect charge point"
}
) {
IconButton(
onClick = {
if (chargePoint.connected) {
connectionManager.disconnect(chargePoint.idValue)
} else {
connectionManager.connect(chargePoint.idValue)
}
}
) {
MontaStateIcon(
state = chargePoint.connected,
onState = "stop_circle",
offState = "play_circle"
)
}
}
}

@Composable
private fun ChargePointEditButton(
chargePoint: ChargePointDAO
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,10 @@ fun chargePointComponent(
text = "Charge Point",
style = MaterialTheme.typography.h5
)
ChargePointConnectionButton(
chargePoint = chargePoint,
modifier = Modifier.align(Alignment.CenterEnd)
)
}

Text(
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
package com.monta.ocpp.emulator.chargepoint.view.components

import androidx.compose.material.IconButton
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import com.monta.ocpp.emulator.chargepoint.entity.ChargePointDAO
import com.monta.ocpp.emulator.common.components.MontaStateIcon
import com.monta.ocpp.emulator.common.components.TextTooltip
import com.monta.ocpp.emulator.common.idValue
import com.monta.ocpp.emulator.common.util.injectAnywhere
import com.monta.ocpp.emulator.v16.connection.ConnectionManager

/**
* Displays the state of a charge point,
* and allows the user to connect or disconnect the charge point quickly
*/
@Composable
fun ChargePointConnectionButton(
chargePoint: ChargePointDAO,
modifier: Modifier = Modifier
) {
val connectionManager: ConnectionManager by injectAnywhere()

TextTooltip(
modifier = modifier,
text = if (chargePoint.connected) {
"Disconnect charge point"
} else {
"Connect charge point"
}
) {
IconButton(
onClick = {
if (chargePoint.connected) {
connectionManager.disconnect(chargePoint.idValue)
} else {
connectionManager.connect(chargePoint.idValue)
}
}
) {
MontaStateIcon(
state = chargePoint.connected,
onState = "stop_circle",
offState = "play_circle"
)
}
}
}

0 comments on commit 02c555a

Please sign in to comment.