build variants

This commit is contained in:
moon 2026-06-17 11:21:52 +06:30
parent f173c974d0
commit d67e27593b
3 changed files with 53 additions and 2 deletions

View File

@ -24,6 +24,31 @@ android {
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
flavorDimensions += "env"
productFlavors {
create("sit"){
dimension = "env"
applicationIdSuffix = ".sit"
versionNameSuffix = "-SIT"
versionCode = 1
versionName = "1.0"
buildConfigField("String", "ENV", "\"SIT\"")
}
create("uat"){
dimension = "env"
applicationIdSuffix = ".uat"
versionNameSuffix = "-SIT"
versionCode = 1
versionName = "1.0"
buildConfigField("String", "ENV", "\"UAT\"")
}
create("production"){
dimension = "env"
buildConfigField("String", "ENV", "\"PROD\"")
}
}
buildTypes {
release {
isMinifyEnabled = false

View File

@ -1,5 +1,9 @@
package com.mob.utsmyanmar.ui.dashboard
import android.content.Context
import android.net.ConnectivityManager
import android.net.Network
import android.net.NetworkCapabilities
import android.os.Handler
import android.os.Looper
import androidx.compose.animation.core.LinearEasing
@ -64,9 +68,11 @@ import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableLongStateOf
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.produceState
import androidx.compose.runtime.remember
import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.runtime.setValue
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
@ -123,7 +129,7 @@ fun DashboardScreen2(
)
}
val isOnline = true
val isOnline by rememberIsOnline()
fun confirmationMessage(action: String) = "Do you want to start ${action.lowercase()}?"
fun processingMessage(action: String) = "Sending ${action.lowercase()} request to host..."
@ -1072,6 +1078,26 @@ fun PreviewItem() {
}
@Composable
private fun rememberIsOnline() = run {
val context = LocalContext.current
val cm = remember(context) {
context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
}
produceState(
initialValue = cm.activeNetwork
?.let { cm.getNetworkCapabilities(it)?.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) }
?: false
) {
val callback = object : ConnectivityManager.NetworkCallback() {
override fun onAvailable(network: Network) { value = true }
override fun onLost(network: Network) { value = false }
}
cm.registerDefaultNetworkCallback(callback)
awaitDispose { cm.unregisterNetworkCallback(callback) }
}
}
@Composable
fun Item(
onClick: () -> Unit,