Skip to content

Commit 58358ad

Browse files
Merge pull request #643 from pennlabs/aaron/rf2-refactor
Aaron/rf2 refactor
2 parents 4e1cd4b + 40ee66d commit 58358ad

43 files changed

Lines changed: 1188 additions & 1120 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

PennMobile/build.gradle

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,6 @@ dependencies {
5959

6060
debugImplementation libs.leakcanary.android
6161

62-
implementation libs.rxandroid
6362
implementation libs.androidx.annotation
6463
implementation (libs.androidx.lifecycle.extensions) {
6564
transitive = true
@@ -88,9 +87,9 @@ dependencies {
8887
implementation libs.logging.interceptor
8988
implementation libs.okhttp
9089
implementation libs.picasso
91-
implementation libs.adapter.rxjava2
92-
implementation libs.squareup.retrofit
90+
implementation libs.adapter.rxjava
9391
implementation libs.reactivex.rxandroid
92+
implementation libs.rxjava
9493
implementation libs.joda.time
9594
implementation libs.commons.lang3
9695
implementation libs.kotlinx.coroutines.core

PennMobile/src/main/java/com/pennapps/labs/pennmobile/MainActivity.kt

Lines changed: 46 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.pennapps.labs.pennmobile
22

3-
import StudentLifeRf2
3+
import StudentLife
44
import android.content.Context
55
import android.content.SharedPreferences
66
import android.content.pm.PackageManager
@@ -38,7 +38,6 @@ import com.pennapps.labs.pennmobile.api.CampusExpress
3838
import com.pennapps.labs.pennmobile.api.OAuth2NetworkManager
3939
import com.pennapps.labs.pennmobile.api.Platform
4040
import com.pennapps.labs.pennmobile.api.Serializer
41-
import com.pennapps.labs.pennmobile.api.StudentLife
4241
import com.pennapps.labs.pennmobile.api.classes.Account
4342
import com.pennapps.labs.pennmobile.api.fragments.LoginFragment
4443
import com.pennapps.labs.pennmobile.components.sneaker.Sneaker
@@ -56,16 +55,12 @@ import com.pennapps.labs.pennmobile.utils.Utils
5655
import eightbitlab.com.blurview.BlurView
5756
import kotlinx.coroutines.sync.Mutex
5857
import okhttp3.OkHttpClient
59-
import retrofit.RestAdapter
60-
import retrofit.android.AndroidLog
61-
import retrofit.client.OkClient
62-
import retrofit.converter.GsonConverter
58+
import okhttp3.logging.HttpLoggingInterceptor
6359
import retrofit2.Retrofit
64-
import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory
60+
import retrofit2.adapter.rxjava.RxJavaCallAdapterFactory
6561
import retrofit2.converter.gson.GsonConverterFactory
6662
import retrofit2.converter.scalars.ScalarsConverterFactory
6763
import java.util.concurrent.TimeUnit
68-
import com.squareup.okhttp.OkHttpClient as SquareOkHttpClient
6964

7065
class MainActivity : AppCompatActivity() {
7166
private var tabShowed = false
@@ -316,82 +311,56 @@ class MainActivity : AppCompatActivity() {
316311
val DINING_ID = R.id.nav_dining
317312

318313
private var mStudentLife: StudentLife? = null
319-
private var mStudentLifeRf2: StudentLifeRf2? = null
320314
private var mPlatform: Platform? = null
321315
private var mCampusExpress: CampusExpress? = null
322316

323317
@JvmStatic
324318
val campusExpressInstance: CampusExpress
325319
get() {
326320
if (mCampusExpress == null) {
327-
val gsonBuilder = GsonBuilder()
328-
val gson = gsonBuilder.create()
329-
val restAdapter =
330-
RestAdapter
321+
val retrofit =
322+
Retrofit
331323
.Builder()
332-
.setConverter(GsonConverter(gson))
333-
.setLogLevel(RestAdapter.LogLevel.FULL)
334-
.setLog(AndroidLog("Campus Express"))
335-
.setEndpoint(Platform.campusExpressBaseUrl)
324+
.baseUrl(Platform.campusExpressBaseUrl)
325+
.client(OkHttpClient.Builder().build())
326+
.addConverterFactory(GsonConverterFactory.create())
327+
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
336328
.build()
337-
mCampusExpress = restAdapter.create(CampusExpress::class.java)
329+
330+
mCampusExpress = retrofit.create(CampusExpress::class.java)
338331
}
339332
return mCampusExpress!!
340333
}
341334

342335
@JvmStatic
343-
val platformInstance: Platform
336+
val platformInstance2: Platform
344337
get() {
345338
if (mPlatform == null) {
346-
val gsonBuilder = GsonBuilder()
347-
val gson = gsonBuilder.create()
348-
val restAdapter =
349-
RestAdapter
350-
.Builder()
351-
.setConverter(GsonConverter(gson))
352-
.setLogLevel(RestAdapter.LogLevel.FULL)
353-
.setLog(AndroidLog("Platform"))
354-
.setEndpoint(Platform.platformBaseUrl)
355-
.build()
356-
mPlatform = restAdapter.create(Platform::class.java)
357-
}
358-
return mPlatform!!
359-
}
360-
361-
val studentLifeInstanceRf2: StudentLifeRf2
362-
get() {
363-
if (mStudentLifeRf2 == null) {
364-
val okHttpClient =
365-
OkHttpClient
366-
.Builder()
367-
.connectTimeout(35, TimeUnit.SECONDS)
368-
.readTimeout(35, TimeUnit.SECONDS)
369-
.writeTimeout(35, TimeUnit.SECONDS)
370-
.build()
371-
372339
val retrofit =
373340
Retrofit
374341
.Builder()
375-
.baseUrl("https://pennmobile.org/api/")
376-
.client(okHttpClient)
377-
.addConverterFactory(ScalarsConverterFactory.create())
342+
.baseUrl(Platform.platformBaseUrl)
343+
.client(OkHttpClient.Builder().build())
378344
.addConverterFactory(GsonConverterFactory.create())
379-
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
345+
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
380346
.build()
381-
mStudentLifeRf2 = retrofit.create(StudentLifeRf2::class.java)
347+
348+
mPlatform = retrofit.create(Platform::class.java)
382349
}
383-
return mStudentLifeRf2!!
350+
return mPlatform!!
384351
}
385352

386353
@JvmStatic
387354
val studentLifeInstance: StudentLife
388355
get() {
389356
if (mStudentLife == null) {
390357
val gsonBuilder = GsonBuilder()
358+
391359
gsonBuilder.registerTypeAdapter(
392360
object : TypeToken<MutableList<Contact?>?>() {}.type,
393361
Serializer.DataSerializer<Any?>(),
394362
)
363+
395364
gsonBuilder.registerTypeAdapter(
396365
object : TypeToken<MutableList<Venue?>?>() {}.type,
397366
Serializer.VenueSerializer(),
@@ -405,19 +374,17 @@ class MainActivity : AppCompatActivity() {
405374
object : TypeToken<LaundryRoom?>() {}.type,
406375
Serializer.LaundryRoomSerializer(),
407376
)
377+
408378
gsonBuilder.registerTypeAdapter(
409379
object : TypeToken<MutableList<GSRLocation?>?>() {}.type,
410380
Serializer.GsrLocationSerializer(),
411381
)
412-
// gets laundry preferences (used only for testing)
413-
gsonBuilder.registerTypeAdapter(
414-
object : TypeToken<MutableList<Int?>?>() {}.type,
415-
Serializer.LaundryPrefSerializer(),
416-
)
382+
417383
gsonBuilder.registerTypeAdapter(
418384
object : TypeToken<MutableList<FlingEvent?>?>() {}.type,
419385
Serializer.FlingEventSerializer(),
420386
)
387+
421388
// gets gsr reservations
422389
gsonBuilder.registerTypeAdapter(
423390
object : TypeToken<MutableList<GSRReservation?>?>() {}.type,
@@ -433,19 +400,32 @@ class MainActivity : AppCompatActivity() {
433400
object : TypeToken<MutableList<Post?>?>() {}.type,
434401
Serializer.PostsSerializer(),
435402
)
403+
436404
val gson = gsonBuilder.create()
437-
val okHttpClient = SquareOkHttpClient()
438-
okHttpClient.setConnectTimeout(35, TimeUnit.SECONDS) // Connection timeout
439-
okHttpClient.setReadTimeout(35, TimeUnit.SECONDS) // Read timeout
440-
okHttpClient.setWriteTimeout(35, TimeUnit.SECONDS) // Write timeout
441-
val restAdapter =
442-
RestAdapter
405+
406+
val logging =
407+
HttpLoggingInterceptor().apply {
408+
level = HttpLoggingInterceptor.Level.BODY
409+
}
410+
val okHttpClient =
411+
OkHttpClient
412+
.Builder()
413+
.connectTimeout(35, TimeUnit.SECONDS)
414+
.readTimeout(35, TimeUnit.SECONDS)
415+
.writeTimeout(35, TimeUnit.SECONDS)
416+
.addInterceptor(logging)
417+
.build()
418+
419+
val retrofit =
420+
Retrofit
443421
.Builder()
444-
.setConverter(GsonConverter(gson))
445-
.setClient(OkClient(okHttpClient))
446-
.setEndpoint("https://pennmobile.org/api")
422+
.baseUrl("https://pennmobile.org/api/")
423+
.client(okHttpClient)
424+
.addConverterFactory(ScalarsConverterFactory.create())
425+
.addConverterFactory(GsonConverterFactory.create(gson))
426+
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
447427
.build()
448-
mStudentLife = restAdapter.create(StudentLife::class.java)
428+
mStudentLife = retrofit.create(StudentLife::class.java)
449429
}
450430
return mStudentLife!!
451431
}

PennMobile/src/main/java/com/pennapps/labs/pennmobile/api/CampusExpress.kt

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,33 +3,32 @@ package com.pennapps.labs.pennmobile.api
33
import com.pennapps.labs.pennmobile.api.classes.CampusExpressAccessTokenResponse
44
import com.pennapps.labs.pennmobile.dining.classes.DiningBalances
55
import com.pennapps.labs.pennmobile.dining.classes.DiningBalancesList
6-
import retrofit.Callback
7-
import retrofit.http.GET
8-
import retrofit.http.Header
9-
import retrofit.http.Query
6+
import retrofit2.Response
7+
import retrofit2.http.GET
8+
import retrofit2.http.Header
9+
import retrofit2.http.Query
1010
import rx.Observable
1111

1212
/**
1313
* Created by Julius Snipes on 09/23/2022.
1414
* Retrofit interface to the Campus Express API
1515
*/
1616
interface CampusExpress {
17-
@GET("/oauth/token")
18-
fun getAccessToken(
17+
@GET("oauth/token")
18+
suspend fun getAccessToken(
1919
@Query("code") authCode: String?,
2020
@Query("grant_type") grantType: String?,
2121
@Query("client_id") clientID: String?,
2222
@Query("redirect_uri") redirectURI: String?,
2323
@Query("code_verifier") codeVerifier: String?,
24-
callback: Callback<CampusExpressAccessTokenResponse>,
25-
)
24+
): Response<CampusExpressAccessTokenResponse>
2625

27-
@GET("/dining/currentBalance")
26+
@GET("dining/currentBalance")
2827
fun getCurrentDiningBalances(
2928
@Header("x-authorization") bearerToken: String?,
3029
): Observable<DiningBalances>
3130

32-
@GET("/dining/pastBalances")
31+
@GET("dining/pastBalances")
3332
fun getPastDiningBalances(
3433
@Header("x-authorization") bearerToken: String?,
3534
@Query("start_date") startDate: String?,

PennMobile/src/main/java/com/pennapps/labs/pennmobile/api/DiningRequest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@
44

55
import java.util.List;
66

7-
import retrofit.http.GET;
7+
import retrofit2.http.GET;
88
import rx.Observable;
99

1010
// This is for widget dining data network request)
1111
public interface DiningRequest {
12-
@GET("/dining/venues")
12+
@GET("dining/venues")
1313
Observable<List<Venue>> venues();
1414
}

0 commit comments

Comments
 (0)