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
2019-09-19 11:12:21
fuente
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
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.

enter image description here

+0
2019-09-19 12:35:03

Vea otras preguntas sobre etiquetas