Skip to content

Commit aa2844c

Browse files
committed
Remove studentLife
1 parent 27f467e commit aa2844c

22 files changed

+238
-314
lines changed

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

Lines changed: 0 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -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
@@ -59,14 +58,12 @@ import okhttp3.OkHttpClient
5958
import okhttp3.logging.HttpLoggingInterceptor
6059
import retrofit.RestAdapter
6160
import retrofit.android.AndroidLog
62-
import retrofit.client.OkClient
6361
import retrofit.converter.GsonConverter
6462
import retrofit2.Retrofit
6563
import retrofit2.adapter.rxjava.RxJavaCallAdapterFactory
6664
import retrofit2.converter.gson.GsonConverterFactory
6765
import retrofit2.converter.scalars.ScalarsConverterFactory
6866
import java.util.concurrent.TimeUnit
69-
import com.squareup.okhttp.OkHttpClient as SquareOkHttpClient
7067

7168
class MainActivity : AppCompatActivity() {
7269
private var tabShowed = false
@@ -316,7 +313,6 @@ class MainActivity : AppCompatActivity() {
316313
val GSR_ID = R.id.nav_gsr
317314
val DINING_ID = R.id.nav_dining
318315

319-
private var mStudentLife: StudentLife? = null
320316
private var mStudentLifeRf2: StudentLifeRf2? = null
321317
private var mPlatform: Platform? = null
322318
private var mCampusExpress: CampusExpress? = null
@@ -437,72 +433,6 @@ class MainActivity : AppCompatActivity() {
437433
return mStudentLifeRf2!!
438434
}
439435

440-
@JvmStatic
441-
val studentLifeInstance: StudentLife
442-
get() {
443-
if (mStudentLife == null) {
444-
val gsonBuilder = GsonBuilder()
445-
gsonBuilder.registerTypeAdapter(
446-
object : TypeToken<MutableList<Contact?>?>() {}.type,
447-
Serializer.DataSerializer<Any?>(),
448-
)
449-
gsonBuilder.registerTypeAdapter(
450-
object : TypeToken<MutableList<Venue?>?>() {}.type,
451-
Serializer.VenueSerializer(),
452-
)
453-
gsonBuilder.registerTypeAdapter(
454-
DiningHall::class.java,
455-
Serializer.MenuSerializer(),
456-
)
457-
// gets room
458-
gsonBuilder.registerTypeAdapter(
459-
object : TypeToken<LaundryRoom?>() {}.type,
460-
Serializer.LaundryRoomSerializer(),
461-
)
462-
gsonBuilder.registerTypeAdapter(
463-
object : TypeToken<MutableList<GSRLocation?>?>() {}.type,
464-
Serializer.GsrLocationSerializer(),
465-
)
466-
// gets laundry preferences (used only for testing)
467-
gsonBuilder.registerTypeAdapter(
468-
object : TypeToken<MutableList<Int?>?>() {}.type,
469-
Serializer.LaundryPrefSerializer(),
470-
)
471-
gsonBuilder.registerTypeAdapter(
472-
object : TypeToken<MutableList<FlingEvent?>?>() {}.type,
473-
Serializer.FlingEventSerializer(),
474-
)
475-
// gets gsr reservations
476-
gsonBuilder.registerTypeAdapter(
477-
object : TypeToken<MutableList<GSRReservation?>?>() {}.type,
478-
Serializer.GsrReservationSerializer(),
479-
)
480-
// gets user
481-
gsonBuilder.registerTypeAdapter(
482-
Account::class.java,
483-
Serializer.UserSerializer(),
484-
)
485-
// gets posts
486-
gsonBuilder.registerTypeAdapter(
487-
object : TypeToken<MutableList<Post?>?>() {}.type,
488-
Serializer.PostsSerializer(),
489-
)
490-
val gson = gsonBuilder.create()
491-
val okHttpClient = SquareOkHttpClient()
492-
okHttpClient.setConnectTimeout(35, TimeUnit.SECONDS) // Connection timeout
493-
okHttpClient.setReadTimeout(35, TimeUnit.SECONDS) // Read timeout
494-
okHttpClient.setWriteTimeout(35, TimeUnit.SECONDS) // Write timeout
495-
val restAdapter =
496-
RestAdapter
497-
.Builder()
498-
.setConverter(GsonConverter(gson))
499-
.setClient(OkClient(okHttpClient))
500-
.setEndpoint("https://pennmobile.org/api")
501-
.build()
502-
mStudentLife = restAdapter.create(StudentLife::class.java)
503-
}
504-
return mStudentLife!!
505-
}
506436
}
507437
}
508438

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

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ class HuntsmanGSRLogin : Fragment() {
2929
private lateinit var roomName: String
3030
private var gid: Int = 0
3131

32-
private lateinit var mStudentLife: StudentLife
3332
private lateinit var mStudentLifeRf2: StudentLifeRf2
3433
private lateinit var mActivity: MainActivity
3534

@@ -38,7 +37,6 @@ class HuntsmanGSRLogin : Fragment() {
3837

3938
override fun onCreate(savedInstanceState: Bundle?) {
4039
super.onCreate(savedInstanceState)
41-
mStudentLife = MainActivity.studentLifeInstance
4240
mStudentLifeRf2= MainActivity.studentLifeInstanceRf2
4341
mActivity = activity as MainActivity
4442
arguments?.let { arguments ->

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

Lines changed: 0 additions & 53 deletions
This file was deleted.

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

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,22 @@
11
import com.pennapps.labs.pennmobile.api.classes.AccessTokenResponse
2+
import com.pennapps.labs.pennmobile.dining.classes.DiningHall
23
import com.pennapps.labs.pennmobile.dining.classes.DiningPreferences
34
import com.pennapps.labs.pennmobile.dining.classes.DiningRequest
5+
import com.pennapps.labs.pennmobile.dining.classes.Venue
46
import com.pennapps.labs.pennmobile.fitness.classes.FitnessPreferences
57
import com.pennapps.labs.pennmobile.fitness.classes.FitnessRequest
68
import com.pennapps.labs.pennmobile.fitness.classes.FitnessRoom
79
import com.pennapps.labs.pennmobile.fitness.classes.FitnessRoomUsage
10+
import com.pennapps.labs.pennmobile.fling.classes.FlingEvent
811
import com.pennapps.labs.pennmobile.gsr.classes.GSR
912
import com.pennapps.labs.pennmobile.gsr.classes.GSRBookingResult
13+
import com.pennapps.labs.pennmobile.gsr.classes.GSRLocation
14+
import com.pennapps.labs.pennmobile.gsr.classes.GSRReservation
1015
import com.pennapps.labs.pennmobile.gsr.classes.WhartonStatus
1116
import com.pennapps.labs.pennmobile.home.classes.Article
1217
import com.pennapps.labs.pennmobile.home.classes.CalendarEvent
1318
import com.pennapps.labs.pennmobile.home.classes.Poll
19+
import com.pennapps.labs.pennmobile.home.classes.Post
1420
import com.pennapps.labs.pennmobile.laundry.classes.LaundryPreferences
1521
import com.pennapps.labs.pennmobile.laundry.classes.LaundryRequest
1622
import com.pennapps.labs.pennmobile.laundry.classes.LaundryRoom
@@ -158,11 +164,45 @@ interface StudentLifeRf2 {
158164
): Observable<List<Poll?>?>
159165

160166
@FormUrlEncoded
161-
@POST("/portal/votes/")
167+
@POST("portal/votes/")
162168
suspend fun createPollVote(
163169
@Header("Authorization") bearerToken: String,
164170
@Field("id_hash") idHash: String,
165171
@Field("poll_options") pollOptions: ArrayList<Int>,
166172
): Response<ResponseBody>
173+
174+
@GET("dining/venues")
175+
fun venues(): Observable<List<Venue?>?>
176+
177+
@GET("dining/menus/{day}")
178+
fun getMenus(
179+
@Path("day") day: String?
180+
): Observable<List<DiningHall.Menu?>?>
181+
182+
@GET("dining/weekly_menu/{id}")
183+
fun daily_menu(
184+
@Path("id") id: Int
185+
): Observable<DiningHall?>
186+
187+
@GET("gsr/locations")
188+
fun location(): Observable<List<GSRLocation?>?>
189+
190+
@GET("events/fling")
191+
fun getFlingEvents(): Observable<List<FlingEvent?>?>
192+
193+
@GET("gsr/reservations")
194+
fun getGsrReservations(
195+
@Header("Authorization") bearerToken: String?
196+
): Observable<List<GSRReservation?>?>
197+
198+
@GET("laundry/preferences")
199+
fun getLaundryPrefObservable(
200+
@Header("Authorization") bearerToken: String
201+
): Observable<LaundryPreferences?>
202+
203+
@GET("portal/posts/browse/")
204+
fun validPostsList(
205+
@Header("Authorization") bearerToken: String?
206+
): Observable<List<Post?>?>
167207
}
168208

PennMobile/src/main/java/com/pennapps/labs/pennmobile/dining/adapters/DiningAdapter.kt

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.pennapps.labs.pennmobile.dining.adapters
22

3+
import StudentLifeRf2
34
import android.content.Context
45
import android.os.Bundle
56
import android.view.LayoutInflater
@@ -15,18 +16,18 @@ import androidx.preference.PreferenceManager
1516
import androidx.recyclerview.widget.RecyclerView
1617
import com.pennapps.labs.pennmobile.MainActivity
1718
import com.pennapps.labs.pennmobile.R
18-
import com.pennapps.labs.pennmobile.api.StudentLife
1919
import com.pennapps.labs.pennmobile.databinding.DiningListItemBinding
2020
import com.pennapps.labs.pennmobile.dining.classes.DiningHall
2121
import com.pennapps.labs.pennmobile.dining.fragments.MenuFragment
2222
import com.squareup.picasso.Picasso
2323
import rx.android.schedulers.AndroidSchedulers
24+
import rx.schedulers.Schedulers
2425
import java.util.Collections
2526

2627
class DiningAdapter(
2728
private var diningHalls: List<DiningHall>,
2829
) : RecyclerView.Adapter<DiningAdapter.DiningViewHolder>() {
29-
private lateinit var mStudentLife: StudentLife
30+
private lateinit var mStudentLifeRf2: StudentLifeRf2
3031
private lateinit var loaded: BooleanArray
3132
private lateinit var sortBy: String
3233
private lateinit var context: Context
@@ -36,7 +37,7 @@ class DiningAdapter(
3637
viewType: Int,
3738
): DiningViewHolder {
3839
val itemBinding = DiningListItemBinding.inflate(LayoutInflater.from(parent.context), parent, false)
39-
mStudentLife = MainActivity.studentLifeInstance
40+
mStudentLifeRf2 = MainActivity.studentLifeInstanceRf2
4041
loaded = BooleanArray(diningHalls.size)
4142
context = parent.context
4243
val sp = PreferenceManager.getDefaultSharedPreferences(context)
@@ -85,14 +86,17 @@ class DiningAdapter(
8586
if (diningHall.isResidential && !loaded[position]) {
8687
holder.progressBar.visibility = View.VISIBLE
8788
try {
88-
mStudentLife
89+
mStudentLifeRf2
8990
.daily_menu(diningHall.id)
91+
.subscribeOn(Schedulers.io())
9092
.observeOn(AndroidSchedulers.mainThread())
9193
.subscribe({ newDiningHall ->
92-
diningHall.sortMeals(newDiningHall.menus)
93-
holder.progressBar.visibility = View.INVISIBLE
94-
holder.menuArrow.visibility = View.VISIBLE
95-
loaded[position] = true
94+
newDiningHall?.menus?.let { menus ->
95+
diningHall.sortMeals(menus)
96+
holder.progressBar.visibility = View.INVISIBLE
97+
holder.menuArrow.visibility = View.VISIBLE
98+
loaded[position] = true
99+
}
96100
}, {
97101
holder.progressBar.visibility = View.VISIBLE
98102
holder.menuArrow.visibility = View.GONE

PennMobile/src/main/java/com/pennapps/labs/pennmobile/dining/adapters/DiningCardAdapter.kt

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

3+
import StudentLifeRf2
34
import android.content.Context
45
import android.os.Bundle
56
import android.util.Log
@@ -15,11 +16,11 @@ import androidx.recyclerview.widget.RecyclerView
1516
import com.bumptech.glide.Glide
1617
import com.pennapps.labs.pennmobile.MainActivity
1718
import com.pennapps.labs.pennmobile.R
18-
import com.pennapps.labs.pennmobile.api.StudentLife
1919
import com.pennapps.labs.pennmobile.databinding.DiningListItemBinding
2020
import com.pennapps.labs.pennmobile.dining.classes.DiningHall
2121
import com.pennapps.labs.pennmobile.dining.fragments.MenuFragment
2222
import rx.android.schedulers.AndroidSchedulers
23+
import rx.schedulers.Schedulers
2324

2425
class DiningCardAdapter(
2526
halls: ArrayList<DiningHall>,
@@ -32,15 +33,15 @@ class DiningCardAdapter(
3233

3334
private lateinit var mContext: Context
3435
private lateinit var mActivity: MainActivity
35-
private lateinit var mStudentLife: StudentLife
36+
private lateinit var mStudentLifeRf2: StudentLifeRf2
3637

3738
override fun onCreateViewHolder(
3839
parent: ViewGroup,
3940
viewType: Int,
4041
): ViewHolder {
4142
mContext = parent.context
4243
mActivity = mContext as MainActivity
43-
mStudentLife = MainActivity.studentLifeInstance
44+
mStudentLifeRf2 = MainActivity.studentLifeInstanceRf2
4445
val itemBinding = DiningListItemBinding.inflate(LayoutInflater.from(mContext), parent, false)
4546
itemBinding.diningProgress.visibility = GONE
4647
return ViewHolder(itemBinding)
@@ -89,11 +90,14 @@ class DiningCardAdapter(
8990
// Load the menu for each dining hall
9091
if (currentHall.isResidential) {
9192
try {
92-
mStudentLife
93+
mStudentLifeRf2
9394
.daily_menu(currentHall.id)
95+
.subscribeOn(Schedulers.io())
9496
.observeOn(AndroidSchedulers.mainThread())
9597
.subscribe({ newDiningHall ->
96-
currentHall.sortMeals(newDiningHall.menus)
98+
newDiningHall?.let {
99+
currentHall.sortMeals(it.menus)
100+
}
97101
}, {
98102
Log.e("DiningCard", "Error loading menus", it)
99103
Toast.makeText(mContext, "Error loading menus", Toast.LENGTH_SHORT).show()

0 commit comments

Comments
 (0)