мы не можем загрузить фид на главной странице после получения токена авторизации. мы пытаемся получить фид (статьи), отправляя токен аутентификации в заголовках. Дело в том, что канал загружается во второй раз, когда мы открываем приложение, но не в первый раз. наше приложение регистрируется в db при установке, и у нас есть API для получения токена. но канал не загружается одновременно вскоре после получения токена. вместо этого он загружается только после того, как мы закроем приложение и снова откроем его во второй раз. Как заставить его работать, чтобы загрузить канал при первом доступе? прямо сейчас мы получаем пустую страницу при первом доступе.
Мы попробовали:
В Utility. Java
public static void getAdId(String token,Context context) {
Thread thread = new Thread() {
@Override
public void run() {
try {
AdvertisingIdClient.Info adInfo = AdvertisingIdClient.getAdvertisingIdInfo(context);
String advertisingId = adInfo != null ? adInfo.getId() : null;
Constant.MOBILE_ADID = advertisingId;
Log.i("TAG9", "ADID: " + advertisingId);
if (!Constant.MOBILE_ADID.isEmpty() && !token.isEmpty()) {
if (checkInternetConnection(context))
sendTokenToServer(context, Constant.MOBILE_ADID, token); // App registration
loginDeatialsToServer(context,Constant.MOBILE_ADID); // fetches the token
}
} catch (IOException | GooglePlayServicesRepairableException | GooglePlayServicesNotAvailableException exception) {
exception.printStackTrace();
}
}
};
thread.start();
}
Клиентский класс:
builder.addInterceptor(new Interceptor() {
Context context;
@Override
public okhttp3.Response intercept(Chain chain) throws IOException {
String token1= SharedPreference.getInstance(context).getLoginToken(context);
if (token1==null){
Utility.loginDeatialsToServer(context, Constant.MOBILE_ADID);
}
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url(apiurl)
.get()
.addHeader("Authorization",token1)
.build();
okhttp3.Response response = client.newCall(request).execute();
return(response);
}
});