You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.5 KiB
Java
45 lines
1.5 KiB
Java
package com.fox2code.mmm.utils.io;
|
|
|
|
// Original written by tsuharesu
|
|
// Adapted to create a "drop it in and watch it work" approach by Nikhil Jha.
|
|
// Just add your package statement and drop it in the folder with all your other classes.
|
|
|
|
import android.annotation.SuppressLint;
|
|
import android.content.Context;
|
|
import android.content.SharedPreferences;
|
|
|
|
import androidx.annotation.NonNull;
|
|
|
|
import com.fox2code.mmm.MainApplication;
|
|
|
|
import java.io.IOException;
|
|
import java.util.HashSet;
|
|
|
|
import okhttp3.Interceptor;
|
|
import okhttp3.Response;
|
|
|
|
public class ReceivedCookiesInterceptor implements Interceptor {
|
|
private final Context context;
|
|
public ReceivedCookiesInterceptor(Context context) {
|
|
this.context = context;
|
|
} // AddCookiesInterceptor()
|
|
@NonNull
|
|
@SuppressLint({"MutatingSharedPrefs", "ApplySharedPref"})
|
|
@Override
|
|
public Response intercept(Chain chain) throws IOException {
|
|
Response originalResponse = chain.proceed(chain.request());
|
|
|
|
if (!originalResponse.headers("Set-Cookie").isEmpty()) {
|
|
HashSet<String> cookies = (HashSet<String>) MainApplication.getSharedPreferences().getStringSet("PREF_COOKIES", new HashSet<>());
|
|
|
|
cookies.addAll(originalResponse.headers("Set-Cookie"));
|
|
|
|
SharedPreferences.Editor memes = MainApplication.getSharedPreferences().edit();
|
|
memes.putStringSet("PREF_COOKIES", cookies).apply();
|
|
memes.commit();
|
|
}
|
|
|
|
return originalResponse;
|
|
}
|
|
}
|