Skip to content

Commit

Permalink
Change saving fitness prefs to use rf2
Browse files Browse the repository at this point in the history
  • Loading branch information
meiron03 committed Jan 23, 2025
1 parent eaa2e56 commit a61ffab
Show file tree
Hide file tree
Showing 4 changed files with 34 additions and 34 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -153,17 +153,4 @@ void createPollVote(
@Field("id_hash") String idHash,
@Field("poll_options") ArrayList<Integer> pollOptions,
Callback<Response> callback);

@GET("/penndata/fitness/rooms/")
Observable<List<FitnessRoom>> getFitnessRooms();

@GET("/penndata/fitness/preferences")
Observable<List<Integer>> getFitnessPreferences(
@Header("Authorization") String bearerToken);

@POST("/penndata/fitness/preferences/")
void sendFitnessPref(
@Header("Authorization") String bearerToken,
@Body FitnessRequest rooms,
Callback<Response> callback);
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import com.pennapps.labs.pennmobile.api.classes.AccessTokenResponse
import com.pennapps.labs.pennmobile.fitness.classes.FitnessPreferences
import com.pennapps.labs.pennmobile.fitness.classes.FitnessRequest
import com.pennapps.labs.pennmobile.fitness.classes.FitnessRoom
import com.pennapps.labs.pennmobile.fitness.classes.FitnessRoomUsage
import com.pennapps.labs.pennmobile.laundry.classes.LaundryPreferences
Expand All @@ -8,6 +9,7 @@ import com.pennapps.labs.pennmobile.laundry.classes.LaundryRoom
import com.pennapps.labs.pennmobile.laundry.classes.LaundryRoomSimple
import com.pennapps.labs.pennmobile.laundry.classes.LaundryUsage
import okhttp3.ResponseBody
import retrofit.Callback
import retrofit2.Response
import retrofit2.http.Body
import retrofit2.http.Field
Expand Down Expand Up @@ -76,4 +78,11 @@ interface StudentLifeRf2 {
fun getFitnessPreferences(
@Header("Authorization") bearerToken: String?
): Observable<FitnessPreferences?>?

@POST("penndata/fitness/preferences/")
suspend fun sendFitnessPref(
@Header("Authorization") bearerToken: String,
@Body rooms: FitnessRequest
) : Response<ResponseBody>
}

Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,16 @@ import com.pennapps.labs.pennmobile.api.StudentLife
import com.pennapps.labs.pennmobile.fitness.classes.FitnessAdapterDataModel
import com.pennapps.labs.pennmobile.fitness.classes.FitnessRequest
import com.pennapps.labs.pennmobile.fitness.classes.FitnessRoom
import kotlinx.coroutines.DelicateCoroutinesApi
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
import retrofit.ResponseCallback
import retrofit.RetrofitError
import retrofit.client.Response

class FitnessPreferenceViewModel(
private val studentLife: StudentLife,
private val studentLifeRf2: StudentLifeRf2,
private val roomList: List<FitnessRoom>,
) : FitnessAdapterDataModel {
private val roomTot = roomList.size
Expand Down Expand Up @@ -97,27 +101,27 @@ class FitnessPreferenceViewModel(
val bearerToken =
"Bearer " + sp.getString(context.getString(R.string.access_token), "").toString()

try {
studentLife.sendFitnessPref(
// Global since this is not a real view model. (yes, I was naive and dumb)
// Also, this is only used for sending preferences (not critical) and there is no actual
// logic being executed on callback beyond logging
@OptIn(DelicateCoroutinesApi::class)
GlobalScope.launch(Dispatchers.IO) {
val response = studentLifeRf2.sendFitnessPref(
bearerToken,
FitnessRequest(ArrayList(favoriteRooms)),
object : ResponseCallback() {
override fun success(response: Response) {
Log.i("Fitness Preference View Model", "fitness preferences saved")
}

override fun failure(error: RetrofitError) {
Log.e(
"Fitness Preference View Model",
"Error saving fitness " +
"preferences: $error",
error,
)
}
},
FitnessRequest(ArrayList(favoriteRooms))
)
} catch (e: Exception) {
e.printStackTrace()

if (response.isSuccessful) {
Log.i("Fitness Preference View Model", "fitness preferences saved")
} else {
val errorBody = response.errorBody().toString()
Log.e(
"Fitness Preference View Model",
"Error saving fitness " +
"preferences: $errorBody",
Exception(errorBody),
)
}
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ class PottruckFragment : Fragment() {
}
val sortedRooms = rooms.sortedBy { it.roomName }

dataModel = FitnessPreferenceViewModel(mStudentLife, sortedRooms)
dataModel = FitnessPreferenceViewModel(mStudentLifeRf2, sortedRooms)

mActivity.mNetworkManager.getAccessToken {
val sp = PreferenceManager.getDefaultSharedPreferences(mActivity)
Expand Down

0 comments on commit a61ffab

Please sign in to comment.