99 lines
3.3 KiB
Kotlin
99 lines
3.3 KiB
Kotlin
/*
|
|
*
|
|
* * Copyright © 2023 by Navi Technologies Limited
|
|
* * All rights reserved. Strictly confidential
|
|
*
|
|
*/
|
|
|
|
package com.naviapp.configuration.composable
|
|
|
|
import androidx.compose.foundation.layout.Column
|
|
import androidx.compose.foundation.layout.Spacer
|
|
import androidx.compose.foundation.layout.height
|
|
import androidx.compose.foundation.rememberScrollState
|
|
import androidx.compose.foundation.verticalScroll
|
|
import androidx.compose.runtime.Composable
|
|
import androidx.compose.runtime.getValue
|
|
import androidx.compose.runtime.mutableStateOf
|
|
import androidx.compose.runtime.remember
|
|
import androidx.compose.runtime.setValue
|
|
import androidx.compose.ui.Modifier
|
|
import androidx.compose.ui.text.input.KeyboardType
|
|
import androidx.compose.ui.text.input.TextFieldValue
|
|
import androidx.compose.ui.tooling.preview.Preview
|
|
import androidx.compose.ui.unit.dp
|
|
import com.navi.base.utils.EMPTY
|
|
|
|
@Composable
|
|
fun NaviConfigurationScreen(
|
|
onDevClick: () -> Unit,
|
|
isDevEnabled: Boolean,
|
|
onQaClick: () -> Unit,
|
|
isQaEnabled: Boolean,
|
|
onVersionCodeChange: (versionCode: String) -> Unit,
|
|
onBaseUrlChanged: (baseUrl: String) -> Unit,
|
|
onBackButtonClick: () -> Unit,
|
|
) {
|
|
var versionCode by remember { mutableStateOf(TextFieldValue(EMPTY)) }
|
|
var baseUrl by remember { mutableStateOf(TextFieldValue(EMPTY)) }
|
|
|
|
Column {
|
|
NaviTopNavigationBar(onBackButtonClick = onBackButtonClick)
|
|
|
|
Column(modifier = Modifier.verticalScroll(state = rememberScrollState())) {
|
|
NaviHeaderView(
|
|
titleText = "Navi Configuration",
|
|
subtitleText = "Change Environment, Version Code, & Base URL on the fly",
|
|
)
|
|
|
|
Spacer(modifier = Modifier.height(6.dp))
|
|
|
|
NaviToggleButtonsWithTitle(
|
|
titleText = "Environment",
|
|
firstButtonTitleText = "DEV",
|
|
onFirstButtonClick = onDevClick,
|
|
isFirstButtonSelected = isDevEnabled,
|
|
secondButtonTitleText = "QA",
|
|
onSecondButtonClick = onQaClick,
|
|
isSecondButtonSelected = isQaEnabled,
|
|
)
|
|
|
|
NaviTextFieldWithTitleAndButton(
|
|
titleText = "Version Code",
|
|
placeholderText = "Enter version code here",
|
|
keyboardType = KeyboardType.Number,
|
|
inputText = versionCode,
|
|
onTextValueChanged = { versionCode = it },
|
|
buttonText = "Update",
|
|
onButtonClick = { onVersionCodeChange(versionCode.text) },
|
|
)
|
|
|
|
NaviTextFieldWithTitleAndButton(
|
|
titleText = "Base URL",
|
|
placeholderText = "Enter base url here",
|
|
keyboardType = KeyboardType.Uri,
|
|
inputText = baseUrl,
|
|
onTextValueChanged = { baseUrl = it },
|
|
buttonText = "Update",
|
|
onButtonClick = { onBaseUrlChanged(baseUrl.text) },
|
|
)
|
|
|
|
Spacer(modifier = Modifier.height(12.dp))
|
|
}
|
|
}
|
|
}
|
|
|
|
@Preview(showSystemUi = true, showBackground = true)
|
|
@Composable
|
|
private fun NaviConfigurationScreenPreview() {
|
|
NaviConfigurationScreen(
|
|
onDevClick = {},
|
|
isDevEnabled = true,
|
|
onQaClick = {},
|
|
isQaEnabled = false,
|
|
onVersionCodeChange = {},
|
|
onBaseUrlChanged = {},
|
|
onBackButtonClick = {}
|
|
)
|
|
}
|