Skip to content

Commit e245a0a

Browse files
author
sds100
committed
refactor: move ScrollableDialog to another file
Signed-off-by: sds100 <developer.sds100@gmail.com>
1 parent a216b73 commit e245a0a

2 files changed

Lines changed: 49 additions & 40 deletions

File tree

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

Lines changed: 1 addition & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,10 @@ import android.Manifest
44
import androidx.annotation.DrawableRes
55
import androidx.compose.foundation.clickable
66
import androidx.compose.foundation.layout.*
7-
import androidx.compose.foundation.rememberScrollState
87
import androidx.compose.foundation.text.InlineTextContent
98
import androidx.compose.foundation.text.KeyboardActions
109
import androidx.compose.foundation.text.KeyboardOptions
1110
import androidx.compose.foundation.text.appendInlineContent
12-
import androidx.compose.foundation.verticalScroll
1311
import androidx.compose.material.*
1412
import androidx.compose.material.icons.Icons
1513
import androidx.compose.material.icons.outlined.*
@@ -35,7 +33,6 @@ import androidx.compose.ui.text.input.ImeAction
3533
import androidx.compose.ui.text.input.KeyboardType
3634
import androidx.compose.ui.tooling.preview.Preview
3735
import androidx.compose.ui.unit.dp
38-
import androidx.compose.ui.window.Dialog
3936
import com.google.accompanist.permissions.ExperimentalPermissionsApi
4037
import com.google.accompanist.permissions.PermissionStatus
4138
import com.google.accompanist.permissions.rememberMultiplePermissionsState
@@ -47,6 +44,7 @@ import com.mapcode.R
4744
import com.mapcode.theme.Green600
4845
import com.mapcode.theme.MapcodeTheme
4946
import com.mapcode.theme.Yellow300
47+
import com.mapcode.util.ScrollableDialog
5048
import kotlinx.coroutines.CoroutineScope
5149
import kotlinx.coroutines.launch
5250

@@ -124,43 +122,6 @@ fun MapBox(
124122
}
125123
}
126124

127-
@Composable
128-
fun ScrollableDialog(onDismiss: () -> Unit, title: String, buttonText: String, content: @Composable () -> Unit) {
129-
Dialog(onDismissRequest = onDismiss) {
130-
Surface(color = MaterialTheme.colors.surface, shape = MaterialTheme.shapes.medium) {
131-
Column(verticalArrangement = Arrangement.SpaceBetween) {
132-
Text(
133-
modifier = Modifier
134-
.align(Alignment.Start)
135-
.height(64.dp)
136-
.wrapContentSize()
137-
.padding(start = 24.dp, end = 24.dp),
138-
text = title,
139-
style = MaterialTheme.typography.h6
140-
)
141-
Divider(Modifier.height(1.dp))
142-
Box(
143-
Modifier
144-
.weight(1f, fill = false)
145-
.verticalScroll(rememberScrollState())
146-
.padding(start = 24.dp, end = 24.dp, top = 8.dp, bottom = 8.dp)
147-
) {
148-
content()
149-
}
150-
Divider(Modifier.height(1.dp))
151-
TextButton(
152-
modifier = Modifier
153-
.align(Alignment.End)
154-
.padding(8.dp),
155-
onClick = onDismiss
156-
) {
157-
Text(buttonText)
158-
}
159-
}
160-
}
161-
}
162-
}
163-
164125
@Composable
165126
fun AboutDialog(onDismiss: () -> Unit = {}) {
166127
val uriHandler = LocalUriHandler.current
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
package com.mapcode.util
2+
3+
import androidx.compose.foundation.layout.*
4+
import androidx.compose.foundation.rememberScrollState
5+
import androidx.compose.foundation.verticalScroll
6+
import androidx.compose.material.*
7+
import androidx.compose.runtime.Composable
8+
import androidx.compose.ui.Alignment
9+
import androidx.compose.ui.Modifier
10+
import androidx.compose.ui.unit.dp
11+
import androidx.compose.ui.window.Dialog
12+
13+
@Composable
14+
fun ScrollableDialog(onDismiss: () -> Unit, title: String, buttonText: String, content: @Composable () -> Unit) {
15+
Dialog(onDismissRequest = onDismiss) {
16+
Surface(color = MaterialTheme.colors.surface, shape = MaterialTheme.shapes.medium) {
17+
Column(verticalArrangement = Arrangement.SpaceBetween) {
18+
Text(
19+
modifier = Modifier
20+
.align(Alignment.Start)
21+
.height(64.dp)
22+
.wrapContentSize()
23+
.padding(start = 24.dp, end = 24.dp),
24+
text = title,
25+
style = MaterialTheme.typography.h6
26+
)
27+
Divider(Modifier.height(1.dp))
28+
Box(
29+
Modifier
30+
.weight(1f, fill = false)
31+
.verticalScroll(rememberScrollState())
32+
.padding(start = 24.dp, end = 24.dp, top = 8.dp, bottom = 8.dp)
33+
) {
34+
content()
35+
}
36+
Divider(Modifier.height(1.dp))
37+
TextButton(
38+
modifier = Modifier
39+
.align(Alignment.End)
40+
.padding(8.dp),
41+
onClick = onDismiss
42+
) {
43+
Text(buttonText)
44+
}
45+
}
46+
}
47+
}
48+
}

0 commit comments

Comments
 (0)