import
android.content.ActivityNotFoundException
import
android.content.Context
import
android.content.Intent
import
android.net.Uri
import
android.os.Bundle
import
androidx.activity.ComponentActivity
import
androidx.activity.compose.setContent
import
androidx.compose.foundation.background
import
androidx.compose.foundation.layout.*
import
androidx.compose.material.*
import
androidx.compose.runtime.Composable
import
androidx.compose.runtime.mutableStateOf
import
androidx.compose.runtime.remember
import
androidx.compose.ui.Modifier
import
androidx.compose.ui.graphics.Color
import
androidx.compose.ui.platform.LocalContext
import
androidx.compose.ui.text.TextStyle
import
androidx.compose.ui.text.font.FontWeight
import
androidx.compose.ui.text.style.TextAlign
import
androidx.compose.ui.unit.dp
import
androidx.compose.ui.unit.sp
import
androidx.core.content.ContextCompat.startActivity
import
com.example.newcanaryproject.ui.theme.NewCanaryProjectTheme
import
com.example.newcanaryproject.ui.theme.greenColor
class
MainActivity : ComponentActivity() {
var message =
""
override fun onCreate(savedInstanceState: Bundle?) {
super
.onCreate(savedInstanceState)
setContent {
NewCanaryProjectTheme {
Surface(
modifier = Modifier.fillMaxSize(), color = MaterialTheme.colors.background
) {
Scaffold(
topBar = {
TopAppBar(backgroundColor = greenColor,
title = {
Text(
text =
"GFG"
,
modifier = Modifier.fillMaxWidth(),
textAlign = TextAlign.Center,
color = Color.White
)
})
}) {
mapUI(LocalContext.current)
}
}
}
}
}
}
@Composable
fun mapUI(context: Context) {
val sourceLocation = remember {
mutableStateOf(
""
)
}
val destinationLocation = remember {
mutableStateOf(
""
)
}
Column(
modifier = Modifier
.fillMaxHeight()
.fillMaxWidth()
.background(Color.White)
) {
Spacer(modifier = Modifier.height(
20
.dp))
Text(
text =
"Draw Route on Google Maps in Android"
,
textAlign = TextAlign.Center,
color = greenColor,
fontWeight = FontWeight.Bold,
modifier = Modifier
.padding(
10
.dp)
.fillMaxWidth()
)
TextField(
value = sourceLocation.value,
onValueChange = { sourceLocation.value = it },
placeholder = { Text(text =
"Enter your start location"
) },
modifier = Modifier.padding(
15
.dp).fillMaxWidth(),
textStyle = TextStyle(color = Color.Black, fontSize =
15
.sp),
singleLine =
true
,
)
Spacer(modifier = Modifier.height(
10
.dp))
TextField(
value = destinationLocation.value,
onValueChange = { destinationLocation.value = it },
placeholder = { Text(text =
"Enter your destination location"
) },
modifier = Modifier.padding(
15
.dp).fillMaxWidth(),
textStyle = TextStyle(color = Color.Black, fontSize =
15
.sp),
singleLine =
true
,
)
Spacer(modifier = Modifier.height(
20
.dp))
Button(
onClick = {
drawTrack(sourceLocation.value, destinationLocation.value, context)
},
modifier = Modifier.padding(
10
.dp).fillMaxWidth()
) {
Text(
text =
"Draw Route on Google Maps"
,
color = Color.White,
textAlign = TextAlign.Center
)
}
}
}
private
fun drawTrack(source: String, destination: String, context: Context) {
try
{
val i = Intent(Intent.ACTION_VIEW, uri)
i.setPackage(
"com.google.android.apps.maps"
)
i.flags = Intent.FLAG_ACTIVITY_NEW_TASK
context.startActivity(i)
}
catch
(e: ActivityNotFoundException) {
val i = Intent(Intent.ACTION_VIEW, uri)
i.flags = Intent.FLAG_ACTIVITY_NEW_TASK
context.startActivity(i)
}
}