Skip to content

Commit ff2ab17

Browse files
bryantran24Pahina0
andauthored
Open app settings option (#145)
* Add permissions setting page * Add open app settings * move open app settings to settings page --------- Co-authored-by: Alexander Wu <51211848+Pahina0@users.noreply.github.com>
1 parent 4aeefc2 commit ff2ab17

4 files changed

Lines changed: 36 additions & 19 deletions

File tree

app/src/main/java/edu/rpi/shuttletracker/ui/settings/SettingsScreen.kt

Lines changed: 33 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
package edu.rpi.shuttletracker.ui.settings
22

3+
import android.content.Intent
4+
import android.net.Uri
5+
import android.provider.Settings
36
import androidx.compose.foundation.layout.Arrangement
47
import androidx.compose.foundation.layout.Row
58
import androidx.compose.foundation.layout.fillMaxWidth
@@ -11,6 +14,7 @@ import androidx.compose.material.icons.outlined.Code
1114
import androidx.compose.material.icons.outlined.Contrast
1215
import androidx.compose.material.icons.outlined.Info
1316
import androidx.compose.material.icons.outlined.RestartAlt
17+
import androidx.compose.material.icons.outlined.Settings
1418
import androidx.compose.material3.ExperimentalMaterial3Api
1519
import androidx.compose.material3.Icon
1620
import androidx.compose.material3.IconButton
@@ -29,6 +33,7 @@ import androidx.compose.runtime.remember
2933
import androidx.compose.runtime.rememberCoroutineScope
3034
import androidx.compose.ui.Modifier
3135
import androidx.compose.ui.input.nestedscroll.nestedScroll
36+
import androidx.compose.ui.platform.LocalContext
3237
import androidx.compose.ui.res.stringResource
3338
import androidx.hilt.lifecycle.viewmodel.compose.hiltViewModel
3439
import androidx.lifecycle.compose.collectAsStateWithLifecycle
@@ -50,6 +55,16 @@ fun SettingsScreen(
5055
navigator: DestinationsNavigator,
5156
viewModel: SettingsViewModel = hiltViewModel(),
5257
) {
58+
val context = LocalContext.current
59+
60+
val openAppSettings: () -> Unit = {
61+
val intent =
62+
Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS).apply {
63+
data = Uri.fromParts("package", context.packageName, null)
64+
}
65+
context.startActivity(intent)
66+
}
67+
5368
val scrollBehavior =
5469
TopAppBarDefaults.exitUntilCollapsedScrollBehavior(
5570
rememberTopAppBarState(),
@@ -79,28 +94,12 @@ fun SettingsScreen(
7994
LazyColumn(
8095
modifier = Modifier.padding(padding),
8196
) {
82-
// item {
83-
// ColorBlindSettingItem(
84-
// colorBlindMode = settingsUiState.colorBlindMode,
85-
// updateColorBlindMode = viewModel::updateColorBlindMode,
86-
// )
87-
// }
88-
8997
item {
9098
ThemeModeSettingItem(
9199
themeMode = settingsUiState.themeMode,
92100
updateThemeMode = viewModel::updateThemeMode,
93101
)
94102
}
95-
if (settingsUiState.devOptionState) {
96-
item {
97-
SettingsItem(
98-
Icons.Outlined.Code,
99-
stringResource(R.string.dev_options),
100-
onClick = { navigator.navigate(DevMenuScreenDestination()) },
101-
)
102-
}
103-
}
104103

105104
item {
106105
SettingsItem(
@@ -122,6 +121,24 @@ fun SettingsScreen(
122121
onClick = { navigator.navigate(AboutScreenDestination()) },
123122
)
124123
}
124+
125+
item {
126+
SettingsItem(
127+
icon = Icons.Outlined.Settings,
128+
title = stringResource(R.string.open_app_settings),
129+
onClick = openAppSettings,
130+
)
131+
}
132+
133+
if (settingsUiState.devOptionState) {
134+
item {
135+
SettingsItem(
136+
Icons.Outlined.Code,
137+
stringResource(R.string.dev_options),
138+
onClick = { navigator.navigate(DevMenuScreenDestination()) },
139+
)
140+
}
141+
}
125142
}
126143
}
127144
}

app/src/main/java/edu/rpi/shuttletracker/ui/setup/SetupScreen.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ fun AnalyticsPage(
178178
@Composable
179179
@Preview
180180
fun PermissionsPage() {
181-
val context = LocalContext.current
181+
LocalContext.current
182182

183183
Column(horizontalAlignment = Alignment.CenterHorizontally) {
184184
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {

app/src/main/java/edu/rpi/shuttletracker/util/services/FirebaseService.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package edu.rpi.shuttletracker.util.services
22

33
import android.app.NotificationManager
4-
import android.content.Context
54
import androidx.core.app.NotificationCompat
65
import com.google.firebase.messaging.FirebaseMessaging
76
import com.google.firebase.messaging.FirebaseMessagingService
@@ -41,7 +40,7 @@ class FirebaseService : FirebaseMessagingService() {
4140
private fun sendNotification(body: String) {
4241
val notificationManager: NotificationManager =
4342
getSystemService(
44-
Context.NOTIFICATION_SERVICE,
43+
NOTIFICATION_SERVICE,
4544
) as NotificationManager
4645

4746
val notificationBody =

app/src/main/res/values/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,7 @@
136136
<string name="dev_options">Developer Options</string>
137137
<string name="app_theme">App Theme</string>
138138
<string name="redo_setup">Redo Setup</string>
139+
<string name="open_app_settings">Open app settings</string>
139140

140141
<!-- Analytics -->
141142
<string name="analytics">Analytics</string>

0 commit comments

Comments
 (0)