Browse Source

Refresh Token

Manoj 2 years ago
parent
commit
3a59c13d0f
7 changed files with 158 additions and 5 deletions
  1. +8
    -0
      app/src/main/java/com/nivesh/production/bajajfd/model/RefreshTokenResponse.kt
  2. +4
    -0
      app/src/main/java/com/nivesh/production/bajajfd/repositories/MainRepository.kt
  3. +121
    -5
      app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt
  4. +1
    -0
      app/src/main/java/com/nivesh/production/bajajfd/util/Constants.kt
  5. +10
    -0
      app/src/main/java/com/nivesh/production/bajajfd/util/SharedPrefrenceDataMethods.kt
  6. +1
    -0
      app/src/main/java/com/nivesh/production/bajajfd/util/Utility.kt
  7. +13
    -0
      app/src/main/java/com/nivesh/production/bajajfd/viewModel/BajajFDViewModel.kt

+ 8
- 0
app/src/main/java/com/nivesh/production/bajajfd/model/RefreshTokenResponse.kt View File

@ -0,0 +1,8 @@
package com.nivesh.production.bajajfd.model
import Response
data class RefreshTokenResponse(
var response: Response,
val Token: String
)

+ 4
- 0
app/src/main/java/com/nivesh/production/bajajfd/repositories/MainRepository.kt View File

