Skip to content

Commit 56bd8b0

Browse files
authored
Merge pull request #3922 from ahaarrestad/asbjorn-generalRetrofitFactory
Extracting general Retrofit factory
2 parents f1f5c24 + 3dbb0e1 commit 56bd8b0

File tree

7 files changed

+198
-158
lines changed

7 files changed

+198
-158
lines changed

app/src/main/java/com/eveningoutpost/dexdrip/cgm/nsfollow/BaseCallback.java

Lines changed: 0 additions & 72 deletions
This file was deleted.

app/src/main/java/com/eveningoutpost/dexdrip/cgm/nsfollow/NightscoutCallback.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.eveningoutpost.dexdrip.cgm.nsfollow;
22

3+
import com.eveningoutpost.dexdrip.utils.framework.RetrofitService.BaseCallback;
4+
35
import retrofit2.Call;
46
import retrofit2.Response;
57

app/src/main/java/com/eveningoutpost/dexdrip/cgm/nsfollow/NightscoutFollow.java

Lines changed: 4 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -10,34 +10,19 @@
1010
import com.eveningoutpost.dexdrip.cgm.nsfollow.messages.Entry;
1111
import com.eveningoutpost.dexdrip.cgm.nsfollow.utils.NightscoutUrl;
1212
import com.eveningoutpost.dexdrip.evaluators.MissedReadingsEstimator;
13-
import com.eveningoutpost.dexdrip.tidepool.InfoInterceptor;
14-
import com.google.gson.Gson;
15-
import com.google.gson.GsonBuilder;
16-
import com.google.gson.JsonSyntaxException;
17-
import com.google.gson.TypeAdapter;
18-
import com.google.gson.TypeAdapterFactory;
19-
import com.google.gson.internal.bind.TypeAdapters;
20-
import com.google.gson.stream.JsonReader;
21-
import com.google.gson.stream.JsonToken;
22-
import com.google.gson.stream.JsonWriter;
23-
24-
import java.io.IOException;
13+
import com.eveningoutpost.dexdrip.utils.framework.RetrofitService;
14+
2515
import java.util.List;
2616

27-
import okhttp3.OkHttpClient;
2817
import okhttp3.ResponseBody;
29-
import okhttp3.logging.HttpLoggingInterceptor;
3018
import retrofit2.Call;
31-
import retrofit2.Retrofit;
32-
import retrofit2.converter.gson.GsonConverterFactory;
3319
import retrofit2.http.GET;
3420
import retrofit2.http.Header;
3521
import retrofit2.http.Headers;
3622
import retrofit2.http.Query;
3723

3824
import static com.eveningoutpost.dexdrip.models.JoH.emptyString;
3925
import static com.eveningoutpost.dexdrip.utilitymodels.BgGraphBuilder.DEXCOM_PERIOD;
40-
import static com.eveningoutpost.dexdrip.utilitymodels.OkHttpWrapper.enableTls12OnPreLollipop;
4126
import static com.eveningoutpost.dexdrip.cgm.nsfollow.NightscoutFollowService.msg;
4227

4328
/**
@@ -52,7 +37,6 @@ public class NightscoutFollow {
5237

5338
private static final boolean D = true;
5439

55-
private static Retrofit retrofit;
5640
private static Nightscout service;
5741

5842

@@ -71,7 +55,7 @@ public interface Nightscout {
7155
private static Nightscout getService() {
7256
if (service == null) {
7357
try {
74-
service = getRetrofitInstance().create(Nightscout.class);
58+
service = RetrofitService.getRetrofitInstance(getUrl(), TAG, D).create(Nightscout.class);
7559
} catch (NullPointerException e) {
7660
UserError.Log.e(TAG, "Null pointer trying to getService()");
7761
}
@@ -142,72 +126,8 @@ static boolean treatmentDownloadEnabled() {
142126
return Pref.getBooleanDefaultFalse("nsfollow_download_treatments");
143127
}
144128

145-
public static final TypeAdapter<Number> UNRELIABLE_INTEGER = new TypeAdapter<Number>() {
146-
@Override
147-
public Number read(JsonReader in) throws IOException {
148-
JsonToken jsonToken = in.peek();
149-
switch (jsonToken) {
150-
case NUMBER:
151-
case STRING:
152-
String s = in.nextString();
153-
try {
154-
return Integer.parseInt(s);
155-
} catch (NumberFormatException ignored) {
156-
}
157-
try {
158-
return (int)Double.parseDouble(s);
159-
} catch (NumberFormatException ignored) {
160-
}
161-
return null;
162-
case NULL:
163-
in.nextNull();
164-
return null;
165-
case BOOLEAN:
166-
in.nextBoolean();
167-
return null;
168-
default:
169-
throw new JsonSyntaxException("Expecting number, got: " + jsonToken);
170-
}
171-
}
172-
@Override
173-
public void write(JsonWriter out, Number value) throws IOException {
174-
out.value(value);
175-
}
176-
};
177-
public static final TypeAdapterFactory UNRELIABLE_INTEGER_FACTORY = TypeAdapters.newFactory(int.class, Integer.class, UNRELIABLE_INTEGER);
178-
179-
// TODO make reusable
180-
public static Retrofit getRetrofitInstance() throws IllegalArgumentException {
181-
if (retrofit == null) {
182-
final String url = getUrl();
183-
if (emptyString(url)) {
184-
UserError.Log.d(TAG, "Empty url - cannot create instance");
185-
return null;
186-
}
187-
final HttpLoggingInterceptor httpLoggingInterceptor = new HttpLoggingInterceptor();
188-
if (D) {
189-
httpLoggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
190-
}
191-
final OkHttpClient client = enableTls12OnPreLollipop(new OkHttpClient.Builder())
192-
.addInterceptor(httpLoggingInterceptor)
193-
.addInterceptor(new InfoInterceptor(TAG))
194-
.addInterceptor(new GzipRequestInterceptor())
195-
.build();
196-
197-
final Gson gson = new GsonBuilder()
198-
.registerTypeAdapterFactory(UNRELIABLE_INTEGER_FACTORY)
199-
.create();
200-
retrofit = new retrofit2.Retrofit.Builder()
201-
.baseUrl(url)
202-
.client(client)
203-
.addConverterFactory(GsonConverterFactory.create(gson))
204-
.build();
205-
}
206-
return retrofit;
207-
}
208-
209129
public static void resetInstance() {
210-
retrofit = null;
130+
RetrofitService.remove(getUrl(), TAG, D);
211131
service = null;
212132
UserError.Log.d(TAG, "Instance reset");
213133
CollectionServiceStarter.restartCollectionServiceBackground();

app/src/main/java/com/eveningoutpost/dexdrip/cgm/nsfollow/Session.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.eveningoutpost.dexdrip.cgm.nsfollow.messages.Entry;
44
import com.eveningoutpost.dexdrip.cgm.nsfollow.utils.NightscoutUrl;
5+
import com.eveningoutpost.dexdrip.utils.framework.RetrofitService.BaseCallback;
56

67
import java.util.List;
78

app/src/main/java/com/eveningoutpost/dexdrip/cgm/sharefollow/ShareFollowCallback.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.eveningoutpost.dexdrip.cgm.sharefollow;
22

3-
import com.eveningoutpost.dexdrip.cgm.nsfollow.BaseCallback;
3+
import com.eveningoutpost.dexdrip.utils.framework.RetrofitService.BaseCallback;
44

55
import retrofit2.Call;
66
import retrofit2.Response;

0 commit comments

Comments
 (0)