Added Android code
[wl-app.git] / Android / app / src / main / java / com / moiseum / wolnelektury / connection / interceptors / UnauthorizedInterceptor.java
1 package com.moiseum.wolnelektury.connection.interceptors;
2
3 import android.content.Context;
4 import android.support.annotation.NonNull;
5 import android.util.Log;
6
7 import com.moiseum.wolnelektury.R;
8 import com.moiseum.wolnelektury.base.WLApplication;
9 import com.moiseum.wolnelektury.connection.RestClient;
10 import com.moiseum.wolnelektury.view.main.MainActivity;
11
12 import java.io.IOException;
13 import java.net.HttpURLConnection;
14
15 import okhttp3.Interceptor;
16 import okhttp3.Response;
17
18 /**
19  * Created by Piotr Ostrowski on 23.06.2018.
20  */
21 public class UnauthorizedInterceptor implements Interceptor {
22
23         private static final String TAG = UnauthorizedInterceptor.class.getSimpleName();
24
25         @Override
26         public Response intercept(@NonNull Chain chain) throws IOException {
27                 Response response = chain.proceed(chain.request());
28                 if (response.code() == HttpURLConnection.HTTP_UNAUTHORIZED) {
29                         Log.e(TAG, "Provided credentials were invalid. Re-launching app");
30
31                         WLApplication.getInstance().getPreferences().clearUserData();
32                         WLApplication.getInstance().getRestClient().clearOAuthTokens();
33
34                         Context context = WLApplication.getInstance().getApplicationContext();
35                         MainActivity.MainIntent intent = new MainActivity.MainIntent(R.string.unauthorized, context);
36                         context.startActivity(intent);
37                 }
38                 return response;
39         }
40 }