Android/Kotlin: Acceso a sharedPreferences dentro de Reconversión Interceptor
Aquí está una actualización de Interceptor que se usan para administrar automáticamente un token en el interior de las solicitudes. Estoy tratando de conseguir este token de sharedPreferences
, pero getSharedPreferences
no está disponible allí.
¿Cómo puedo recuperar mi token de sharedpreferences dentro de este Interceptor ?
import android.preference.PreferenceManager
import okhttp3.Interceptor
import okhttp3.Response
class ServiceInterceptor: Interceptor {
var token : String = "";
override fun intercept(chain: Interceptor.Chain): Response {
var request = chain.request()
if(request.header("No-Authentication") == null){
if (request.url.toString().contains("/user/signin") === false) {
// Add Authorization header only if it's not the user signin request.
// Get token from shared preferences
val sharedPreference = PreferenceManager.getSharedPreferences()
token = sharedPreference.getString("token")
if (!token.isNullOrEmpty()) {
val finalToken = "Bearer " + token
request = request.newBuilder()
.addHeader("Authorization", finalToken)
.build()
}
}
}
return chain.proceed(request)
}
}
+1

2 respuestas
Obtener su publish_at valor en una variable
long timeStamp = json.getLong("publish_at")
long days = TimeUnit.MILLISECONDS.toDays(timeStamp);
long hours = TimeUnit.MILLISECONDS.toHours(timeStamp);
long minutes = TimeUnit.MILLISECONDS.toMinutes(timeStamp);
long seconds = TimeUnit.MILLISECONDS.toSeconds(timeStamp);
paquete para TimeUnit
import java.util.concurrent.TimeUnit;
+0
Jakir Hossain 2019-09-19 11:29:12
Si el uso de TEXT
, el resultado es el texto que se parece a tiempo. Tiempo de filtros no funcionan en el texto.
Aquí está una manera simple para extraer el valor del tiempo, con INT
para quitar la parte de fecha de la fecha/hora. Un verdadero tiempo es un número, al que se puede aplicar el formato del tiempo.
+0
Keith Kirk 2019-09-19 12:35:03