1010import com .eveningoutpost .dexdrip .cgm .nsfollow .messages .Entry ;
1111import com .eveningoutpost .dexdrip .cgm .nsfollow .utils .NightscoutUrl ;
1212import 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+
2515import java .util .List ;
2616
27- import okhttp3 .OkHttpClient ;
2817import okhttp3 .ResponseBody ;
29- import okhttp3 .logging .HttpLoggingInterceptor ;
3018import retrofit2 .Call ;
31- import retrofit2 .Retrofit ;
32- import retrofit2 .converter .gson .GsonConverterFactory ;
3319import retrofit2 .http .GET ;
3420import retrofit2 .http .Header ;
3521import retrofit2 .http .Headers ;
3622import retrofit2 .http .Query ;
3723
3824import static com .eveningoutpost .dexdrip .models .JoH .emptyString ;
3925import static com .eveningoutpost .dexdrip .utilitymodels .BgGraphBuilder .DEXCOM_PERIOD ;
40- import static com .eveningoutpost .dexdrip .utilitymodels .OkHttpWrapper .enableTls12OnPreLollipop ;
4126import 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 ();
0 commit comments