diff --git a/app/src/main/java/com/nivesh/production/bajajfd/api/ApiCallback.kt b/app/src/main/java/com/nivesh/production/bajajfd/api/ApiCallback.kt new file mode 100644 index 0000000..308a41f --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/api/ApiCallback.kt @@ -0,0 +1,35 @@ +package com.nivesh.production.bajajfd.api + +import com.nivesh.production.bajajfd.util.Resource +import retrofit2.Call +import retrofit2.Callback +import retrofit2.Response + +abstract class ApiCallback : Callback> { + + abstract fun onSuccess(response: Resource) + + abstract fun onFailure(response: Resource) + + override fun onResponse(call: Call>, response: Response>) { + if (response.isSuccessful && response.body() != null && response.code() == 200) { + onSuccess(response.body()!!) + } else { + // handle 4xx & 5xx error codes here +// val resp = Resource() +// resp.status = false +// resp.message = response.message() +// onFailure(resp) + + + + } + } + + override fun onFailure(call: Call>, t: Throwable) { +// val response = Resource() +// response.status = false +// response.message = t.message.toString() +// onFailure(response) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/api/ApiClient.kt b/app/src/main/java/com/nivesh/production/bajajfd/api/ApiClient.kt index 14f4d89..a3ef03a 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/api/ApiClient.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/api/ApiClient.kt @@ -13,6 +13,7 @@ import okhttp3.logging.HttpLoggingInterceptor import retrofit2.Retrofit import retrofit2.converter.gson.GsonConverterFactory import java.io.IOException +import java.util.concurrent.TimeUnit class ApiClient { val context = BajajApplication.appContext @@ -27,7 +28,12 @@ class ApiClient { val client = OkHttpClient.Builder() .addInterceptor(ConnectVerifierInterceptor()) .retryOnConnectionFailure(true) + .callTimeout(2, TimeUnit.MINUTES) + .connectTimeout(20, TimeUnit.SECONDS) + .readTimeout(30, TimeUnit.SECONDS) + .writeTimeout(30, TimeUnit.SECONDS) .build() + Retrofit.Builder() .baseUrl(BASE_URL) .addConverterFactory(GsonConverterFactory.create()) diff --git a/app/src/main/java/com/nivesh/production/bajajfd/api/TokenAuthenticator.kt b/app/src/main/java/com/nivesh/production/bajajfd/api/TokenAuthenticator.kt new file mode 100644 index 0000000..204cf9d --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/api/TokenAuthenticator.kt @@ -0,0 +1,19 @@ +package com.nivesh.production.bajajfd.api + +import okhttp3.Authenticator +import okhttp3.Request +import okhttp3.Response +import okhttp3.Route + +class TokenAuthenticator { +// override fun authenticate(route: Route?, response: Response): Request? { +//// newAccessToken = service.refreshToken(); +//// +//// // Add new header to rejected request and retry it +//// return response.request().newBuilder() +//// .header(AUTHORIZATION, newAccessToken) +//// .build(); +// +// +// } +} \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt index 9bb0340..d02c903 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt @@ -8,6 +8,7 @@ import androidx.lifecycle.ViewModelProvider import androidx.viewpager.widget.ViewPager import com.google.gson.Gson import com.nivesh.production.bajajfd.adapter.SectionsPagerAdapter +import com.nivesh.production.bajajfd.api.ApiCallback import com.nivesh.production.bajajfd.api.ApiClient import com.nivesh.production.bajajfd.databinding.ActivityBajajFdBinding import com.nivesh.production.bajajfd.interfaces.BajajFDInterface @@ -145,6 +146,9 @@ class BajajFdMainActivity : BaseActivity(), BajajFDInterface { } is Resource.Loading -> { + } + is Resource.DataError -> { + } } } @@ -187,7 +191,8 @@ class BajajFdMainActivity : BaseActivity(), BajajFDInterface { viewModel.getClientDetails(getClientDetailsRequest, token) viewModel.getClientDetailsMutableData.observe(this) { response -> when (response) { - is Resource.Success -> { + is Resource.Success + -> { Log.e("response", "-->$response") getClientDetailsResponse = Gson().fromJson( @@ -215,6 +220,8 @@ class BajajFdMainActivity : BaseActivity(), BajajFDInterface { } is Resource.Loading -> { + }is Resource.DataError -> { + } } } @@ -222,6 +229,9 @@ class BajajFdMainActivity : BaseActivity(), BajajFDInterface { } + + + private fun setViewPager(stepsCount: Int) { // steps setting setBackground(selectedShape(), defaultShape(), defaultShape(), defaultShape()) @@ -358,6 +368,9 @@ class BajajFdMainActivity : BaseActivity(), BajajFDInterface { } is Resource.Loading -> { + } + is Resource.DataError -> { + } } } @@ -460,6 +473,10 @@ class BajajFdMainActivity : BaseActivity(), BajajFDInterface { is Resource.Loading -> { } + + is Resource.DataError -> { + + } } } } diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt index 629f416..cadf277 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt @@ -142,6 +142,8 @@ class StepFourBajajFDFragment : BaseFragment() { } is Resource.Loading -> { + }is Resource.DataError -> { + } } } @@ -210,6 +212,10 @@ class StepFourBajajFDFragment : BaseFragment() { is Resource.Loading -> { } + + is Resource.DataError -> { + + } } } } diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepOneBajajFDFragment.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepOneBajajFDFragment.kt index b6e6484..6b6e87f 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepOneBajajFDFragment.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepOneBajajFDFragment.kt @@ -223,7 +223,10 @@ class StepOneBajajFDFragment : BaseFragment() { } is Resource.Loading -> { + }is Resource.DataError -> { + } + } } } @@ -271,6 +274,10 @@ class StepOneBajajFDFragment : BaseFragment() { is Resource.Loading -> { } + + is Resource.DataError -> { + + } } } } @@ -312,6 +319,11 @@ class StepOneBajajFDFragment : BaseFragment() { is Resource.Loading -> { } + is Resource.DataError -> { + + } + + } } } @@ -380,6 +392,11 @@ class StepOneBajajFDFragment : BaseFragment() { is Resource.Loading -> { } + + is Resource.DataError -> { + + } + } } } @@ -498,6 +515,10 @@ class StepOneBajajFDFragment : BaseFragment() { is Resource.Loading -> { } + + is Resource.DataError -> { + + } } } } diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt index e6dcb59..6f6e658 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt @@ -341,7 +341,12 @@ class StepThreeBajajFDFragment : BaseFragment() { is Resource.Loading -> { } + + is Resource.DataError -> { + + } } + } } @@ -397,6 +402,9 @@ class StepThreeBajajFDFragment : BaseFragment() { } is Resource.Loading -> { + } + is Resource.DataError -> { + } } } diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt index 8218885..3d2b9ee 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt @@ -792,6 +792,10 @@ class StepTwoBajajFDFragment : BaseFragment() { is Resource.Loading -> { } + + is Resource.DataError -> { + + } } } } @@ -834,6 +838,10 @@ class StepTwoBajajFDFragment : BaseFragment() { is Resource.Loading -> { } + + is Resource.DataError -> { + + } } } } @@ -968,6 +976,10 @@ class StepTwoBajajFDFragment : BaseFragment() { is Resource.Loading -> { } + + is Resource.DataError-> { + + } } } @@ -1064,6 +1076,9 @@ class StepTwoBajajFDFragment : BaseFragment() { } is Resource.Loading -> { + } + is Resource.DataError -> { + } } } @@ -1112,6 +1127,10 @@ class StepTwoBajajFDFragment : BaseFragment() { is Resource.Loading -> { } + + is Resource.DataError -> { + + } } } @@ -1180,6 +1199,10 @@ class StepTwoBajajFDFragment : BaseFragment() { is Resource.Loading -> { } + + is Resource.DataError -> { + + } } } @@ -1244,6 +1267,10 @@ class StepTwoBajajFDFragment : BaseFragment() { is Resource.Loading -> { } + + is Resource.DataError -> { + + } } } @@ -1301,6 +1328,10 @@ class StepTwoBajajFDFragment : BaseFragment() { is Resource.Loading -> { } + + is Resource.DataError -> { + + } } } @@ -1358,7 +1389,14 @@ class StepTwoBajajFDFragment : BaseFragment() { is Resource.Loading -> { } + + is Resource.DataError -> { + + } } + + + } } @@ -1415,6 +1453,11 @@ class StepTwoBajajFDFragment : BaseFragment() { is Resource.Loading -> { } + + + is Resource.DataError -> { + + } } } @@ -1488,6 +1531,10 @@ class StepTwoBajajFDFragment : BaseFragment() { is Resource.Loading -> { } + + is Resource.DataError -> { + + } } } @@ -1565,6 +1612,11 @@ class StepTwoBajajFDFragment : BaseFragment() { is Resource.Loading -> { } + + + is Resource.DataError -> { + + } } } } @@ -1607,6 +1659,10 @@ class StepTwoBajajFDFragment : BaseFragment() { is Resource.Loading -> { } + + is Resource.DataError -> { + + } } } diff --git a/app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt b/app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt index 405c1ad..b9e6037 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt @@ -3,10 +3,12 @@ package com.nivesh.production.bajajfd.util import android.app.Activity import android.app.AlertDialog import android.content.Context +import android.content.Intent import android.graphics.Color import android.graphics.drawable.GradientDrawable import android.net.ConnectivityManager import android.net.NetworkCapabilities +import android.net.Uri import android.os.Build import android.provider.ContactsContract import android.util.Patterns @@ -194,11 +196,15 @@ class Common { fun handleRatesResponse(response: retrofit2.Response): Resource { try { - if (response.isSuccessful && response.body() != null) { + if (response.isSuccessful && response.body() != null) + { response.body()?.let { resultResponse -> return Resource.Success(resultResponse) } } + + + } catch (t: Throwable) { return when (t) { is IOException -> Resource.Error("Response : " + t.message.plus(" Cause: " + t.cause)) @@ -209,5 +215,9 @@ class Common { } return Resource.Error(response.message()) } + + + + } } \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/util/Resource.kt b/app/src/main/java/com/nivesh/production/bajajfd/util/Resource.kt index ef9662e..c8a3766 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/util/Resource.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/util/Resource.kt @@ -1,10 +1,27 @@ package com.nivesh.production.bajajfd.util + sealed class Resource( val data:T?=null, - val message:String?=null) -{ - class Success(data: T):Resource(data) - class Error(message: String,data: T?= null):Resource(data,message) - class Loading:Resource() + var message:String?=null, + val errorCode: Int? = null, + var status: Boolean = true + +) { + class Success(data: T) : Resource(data) + class Error(message: String, data: T? = null) : Resource(data, message) + class Loading : Resource() + class DataError(errorCode: Int,message: String, data: T? = null) : Resource(null, message,errorCode) + + + override fun toString(): String { + return when (this) { + is Success<*> -> "Success[data=$data]" + is DataError -> "ErrorCode[exception=$errorCode]" + is Loading -> "Loading" + is Error -> "Error[exception=${error(Any())}]" + } + + } + } \ No newline at end of file