Skip to content

Commit b6937eb

Browse files
fixed copilot suggestions
1 parent 99d0c93 commit b6937eb

5 files changed

Lines changed: 25 additions & 38 deletions

File tree

app/src/main/java/com/cornellappdev/uplift/data/repositories/DatastoreRepository.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,6 @@ object PreferencesKeys {
2828
val GOAL = intPreferencesKey("workoutGoal")
2929
val SKIP = booleanPreferencesKey("skip")
3030
val FCM_TOKEN = stringPreferencesKey("fcmToken")
31-
val ACCESS_TOKEN = stringPreferencesKey("accessToken")
32-
val REFRESH_TOKEN = stringPreferencesKey("refreshToken")
3331
val DECLINED_NOTIFICATION_PERMISSION =
3432
booleanPreferencesKey("declinedNotificationPermission")
3533
val CAPACITY_REMINDERS_ID = intPreferencesKey("capacityRemindersId")

app/src/main/java/com/cornellappdev/uplift/data/repositories/TokenManager.kt

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,22 @@ class TokenManager @Inject constructor(@ApplicationContext private val context:
1515
private val fileName = "encrypted_tokens"
1616

1717
// Initialize EncryptedSharedPreferences
18-
private val sharedPreferences: SharedPreferences by lazy {
18+
private val sharedPreferences: SharedPreferences? by lazy {
1919
try {
2020
createEncryptedPrefs()
2121
} catch (e: Exception) {
2222
Log.e("TokenManager", "Failed to initialize EncryptedSharedPreferences", e)
23+
// Clear corrupted state
2324
context.deleteSharedPreferences(fileName)
24-
context.getSharedPreferences(fileName, Context.MODE_PRIVATE)
25+
try {
26+
// Could have failed due to previous corrupted state
27+
// One more attempt after cleaning the corruption
28+
createEncryptedPrefs()
29+
} catch (retryException: Exception) {
30+
// Probably broken return null
31+
Log.e("TokenManager", "Failed to initialize EncryptedSharedPreferences again", retryException)
32+
null
33+
}
2534
}
2635
}
2736

@@ -40,18 +49,17 @@ class TokenManager @Inject constructor(@ApplicationContext private val context:
4049
}
4150

4251
fun saveTokens(accessToken: String, refreshToken: String) {
43-
sharedPreferences.edit().apply {
52+
sharedPreferences?.edit {
4453
putString("access_token", accessToken)
4554
putString("refresh_token", refreshToken)
46-
apply()
4755
}
4856
}
4957

50-
fun getAccessToken(): String? = sharedPreferences.getString("access_token", null)
58+
fun getAccessToken(): String? = sharedPreferences?.getString("access_token", null)
5159

52-
fun getRefreshToken(): String? = sharedPreferences.getString("refresh_token", null)
60+
fun getRefreshToken(): String? = sharedPreferences?.getString("refresh_token", null)
5361

5462
fun clearTokens() {
55-
sharedPreferences.edit { clear() }
63+
sharedPreferences?.edit { clear() }
5664
}
5765
}

app/src/main/java/com/cornellappdev/uplift/data/repositories/UserInfoRepository.kt

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import androidx.datastore.preferences.core.edit
88
import androidx.datastore.preferences.core.Preferences
99
import com.apollographql.apollo.ApolloClient
1010
import com.cornellappdev.uplift.CreateUserMutation
11-
import com.cornellappdev.uplift.DeleteUserMutation
1211
import com.cornellappdev.uplift.GetUserByNetIdQuery
1312
import com.cornellappdev.uplift.LoginUserMutation
1413
import com.cornellappdev.uplift.SetWorkoutGoalsMutation
@@ -65,7 +64,7 @@ class UserInfoRepository @Inject constructor(
6564
else {
6665
Log.d("UserInfoRepository", "Skipping goal upload")
6766
}
68-
storeUserFields(id, name, netId, email, skip, accessToken, refreshToken, goal)
67+
storeUserFields(id, name, netId, email, skip, goal)
6968
Log.d("UserInfoRepositoryImpl", "User created successfully")
7069
return true
7170
} catch (e: Exception) {
@@ -95,15 +94,13 @@ class UserInfoRepository @Inject constructor(
9594
}
9695

9796

98-
suspend fun storeUserFields(id: String, username: String, netId: String, email: String, skip: Boolean, accessToken: String, refreshToken: String, goal: Int) {
97+
suspend fun storeUserFields(id: String, username: String, netId: String, email: String, skip: Boolean, goal: Int) {
9998
dataStore.edit { preferences ->
10099
preferences[PreferencesKeys.ID] = id
101100
preferences[PreferencesKeys.NETID] = netId
102101
preferences[PreferencesKeys.USERNAME] = username
103102
preferences[PreferencesKeys.EMAIL] = email
104103
preferences[PreferencesKeys.SKIP] = skip
105-
preferences[PreferencesKeys.ACCESS_TOKEN] = accessToken
106-
preferences[PreferencesKeys.REFRESH_TOKEN] = refreshToken
107104
if (!skip) {
108105
preferences[PreferencesKeys.GOAL] = goal
109106
}
@@ -187,18 +184,6 @@ class UserInfoRepository @Inject constructor(
187184
}
188185
}
189186

190-
private suspend fun storeAccessToken(accessToken: String) {
191-
dataStore.edit { preferences ->
192-
preferences[PreferencesKeys.ACCESS_TOKEN] = accessToken
193-
}
194-
}
195-
196-
private suspend fun storeRefreshToken(refreshToken: String) {
197-
dataStore.edit { preferences ->
198-
preferences[PreferencesKeys.REFRESH_TOKEN] = refreshToken
199-
}
200-
}
201-
202187

203188
suspend fun getSkipFromDataStore(): Boolean {
204189
return dataStore.data.map { preferences ->

app/src/main/java/com/cornellappdev/uplift/ui/screens/reminders/WorkoutReminderScreen.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,11 @@ import androidx.compose.ui.graphics.Color
2424
import androidx.compose.ui.tooling.preview.Preview
2525
import androidx.compose.ui.unit.dp
2626
import androidx.hilt.navigation.compose.hiltViewModel
27-
import androidx.lifecycle.compose.collectAsStateWithLifecycle
2827
import com.cornellappdev.uplift.ui.components.general.UpliftTopBarWithBack
2928
import com.cornellappdev.uplift.ui.components.goalsetting.DeleteDialog
3029
import com.cornellappdev.uplift.ui.components.goalsetting.GoalSlider
3130
import com.cornellappdev.uplift.ui.components.goalsetting.WorkoutReminders
3231
import com.cornellappdev.uplift.ui.components.general.UpliftButton
33-
import com.cornellappdev.uplift.ui.viewmodels.onboarding.ProfileCreationViewModel
3432
import com.cornellappdev.uplift.ui.viewmodels.profile.SettingsViewModel
3533
import com.cornellappdev.uplift.util.GRAY04
3634
import com.cornellappdev.uplift.util.montserratFamily
@@ -63,6 +61,7 @@ fun WorkoutReminderSettingsScreen(
6361

6462
/**
6563
* @param reminders: list of reminders
64+
* @param goalValue: the value of the goal slider
6665
* @param onRemindersChange: callback for when reminders are changed
6766
* @param onGoalValueChange: callback for when the goal slider value is changed
6867
* @param onBackClick: callback for when the back button is clicked

app/src/main/java/com/cornellappdev/uplift/ui/viewmodels/onboarding/ProfileCreationViewModel.kt

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -24,17 +24,14 @@ data class ProfileCreationUiState(
2424
class ProfileCreationViewModel @Inject constructor(
2525
private val userInfoRepository: UserInfoRepository,
2626
private val rootNavigationRepository: RootNavigationRepository,
27-
) : UpliftViewModel<ProfileCreationUiState>(ProfileCreationUiState()) {
28-
29-
init {
30-
viewModelScope.launch {
31-
val user = userInfoRepository.getFirebaseUser()
32-
val name = user?.displayName ?: ""
33-
applyMutation {
34-
copy(user = user, name = name)
35-
}
36-
}
27+
) : UpliftViewModel<ProfileCreationUiState>(
28+
userInfoRepository.getFirebaseUser().let { user ->
29+
ProfileCreationUiState(
30+
user = user,
31+
name = user?.displayName ?: ""
32+
)
3733
}
34+
) {
3835

3936
private fun createUser() = viewModelScope.launch {
4037
val state = getStateValue()

0 commit comments

Comments
 (0)