diff --git a/app/src/main/java/com/readrops/app/activities/MainActivity.java b/app/src/main/java/com/readrops/app/activities/MainActivity.java index cd5e2fc9..a4049539 100644 --- a/app/src/main/java/com/readrops/app/activities/MainActivity.java +++ b/app/src/main/java/com/readrops/app/activities/MainActivity.java @@ -54,6 +54,7 @@ import org.jetbrains.annotations.NotNull; import java.lang.ref.WeakReference; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.Map; @@ -526,6 +527,7 @@ public class MainActivity extends AppCompatActivity implements SwipeRefreshLayou adapter.clearData(); if (!viewModel.isAccountLocal()) { + getAccountCredentials(Collections.singletonList(newAccount)); refreshLayout.setRefreshing(true); onRefresh(); } diff --git a/readropslibrary/src/main/java/com/readrops/readropslibrary/services/API.java b/readropslibrary/src/main/java/com/readrops/readropslibrary/services/API.java index 952662d2..50941998 100644 --- a/readropslibrary/src/main/java/com/readrops/readropslibrary/services/API.java +++ b/readropslibrary/src/main/java/com/readrops/readropslibrary/services/API.java @@ -18,12 +18,19 @@ public abstract class API { protected static final int MAX_ITEMS = 5000; protected T api; + private Retrofit retrofit; + + private Class clazz; + private String endPoint; public API(Credentials credentials, @NonNull Class clazz, @NonNull String endPoint) { - api = createAPI(credentials, clazz, endPoint); + this.clazz = clazz; + this.endPoint = endPoint; + + api = createAPI(credentials); } - protected Retrofit getConfiguredRetrofitInstance(@NonNull String endPoint) { + protected Retrofit getConfiguredRetrofitInstance() { return new Retrofit.Builder() .baseUrl(HttpManager.getInstance().getCredentials().getUrl() + endPoint) .addConverterFactory(GsonConverterFactory.create()) @@ -32,14 +39,20 @@ public abstract class API { .build(); } - private T createAPI(@NonNull Credentials credentials, @NonNull Class clazz, @NonNull String endPoint) { + private T createAPI(@NonNull Credentials credentials) { HttpManager.getInstance().setCredentials(credentials); - Retrofit retrofit = getConfiguredRetrofitInstance(endPoint); + retrofit = getConfiguredRetrofitInstance(); return retrofit.create(clazz); } public void setCredentials(@NonNull Credentials credentials) { HttpManager.getInstance().setCredentials(credentials); + + retrofit = retrofit.newBuilder() + .baseUrl(credentials.getUrl() + endPoint) + .build(); + + api = retrofit.create(clazz); } }