Skip to content

Commit 72d4724

Browse files
committed
Revert "Update the home screen to match new home screen design"
This reverts commit 3f85402.
1 parent 3f85402 commit 72d4724

3 files changed

Lines changed: 152 additions & 28 deletions

File tree

app/src/main/java/com/example/sw0b_001/ui/views/WelcomeView.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ fun WelcomeMainView() {
6161
text = "Send messages online even when the internet is gone.",
6262
textAlign = TextAlign.Center,
6363
style = MaterialTheme.typography.headlineSmall.copy(
64-
fontWeight = FontWeight.SemiBold
64+
fontWeight = FontWeight.Bold
6565
),
6666
modifier = Modifier.fillMaxWidth()
6767
)

app/src/main/java/com/example/sw0b_001/ui/views/threads/GetStartedView.kt

Lines changed: 151 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -6,61 +6,185 @@ import android.content.Context.ROLE_SERVICE
66
import android.content.Intent
77
import android.os.Build
88
import android.provider.Telephony
9-
import androidx.compose.foundation.Image
109
import androidx.compose.foundation.layout.Arrangement
1110
import androidx.compose.foundation.layout.Column
11+
import androidx.compose.foundation.layout.Row
12+
import androidx.compose.foundation.layout.Spacer
1213
import androidx.compose.foundation.layout.fillMaxSize
1314
import androidx.compose.foundation.layout.fillMaxWidth
1415
import androidx.compose.foundation.layout.padding
16+
import androidx.compose.foundation.layout.size
17+
import androidx.compose.foundation.rememberScrollState
18+
import androidx.compose.foundation.verticalScroll
19+
import androidx.compose.material.icons.Icons
20+
import androidx.compose.material.icons.filled.ChatBubbleOutline
21+
import androidx.compose.material.icons.filled.Create
22+
import androidx.compose.material3.Button
23+
import androidx.compose.material3.ButtonDefaults
24+
import androidx.compose.material3.Card
25+
import androidx.compose.material3.CardDefaults
26+
import androidx.compose.material3.ExperimentalMaterial3Api
27+
import androidx.compose.material3.Icon
1528
import androidx.compose.material3.MaterialTheme
29+
import androidx.compose.material3.OutlinedButton
1630
import androidx.compose.material3.Text
1731
import androidx.compose.runtime.Composable
32+
import androidx.compose.runtime.getValue
33+
import androidx.compose.runtime.mutableStateOf
34+
import androidx.compose.runtime.remember
35+
import androidx.compose.runtime.setValue
1836
import androidx.compose.ui.Alignment
1937
import androidx.compose.ui.Modifier
20-
import androidx.compose.ui.res.painterResource
38+
import androidx.compose.ui.platform.LocalContext
39+
import androidx.compose.ui.platform.LocalInspectionMode
40+
import androidx.compose.ui.res.stringResource
41+
import androidx.compose.ui.text.SpanStyle
42+
import androidx.compose.ui.text.buildAnnotatedString
2143
import androidx.compose.ui.text.font.FontWeight
2244
import androidx.compose.ui.text.style.TextAlign
45+
import androidx.compose.ui.text.withStyle
2346
import androidx.compose.ui.tooling.preview.Preview
2447
import androidx.compose.ui.unit.dp
2548
import androidx.navigation.NavController
49+
import com.afkanerd.smswithoutborders_libsmsmms.extensions.context.isDefault
50+
import com.afkanerd.smswithoutborders_libsmsmms.ui.getSetDefaultBehaviour
51+
import com.afkanerd.smswithoutborders_libsmsmms.ui.navigation.HomeScreenNav
2652
import com.example.sw0b_001.R
2753
import com.example.sw0b_001.ui.theme.AppTheme
28-
import androidx.compose.foundation.layout.Box
29-
import androidx.compose.foundation.layout.size
3054

