Skip to content

Commit

Permalink
Start replacing retrofit with retrofit2. The app runs!! Kinda... Ther…
Browse files Browse the repository at this point in the history
…e are a lot of things broken that needs investigating.
  • Loading branch information
meiron03 committed Mar 19, 2024
1 parent f53d5b9 commit 38d117a
Show file tree
Hide file tree
Showing 24 changed files with 661 additions and 650 deletions.
4 changes: 4 additions & 0 deletions PennMobile/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ plugins {
}

apply plugin: 'kotlin-android-extensions'
apply plugin: "kotlin-android"

android {
namespace 'com.pennapps.labs.pennmobile'
Expand Down Expand Up @@ -35,6 +36,7 @@ android {
packagingOptions {
pickFirst 'META-INF/LICENSE.txt'
pickFirst 'META-INF/NOTICE.txt'
exclude 'META-INF/rxjava.properties'
}
}

Expand Down Expand Up @@ -68,6 +70,7 @@ dependencies {
implementation 'com.squareup.picasso:picasso:2.71828'
implementation 'com.squareup.okhttp:okhttp:2.7.5'
implementation 'io.reactivex:rxandroid:1.2.1'
implementation "io.reactivex.rxjava2:rxandroid:2.0.2"
implementation 'androidx.browser:browser:1.5.0'
implementation 'androidx.recyclerview:recyclerview:1.3.2'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
Expand All @@ -91,6 +94,7 @@ dependencies {
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
androidTestImplementation 'com.kaspersky.android-components:kaspresso:1.5.3'
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:adapter-rxjava2:2.4.0'
implementation 'com.squareup.retrofit2:converter-moshi:2.9.0'
implementation 'com.squareup.retrofit2:converter-scalars:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.pennapps.labs.pennmobile

import StudentLife
import android.graphics.Color
import android.graphics.PorterDuff
import android.os.Bundle
Expand All @@ -12,12 +13,11 @@ import android.widget.Button
import android.widget.EditText
import android.widget.Toast
import androidx.preference.PreferenceManager
import com.pennapps.labs.pennmobile.api.StudentLife
import com.pennapps.labs.pennmobile.classes.GSRBookingResult
import com.pennapps.labs.pennmobile.databinding.GsrDetailsBookBinding
import retrofit.Callback
import retrofit.RetrofitError
import retrofit.client.Response
import retrofit2.Call
import retrofit2.Callback
import retrofit2.Response


class BookGsrFragment : Fragment() {
Expand Down Expand Up @@ -128,48 +128,103 @@ class BookGsrFragment : Fragment() {
Log.i("BookGSRFragment", "ID $roomId")
Log.i("BookGSRFragment", "Room Name $roomName")

mStudentLife.bookGSR(
//Passing the values
bearerToken,
startTime,
endTime,
gid,
roomId,
roomName,

//Creating an anonymous callback
object : Callback<GSRBookingResult> {
override fun success(result: GSRBookingResult, response: Response) {
//Displaying the output as a toast and go back to GSR fragment
if (result.getDetail().equals("success")) {
Toast.makeText(activity, "GSR successfully booked", Toast.LENGTH_LONG).show()

// Save user info in shared preferences
val sp = PreferenceManager.getDefaultSharedPreferences(activity)
val editor = sp.edit()
editor.putString(getString(R.string.first_name), firstNameEt.text.toString())
editor.putString(getString(R.string.last_name), lastNameEt.text.toString())
editor.putString(getString(R.string.email_address), emailEt.text.toString())
editor.apply()
}
else {
Toast.makeText(activity, "GSR booking failed", Toast.LENGTH_LONG).show()
Log.e("BookGsrFragment", "GSR booking failed with " + result.getError())
}
// go back to GSR fragment
binding.loading.loadingPanel.visibility = View.GONE
activity?.onBackPressed()
val bookingCall = mStudentLife.bookGSR(bearerToken, startTime, endTime,
gid, roomId, roomName)

bookingCall.enqueue(object : Callback<GSRBookingResult> {
override fun onResponse(
call: Call<GSRBookingResult>,
response: Response<GSRBookingResult>
) {
val result = response.body()!!
//Displaying the output as a toast and go back to GSR fragment
if (result.getDetail().equals("success")) {
Toast.makeText(activity, "GSR successfully booked", Toast.LENGTH_LONG)
.show()

// Save user info in shared preferences
val sp = PreferenceManager.getDefaultSharedPreferences(activity)
val editor = sp.edit()
editor.putString(
getString(R.string.first_name),
firstNameEt.text.toString()
)
editor.putString(
getString(R.string.last_name),
lastNameEt.text.toString()
)
editor.putString(
getString(R.string.email_address),
emailEt.text.toString()
)
editor.apply()
} else {
Toast.makeText(activity, "GSR booking failed", Toast.LENGTH_LONG).show()
Log.e("BookGsrFragment", "GSR booking failed with " + result.getError())
}
// go back to GSR fragment
binding.loading.loadingPanel.visibility = View.GONE
activity?.onBackPressed()
}

override fun onFailure(call: Call<GSRBookingResult>, t: Throwable) {
//If any error occurred displaying the error as toast
Log.e("BookGSRFragment", "Error booking gsr", t)
Toast.makeText(
activity,
"An error has occurred. Please try again.",
Toast.LENGTH_LONG
).show()
binding.loading.loadingPanel.visibility = View.GONE
activity?.onBackPressed()
}
})

/*bookingCall.enqueue(object : Callback<GSRBookingResult> {
override fun success(result: GSRBookingResult, response: Response) {
//Displaying the output as a toast and go back to GSR fragment
if (result.getDetail().equals("success")) {
Toast.makeText(activity, "GSR successfully booked", Toast.LENGTH_LONG)
.show()
// Save user info in shared preferences
val sp = PreferenceManager.getDefaultSharedPreferences(activity)
val editor = sp.edit()
editor.putString(
getString(R.string.first_name),
firstNameEt.text.toString()
)
editor.putString(
getString(R.string.last_name),
lastNameEt.text.toString()
)
editor.putString(
getString(R.string.email_address),
emailEt.text.toString()
)
editor.apply()
} else {
Toast.makeText(activity, "GSR booking failed", Toast.LENGTH_LONG).show()
Log.e("BookGsrFragment", "GSR booking failed with " + result.getError())
}
// go back to GSR fragment
binding.loading.loadingPanel.visibility = View.GONE
activity?.onBackPressed()
}
override fun failure(error: RetrofitError) {
//If any error occurred displaying the error as toast
Log.e("BookGSRFragment", "Error booking gsr", error)
Toast.makeText(activity, "An error has occurred. Please try again.", Toast.LENGTH_LONG).show()
binding.loading.loadingPanel.visibility = View.GONE
activity?.onBackPressed()
}
override fun failure(error: RetrofitError) {
//If any error occurred displaying the error as toast
Log.e("BookGSRFragment", "Error booking gsr", error)
Toast.makeText(
activity,
"An error has occurred. Please try again.",
Toast.LENGTH_LONG
).show()
binding.loading.loadingPanel.visibility = View.GONE
activity?.onBackPressed()
}
)
}
)*/
}
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.pennapps.labs.pennmobile

import StudentLife
import android.os.Bundle
import android.util.Log
import androidx.fragment.app.Fragment
Expand All @@ -15,13 +16,12 @@ import androidx.preference.PreferenceManager
import com.google.android.material.snackbar.Snackbar
import com.google.firebase.crashlytics.FirebaseCrashlytics
import com.pennapps.labs.pennmobile.adapters.DiningAdapter
import com.pennapps.labs.pennmobile.api.StudentLife
import com.pennapps.labs.pennmobile.classes.DiningHall
import com.pennapps.labs.pennmobile.classes.Venue
import com.pennapps.labs.pennmobile.databinding.FragmentDiningBinding
import io.reactivex.Observable
import kotlinx.android.synthetic.main.loading_panel.*
import kotlinx.android.synthetic.main.no_results.*
import rx.Observable
import java.time.LocalDateTime
import java.time.format.DateTimeFormatter

Expand Down Expand Up @@ -130,44 +130,44 @@ class DiningFragment : Fragment() {
} else {
binding.internetConnectionDining.visibility = View.GONE
}

// Map each item in the list of venues to a Venue Observable, then map each Venue to a DiningHall Observable
mStudentLife.venues()
.flatMap { venues -> Observable.from(venues) }
.flatMap { venue ->
val hall = createHall(venue)
Observable.just(hall)
}
.toList()
.subscribe({ diningHalls ->
mActivity.runOnUiThread {
getMenus(diningHalls)
val adapter = DiningAdapter(diningHalls)
loadingPanel?.visibility = View.GONE
if (diningHalls.size > 0) {
no_results?.visibility = View.GONE
}

// Log non-fatal error to crashyltics if null
// this error should not really be happening
// it is *possible* but be rare: ideally network stuff
// is decoupled with UI updates
try {
binding.diningHallsRecyclerView.adapter = adapter
binding.diningSwiperefresh.isRefreshing = false
} catch (e: Exception) {
FirebaseCrashlytics.getInstance().recordException(e)
}
view?.let {displaySnack("Just Updated")}
.flatMap { venues -> Observable.fromIterable(venues)}
.flatMap { venue ->
val hall = createHall(venue)
Observable.just(hall)
}
.toList()
.subscribe({ diningHalls ->
mActivity.runOnUiThread {
getMenus(diningHalls)
val adapter = DiningAdapter(diningHalls)
loadingPanel?.visibility = View.GONE
if (diningHalls.size > 0) {
no_results?.visibility = View.GONE
}
}, {
Log.e("DiningFragment", "Error getting dining halls", it)
mActivity.runOnUiThread {
Log.e("Dining", "Could not load Dining page", it)
loadingPanel?.visibility = View.GONE

// Log non-fatal error to crashyltics if null
// this error should not really be happening
// it is *possible* but be rare: ideally network stuff
// is decoupled with UI updates
try {
binding.diningHallsRecyclerView.adapter = adapter
binding.diningSwiperefresh.isRefreshing = false
} catch (e: Exception) {
FirebaseCrashlytics.getInstance().recordException(e)
}
})
view?.let {displaySnack("Just Updated")}
}
}, {
Log.e("DiningFragment", "Error getting dining halls", it)
mActivity.runOnUiThread {
Log.e("Dining", "Could not load Dining page", it)
loadingPanel?.visibility = View.GONE
binding.diningSwiperefresh.isRefreshing = false
}
})
}

override fun onResume() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.pennapps.labs.pennmobile

import StudentLife
import android.graphics.Color
import android.os.Bundle
import android.view.LayoutInflater
Expand All @@ -8,7 +9,6 @@ import android.view.ViewGroup
import android.widget.RelativeLayout
import android.widget.TextView
import androidx.fragment.app.Fragment
import com.pennapps.labs.pennmobile.api.StudentLife
import com.pennapps.labs.pennmobile.classes.DiningHall
import com.pennapps.labs.pennmobile.classes.VenueInterval
import org.joda.time.format.DateTimeFormat
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.pennapps.labs.pennmobile

import StudentLife
import android.os.Bundle
import android.util.Log
import android.view.*
Expand All @@ -8,18 +9,17 @@ import androidx.fragment.app.Fragment
import androidx.preference.PreferenceManager
import androidx.recyclerview.widget.LinearLayoutManager
import com.pennapps.labs.pennmobile.adapters.DiningSettingsAdapter
import com.pennapps.labs.pennmobile.api.StudentLife
import com.pennapps.labs.pennmobile.classes.DiningHall
import com.pennapps.labs.pennmobile.classes.DiningRequest
import com.pennapps.labs.pennmobile.classes.HomepageDataModel
import com.pennapps.labs.pennmobile.databinding.FragmentDiningPreferencesBinding
import kotlinx.android.synthetic.main.include_main.toolbar
import com.google.firebase.crashlytics.FirebaseCrashlytics

import io.reactivex.Observable
import retrofit.ResponseCallback
import retrofit.RetrofitError
import retrofit.client.Response
import rx.Observable


class DiningSettingsFragment(dataModel: HomepageDataModel) : Fragment() {
private lateinit var mActivity: MainActivity
Expand Down Expand Up @@ -79,7 +79,7 @@ class DiningSettingsFragment(dataModel: HomepageDataModel) : Fragment() {
// Map each item in the list of venues to a Venue Observable, then map each Venue to a DiningHall Observable
originalPreferences = dataModel.getDiningHallPrefs()
mStudentLife.venues()
.flatMap { venues -> Observable.from(venues) }
.flatMap { venues -> Observable.fromIterable(venues) }
.flatMap { venue ->
val hall = DiningFragment.createHall(venue)
Observable.just(hall)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ class FlingFragment : Fragment() {
_binding = FragmentFlingBinding.inflate(inflater, container, false)
val view = binding.root
val labs = MainActivity.studentLifeInstance
labs.flingEvents.subscribe({ flingEvents ->
labs.getFlingEvents().subscribe({ flingEvents ->
activity?.runOnUiThread {
binding.flingFragmentRecyclerview.layoutManager = LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false)
binding.flingFragmentRecyclerview.adapter = FlingRecyclerViewAdapter(context, flingEvents)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.pennapps.labs.pennmobile

import StudentLife
import android.app.DatePickerDialog
import android.app.TimePickerDialog
import android.content.SharedPreferences
Expand All @@ -13,9 +14,7 @@ import android.view.ViewGroup
import android.widget.*
import android.widget.AdapterView.OnItemSelectedListener
import androidx.preference.PreferenceManager
import com.google.firebase.analytics.FirebaseAnalytics
import com.pennapps.labs.pennmobile.adapters.GsrBuildingAdapter
import com.pennapps.labs.pennmobile.api.StudentLife
import com.pennapps.labs.pennmobile.classes.GSRContainer
import com.pennapps.labs.pennmobile.classes.GSRRoom
import com.pennapps.labs.pennmobile.classes.GSRSlot
Expand Down
Loading

0 comments on commit 38d117a

Please sign in to comment.