@ -2,6 +2,7 @@ package com.nivesh.production.bajajfd.repositories
import com.nivesh.production.bajajfd.interfaces.ApiInterface
import com.nivesh.production.bajajfd.model.*
import okhttp3.RequestBody
class MainRepository constructor(private val apiInterface: ApiInterface) {
@ -107,4 +108,7 @@ class MainRepository constructor(private val apiInterface: ApiInterface) {
suspend fun paymentReQueryResponse(getRatesRequest: PaymentReQueryRequest, token: String) =
apiInterface.paymentReQuery(getRatesRequest, token)
suspend fun finaliseTokenResponse(requestBody: RequestBody) =
apiInterface.freshToken(requestBody)
}

+ 121
- 5
app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt View File

@ -5,6 +5,7 @@ import android.app.Dialog
import android.graphics.Bitmap
import android.graphics.drawable.Drawable
import android.os.Bundle
import android.text.TextUtils
import android.util.Log
import android.view.View
import android.view.WindowManager
@ -24,17 +25,26 @@ import com.nivesh.production.bajajfd.model.*
import com.nivesh.production.bajajfd.repositories.MainRepository
import com.nivesh.production.bajajfd.ui.fragment.*
import com.nivesh.production.bajajfd.ui.providerfactory.*
import com.nivesh.production.bajajfd.util.Common
import com.nivesh.production.bajajfd.util.*
import com.nivesh.production.bajajfd.util.Common.Companion.defaultShape
import com.nivesh.production.bajajfd.util.Common.Companion.getDate
import com.nivesh.production.bajajfd.util.Common.Companion.selectedShape
import com.nivesh.production.bajajfd.util.Common.Companion.showDialogValidation
import com.nivesh.production.bajajfd.util.Constants.Companion.KEY_LOGINTYPE
import com.nivesh.production.bajajfd.util.Constants.Companion.KEY_LOGIN_EMAIL
import com.nivesh.production.bajajfd.util.Constants.Companion.KEY_LOGIN_PASSWORD
import com.nivesh.production.bajajfd.util.Constants.Companion.KEY_LOGIN_SOCIALID
import com.nivesh.production.bajajfd.util.Constants.Companion.token
import com.nivesh.production.bajajfd.util.ProgressUtil
import com.nivesh.production.bajajfd.util.ProgressUtil.hideLoading
import com.nivesh.production.bajajfd.util.ProgressUtil.showLoading
import com.nivesh.production.bajajfd.util.Resource
import com.nivesh.production.bajajfd.util.Utility.Companion.convert_sha256
import com.nivesh.production.bajajfd.util.Utility.Companion.convert_sha256_2X
import com.nivesh.production.bajajfd.util.Utility.Companion.getDeviceInfo
import com.nivesh.production.bajajfd.util.Utils_Functions.Companion.getCurrentDateStamp
import com.nivesh.production.bajajfd.viewModel.*
import okhttp3.MediaType.Companion.toMediaType
import okhttp3.RequestBody.Companion.toRequestBody
import org.json.JSONObject
class BajajFdMainActivity : BaseActivity() {
@ -181,7 +191,7 @@ class BajajFdMainActivity : BaseActivity() {
setViewPager(stepsCount)
checkFDCKYCApi()
}
// 650 -> refreshToken()
650 -> refreshToken()
else -> {
showDialogValidation(this@BajajFdMainActivity, response.message)
}
@ -205,6 +215,112 @@ class BajajFdMainActivity : BaseActivity() {
}
}
private fun refreshToken() {
if (!Common.isNetworkAvailable(this@BajajFdMainActivity)) {
return
}
var jsonObject: JSONObject? = null
val str2Hash: String?
var strDeviceID = ""
try {
jsonObject = JSONObject()
jsonObject.put(
"Email_Mob", SharedPrefrenceDataMethods.getLoginEmail(
KEY_LOGIN_EMAIL,
applicationContext
)
)
// jsonObject.put("Uid", SharedPrefrenceDataMethods.getLoginUser_Code(KEY_LOGINUSER_CODE, getApplicationContext()));
jsonObject.put(
"Uid", SharedPrefrenceDataMethods.getUserUid(
Constants.KEY_GET_USER_UID,
applicationContext
)
)
jsonObject.put(
"Soc_Id", SharedPrefrenceDataMethods.getLogin_SOCIALID(
KEY_LOGIN_SOCIALID,
applicationContext
)
)
val ed = EncryptionDecryption()
val decryptString = ed.decrypt(
SharedPrefrenceDataMethods.getLoginPassword(
KEY_LOGIN_PASSWORD,
applicationContext
)
)
val strTimeStamp = getCurrentDateStamp()
if (SharedPrefrenceDataMethods.getLogin_Type(KEY_LOGINTYPE, applicationContext)
.equals("EMAIL",true)
) {
val strsha256hex_password: String = convert_sha256(decryptString!!)
str2Hash = convert_sha256_2X(strsha256hex_password + strTimeStamp)
} else {
str2Hash = ""
}
val deviceInfo: DeviceInfo = getDeviceInfo(applicationContext)
strDeviceID = java.lang.String.valueOf(deviceInfo.device_id)
Log.e("strDeviceID", "-> $strDeviceID")
jsonObject.put("DeviceId", strDeviceID)
val mediaType = "application/json; charset=utf-8".toMediaType()
val requestBody = jsonObject.toString().toRequestBody(mediaType)
viewModel.getRefreshToken(requestBody, this@BajajFdMainActivity)
(this@BajajFdMainActivity).viewModel.getFreshTokenMutableData.observe(this){ response ->
when (response){
is Resource.Success -> {
val refreshTokenResponse: RefreshTokenResponse =
Gson().fromJson(response.data?.toString(),RefreshTokenResponse::class.java)
if (!TextUtils.isEmpty(
refreshTokenResponse.Token
)
) {
SharedPrefrenceDataMethods.setToken(
this,
refreshTokenResponse.Token
)
}
if (refreshTokenResponse.response.StatusCode == 200
) {
// getSubBroker_Encrypt(LoginCode, Api.Subbroker)
getClientDetailsApi(stepCount)
}
}
is Resource.Error -> {
}
is Resource.Loading -> {
}
is Resource.DataError ->{
}
}
}
} catch (e: Exception) {
e.printStackTrace()
// Utility.saveExceptionLog(
// mActivity,
// BaseActivity.TAG,
// Throwable().stackTrace[0].lineNumber.toString(),
// e
// )
}
}
private fun setViewPager(stepsCount: Int) {
// steps setting
setBackground(selectedShape(), defaultShape(), defaultShape(), defaultShape(), stepsCount)
@ -329,7 +445,7 @@ class BajajFdMainActivity : BaseActivity() {
fdInvestmentDetails.CustomerType = ""
}
// 650 -> refreshToken()
// 650 -> refreshToken()
else -> {
showDialogValidation(
this@BajajFdMainActivity,


+ 1
- 0
app/src/main/java/com/nivesh/production/bajajfd/util/Constants.kt View File

@ -15,5 +15,6 @@ class Constants() {
const val KEY_VERSION_CODE = "Version Code"
const val KEY_GCM_APP_ID = "Gcm App Id"
val GetFreshToken_V2_Encrypt: String = BASE_URL + "GetToken_V2"
const val KEY_GET_USER_UID = "Get User Uid Code"
}
}

+ 10
- 0
app/src/main/java/com/nivesh/production/bajajfd/util/SharedPrefrenceDataMethods.kt View File

@ -61,5 +61,15 @@ class SharedPrefrenceDataMethods {
editor?.putString("token", token)
editor?.apply()
}
fun getUserUid(Name: String?, context: Context?): String? {
val preferences = context?.let { PreferenceManager.getDefaultSharedPreferences(it) }
return preferences?.getString(Name, "")
}
fun getLogin_SOCIALID(Name: String?, context: Context?): String? {
val preferences = context?.let { PreferenceManager.getDefaultSharedPreferences(it) }
return preferences?.getString(Name, "")
}
}
}

+ 1
- 0
app/src/main/java/com/nivesh/production/bajajfd/util/Utility.kt View File

@ -2,6 +2,7 @@ package com.nivesh.production.bajajfd.util
import android.Manifest
import android.annotation.SuppressLint
import android.app.Activity
import android.content.Context
import android.content.pm.PackageManager
import android.os.Build


+ 13
- 0
app/src/main/java/com/nivesh/production/bajajfd/viewModel/BajajFDViewModel.kt View File

@ -1,6 +1,7 @@
package com.nivesh.production.bajajfd.viewModel
import android.app.Activity
import android.util.Log
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
@ -13,6 +14,7 @@ import com.nivesh.production.bajajfd.util.Common.Companion.handleResponse
import com.nivesh.production.bajajfd.util.Constants
import com.nivesh.production.bajajfd.util.Resource
import kotlinx.coroutines.launch
import okhttp3.RequestBody
open class BajajFDViewModel(private val mainRepository: MainRepository) : ViewModel() {
@ -45,6 +47,7 @@ open class BajajFDViewModel(private val mainRepository: MainRepository) : ViewMo
if (Common.isNetworkAvailable(activity)) {
getFDKYCMutableData.postValue(Resource.Loading())
val response = mainRepository.checkFDKYCRequest(requestBody, token)
Log.e("check_response",response.body().toString())
getFDKYCMutableData.postValue(handleResponse(response))
}
}
@ -377,4 +380,14 @@ open class BajajFDViewModel(private val mainRepository: MainRepository) : ViewMo
}
}
val getFreshTokenMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun getRefreshToken(requestBody: RequestBody,
activity: Activity) = viewModelScope.launch(handleError(activity)){
if(Common.isNetworkAvailable(activity)){
getFreshTokenMutableData.postValue(Resource.Loading())
val response = mainRepository.finaliseTokenResponse(requestBody)
getFreshTokenMutableData.postValue(handleResponse(response))
}
}
}

Loading…
Cancel
Save

Powered by TurnKey Linux.