55+
@OptIn(ExperimentalMaterial3Api::class)
3156
@Composable
32-
fun GetStartedView(navController: NavController) {
57+
fun GetStartedView (navController: NavController) {
58+
val context = LocalContext.current
59+
val previewMode = LocalInspectionMode.current
60+
61+
var isDefault by remember{
62+
mutableStateOf(previewMode || context.isDefault()) }
63+
64+
val getDefaultPermission = getSetDefaultBehaviour(context) {
65+
isDefault = context.isDefault()
66+
if(isDefault) {
67+
navController.navigate(HomeScreenNav()) {
68+
popUpTo(HomeScreenNav()) {
69+
inclusive = true
70+
}
71+
launchSingleTop = true
72+
}
73+
}
74+
}
75+
3376
Column(
3477
modifier = Modifier
78+
.verticalScroll(rememberScrollState())
3579
.fillMaxSize()
36-
.padding(24.dp),
80+
.padding(8.dp),
3781
horizontalAlignment = Alignment.CenterHorizontally,
38-
verticalArrangement = Arrangement.Center
3982
) {
40-
Box(
41-
modifier = Modifier.fillMaxWidth(),
42-
contentAlignment = Alignment.Center
83+
Card(
84+
elevation = CardDefaults.cardElevation(4.dp),
85+
colors = CardDefaults.cardColors(MaterialTheme.colorScheme.background),
86+
modifier = Modifier
87+
.fillMaxWidth()
4388
) {
44-
Image(
45-
painter = painterResource(R.drawable.home_image),
46-
contentDescription = null,
47-
modifier = Modifier.size(180.dp)
48-
)
89+
Column(
90+
modifier = Modifier
91+
.fillMaxWidth()
92+
.padding(16.dp),
93+
horizontalAlignment = Alignment.CenterHorizontally,
94+
verticalArrangement = Arrangement.Center
95+
) {
96+
Button(
97+
onClick = { TODO() },
98+
colors = ButtonDefaults
99+
.buttonColors(MaterialTheme.colorScheme.primary),
100+
modifier = Modifier.fillMaxWidth(),
101+
elevation = ButtonDefaults.buttonElevation(4.dp)
102+
) {
103+
Row(
104+
horizontalArrangement = Arrangement.Center,
105+
verticalAlignment = Alignment.CenterVertically,
106+
modifier = Modifier.padding(8.dp)
107+
) {
108+
Icon(
109+
imageVector = Icons.Filled.Create,
110+
contentDescription = stringResource(R.string.compose),
111+
tint = MaterialTheme.colorScheme.onPrimary,
112+
)
113+
114+
Spacer(Modifier.size(ButtonDefaults.IconSpacing))
115+
116+
Text(
117+
stringResource(R.string.compose_message),
118+
color = MaterialTheme.colorScheme.onPrimary,
119+
fontWeight = FontWeight.SemiBold
120+
)
121+
}
122+
}
123+
124+
Text(text = buildAnnotatedString {
125+
withStyle(style = SpanStyle(color = MaterialTheme.colorScheme.onBackground)) {
126+
append(stringResource(R.string.use_your_phone_number_to_send_an_email_with_the_alias))
127+
}
128+
withStyle(style = SpanStyle(
129+
color = MaterialTheme.colorScheme.tertiary,
130+
fontWeight = FontWeight.Bold)
131+
) { append("your_phonenumber@relaysms.me") } },
132+
style = MaterialTheme.typography.bodySmall,
133+
modifier = Modifier
134+
.fillMaxWidth()
135+
.padding(
136+
top = 16.dp,
137+
start = 20.dp,
138+
end = 20.dp
139+
),
140+
color = MaterialTheme.colorScheme.onBackground,
141+
textAlign = TextAlign.Center
142+
)
143+
}
49144
}
50145

51-
Text(
52-
text = "Compose your first message.",
53-
style = MaterialTheme.typography.titleMedium,
54-
fontWeight = FontWeight.Medium,
55-
color = MaterialTheme.colorScheme.onSurfaceVariant,
56-
textAlign = TextAlign.Center,
57-
modifier = Modifier.padding(top = 8.dp)
58-
)
146+
if(LocalInspectionMode.current || !isDefault) {
147+
Spacer(Modifier.weight(1f))
148+
149+
Column(
150+
modifier = Modifier
151+
.fillMaxWidth()
152+
.padding(16.dp),
153+
horizontalAlignment = Alignment.CenterHorizontally,
154+
verticalArrangement = Arrangement.Center
155+
) {
156+
OutlinedButton(onClick = {
157+
getDefaultPermission.launch(makeDefault(context))
158+
}) {
159+
Row(
160+
horizontalArrangement = Arrangement.Center,
161+
verticalAlignment = Alignment.CenterVertically,
162+
modifier = Modifier
163+
.fillMaxWidth()
164+
.padding(8.dp),
165+
) {
166+
Icon(
167+
imageVector = Icons.Default.ChatBubbleOutline,
168+
contentDescription = stringResource(R.string.compose),
169+
)
170+
171+
Spacer(Modifier.size(ButtonDefaults.IconSpacing))
172+
173+
Text(
174+
stringResource(R.string.set_as_default_sms_app),
175+
fontWeight = FontWeight.SemiBold,
176+
)
177+
}
178+
}
179+
}
180+
}
59181
}
60182
}
61183

184+
62185
fun makeDefault(context: Context): Intent {
63-
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
186+
// TODO: replace this with checking other permissions - since this gives null in level 35
187+
return if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
64188
val roleManager = context.getSystemService(ROLE_SERVICE) as RoleManager
65189
roleManager.createRequestRoleIntent(RoleManager.ROLE_SMS).apply {
66190
putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME, context.packageName)
@@ -75,7 +199,7 @@ fun makeDefault(context: Context): Intent {
75199
@Preview(showBackground = true)
76200
@Composable
77201
fun GetStartedPreviewLoggedIn() {
78-
AppTheme(darkTheme = false) {
79-
GetStartedView(navController = NavController(androidx.compose.ui.platform.LocalContext.current))
202+
AppTheme (darkTheme = false) {
203+
GetStartedView( navController = NavController(LocalContext.current))
80204
}
81-
}
205+
}
-13 KB
Binary file not shown.

0 commit comments

Comments
 (0)