Update a bunch of libraries.
- The project had been stale for a couple of months, so a lot of libraries were outdated. I updated most of the outdated libraries and verified everything kept working correctly. - Simplified the ServiceGenerator, removing some stuff that is not used.
This commit is contained in:
parent
1e75e369dc
commit
2b4b520c5d
2 changed files with 23 additions and 55 deletions
|
@ -59,7 +59,7 @@ android {
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
def lifecycle_version = "2.0.0"
|
def lifecycle_version = "2.0.0"
|
||||||
def room_version = "2.1.0-alpha07"
|
def room_version = "2.1.0"
|
||||||
def rx_bindings_version = "3.0.0-alpha2"
|
def rx_bindings_version = "3.0.0-alpha2"
|
||||||
|
|
||||||
implementation fileTree(dir: 'libs', include: ['*.jar'])
|
implementation fileTree(dir: 'libs', include: ['*.jar'])
|
||||||
|
@ -67,16 +67,16 @@ dependencies {
|
||||||
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
|
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
|
||||||
// AndroidX
|
// AndroidX
|
||||||
implementation 'androidx.appcompat:appcompat:1.0.2'
|
implementation 'androidx.appcompat:appcompat:1.0.2'
|
||||||
implementation 'androidx.constraintlayout:constraintlayout:2.0.0-alpha4'
|
implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta2'
|
||||||
// Google
|
// Google
|
||||||
implementation 'com.google.zxing:core:3.3.1'
|
implementation 'com.google.zxing:core:3.3.3'
|
||||||
implementation 'com.google.code.gson:gson:2.8.5'
|
implementation 'com.google.code.gson:gson:2.8.5'
|
||||||
implementation 'com.google.android.material:material:1.1.0-alpha04'
|
implementation 'com.google.android.material:material:1.1.0-alpha04'
|
||||||
implementation 'com.google.android.gms:play-services-maps:16.1.0'
|
implementation 'com.google.android.gms:play-services-maps:17.0.0'
|
||||||
implementation 'com.google.maps.android:android-maps-utils:0.5'
|
implementation 'com.google.maps.android:android-maps-utils:0.5'
|
||||||
// AAC Lifecycle
|
// AAC Lifecycle
|
||||||
implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version"
|
implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version"
|
||||||
kapt "androidx.lifecycle:lifecycle-compiler:$lifecycle_version"
|
implementation "androidx.lifecycle:lifecycle-common-java8:$lifecycle_version"
|
||||||
// AAC Room
|
// AAC Room
|
||||||
implementation "androidx.room:room-runtime:$room_version"
|
implementation "androidx.room:room-runtime:$room_version"
|
||||||
kapt "androidx.room:room-compiler:$room_version"
|
kapt "androidx.room:room-compiler:$room_version"
|
||||||
|
@ -87,21 +87,20 @@ dependencies {
|
||||||
// Kotlin Coroutines
|
// Kotlin Coroutines
|
||||||
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$version_coroutine"
|
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$version_coroutine"
|
||||||
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$version_coroutine"
|
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$version_coroutine"
|
||||||
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.1.0-alpha04"
|
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0-alpha03"
|
||||||
// RxBindings
|
// RxBindings
|
||||||
implementation "com.jakewharton.rxbinding3:rxbinding:$rx_bindings_version"
|
implementation "com.jakewharton.rxbinding3:rxbinding:$rx_bindings_version"
|
||||||
implementation "com.jakewharton.rxbinding3:rxbinding-material:$rx_bindings_version" // Material Components widgets
|
implementation "com.jakewharton.rxbinding3:rxbinding-material:$rx_bindings_version" // Material Components widgets
|
||||||
implementation "com.jakewharton.rxbinding3:rxbinding-appcompat:$rx_bindings_version" // AndroidX appcompat widgets
|
implementation "com.jakewharton.rxbinding3:rxbinding-appcompat:$rx_bindings_version" // AndroidX appcompat widgets
|
||||||
// Retrofit & OkHttp
|
// Retrofit & OkHttp
|
||||||
implementation 'com.squareup.retrofit2:retrofit:2.5.0'
|
implementation 'com.squareup.retrofit2:retrofit:2.6.0'
|
||||||
implementation 'com.squareup.retrofit2:converter-gson:2.5.0'
|
implementation 'com.squareup.retrofit2:converter-gson:2.6.0'
|
||||||
implementation 'com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0'
|
implementation 'com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0'
|
||||||
implementation 'com.squareup.okhttp3:okhttp:3.12.0'
|
implementation 'com.squareup.okhttp3:okhttp:3.12.2'
|
||||||
implementation 'com.squareup.okhttp3:logging-interceptor:3.8.0'
|
implementation 'com.squareup.okhttp3:logging-interceptor:3.12.2'
|
||||||
//Firebase
|
//Firebase
|
||||||
implementation 'com.google.firebase:firebase-core:16.0.8'
|
implementation 'com.google.firebase:firebase-core:17.1.0'
|
||||||
implementation 'com.google.firebase:firebase-crash:16.2.1'
|
implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1'
|
||||||
implementation 'com.crashlytics.sdk.android:crashlytics:2.9.9'
|
|
||||||
// PDF and CSV generation
|
// PDF and CSV generation
|
||||||
implementation 'com.itextpdf:itextpdf:5.5.13'
|
implementation 'com.itextpdf:itextpdf:5.5.13'
|
||||||
implementation 'com.opencsv:opencsv:3.7'
|
implementation 'com.opencsv:opencsv:3.7'
|
||||||
|
@ -117,12 +116,12 @@ dependencies {
|
||||||
|
|
||||||
// Testing libs
|
// Testing libs
|
||||||
testImplementation 'junit:junit:4.12'
|
testImplementation 'junit:junit:4.12'
|
||||||
androidTestImplementation 'androidx.test:core:1.1.0'
|
androidTestImplementation 'androidx.test:core:1.2.0'
|
||||||
|
|
||||||
androidTestImplementation "androidx.arch.core:core-testing:$lifecycle_version"
|
androidTestImplementation "androidx.arch.core:core-testing:$lifecycle_version"
|
||||||
androidTestImplementation "androidx.room:room-testing:$room_version"
|
androidTestImplementation "androidx.room:room-testing:$room_version"
|
||||||
androidTestImplementation 'androidx.test.ext:junit:1.1.0'
|
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
|
||||||
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
|
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
|
||||||
androidTestImplementation 'com.jraska.livedata:testing-ktx:1.0.0'
|
androidTestImplementation 'com.jraska.livedata:testing-ktx:1.0.0'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -5,53 +5,34 @@ import com.google.gson.GsonBuilder;
|
||||||
import com.jakewharton.retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory;
|
import com.jakewharton.retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory;
|
||||||
import cy.agorise.bitsybitshareswallet.models.coingecko.MarketData;
|
import cy.agorise.bitsybitshareswallet.models.coingecko.MarketData;
|
||||||
import cy.agorise.bitsybitshareswallet.models.coingecko.MarketDataDeserializer;
|
import cy.agorise.bitsybitshareswallet.models.coingecko.MarketDataDeserializer;
|
||||||
import okhttp3.Interceptor;
|
|
||||||
import okhttp3.OkHttpClient;
|
import okhttp3.OkHttpClient;
|
||||||
import okhttp3.logging.HttpLoggingInterceptor;
|
import okhttp3.logging.HttpLoggingInterceptor;
|
||||||
import retrofit2.Retrofit;
|
import retrofit2.Retrofit;
|
||||||
import retrofit2.converter.gson.GsonConverterFactory;
|
import retrofit2.converter.gson.GsonConverterFactory;
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.concurrent.Executor;
|
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
public class ServiceGenerator{
|
public class ServiceGenerator{
|
||||||
public static String API_BASE_URL;
|
|
||||||
private static HttpLoggingInterceptor logging;
|
|
||||||
private static OkHttpClient.Builder httpClient;
|
private static OkHttpClient.Builder httpClient;
|
||||||
private static Retrofit.Builder builder;
|
private static Retrofit.Builder builder;
|
||||||
|
|
||||||
private static HashMap<Class<?>, Object> Services;
|
private static HashMap<Class<?>, Object> Services = new HashMap<>();
|
||||||
|
|
||||||
public ServiceGenerator(String apiBaseUrl, Gson gson) {
|
private ServiceGenerator(String apiBaseUrl, Gson gson) {
|
||||||
API_BASE_URL= apiBaseUrl;
|
HttpLoggingInterceptor logging = new HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BODY);
|
||||||
logging = new HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BODY);
|
|
||||||
httpClient = new OkHttpClient.Builder().addInterceptor(logging);
|
httpClient = new OkHttpClient.Builder().addInterceptor(logging);
|
||||||
builder = new Retrofit.Builder()
|
builder = new Retrofit.Builder()
|
||||||
.baseUrl(API_BASE_URL)
|
.baseUrl(apiBaseUrl)
|
||||||
.addConverterFactory(GsonConverterFactory.create(gson))
|
.addConverterFactory(GsonConverterFactory.create(gson))
|
||||||
.addCallAdapterFactory(RxJava2CallAdapterFactory.create());
|
.addCallAdapterFactory(RxJava2CallAdapterFactory.create());
|
||||||
Services = new HashMap<Class<?>, Object>();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public ServiceGenerator(String apiBaseUrl){
|
public ServiceGenerator(String apiBaseUrl){
|
||||||
this(apiBaseUrl, new Gson());
|
this(apiBaseUrl, new Gson());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
private static <T> void setService(Class<T> klass, T thing) {
|
||||||
* Customizes the Gson instance with specific de-serialization logic
|
|
||||||
*/
|
|
||||||
private Gson getGson(){
|
|
||||||
GsonBuilder builder = new GsonBuilder();
|
|
||||||
return builder.create();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCallbackExecutor(Executor executor){
|
|
||||||
builder.callbackExecutor(executor);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static <T> void setService(Class<T> klass, T thing) {
|
|
||||||
Services.put(klass, thing);
|
Services.put(klass, thing);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -65,21 +46,9 @@ public class ServiceGenerator{
|
||||||
return service;
|
return service;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static <S> S createService(Class<S> serviceClass) {
|
private static <S> S createService(Class<S> serviceClass) {
|
||||||
|
httpClient.readTimeout(15, TimeUnit.SECONDS);
|
||||||
httpClient.interceptors().add(new Interceptor() {
|
httpClient.connectTimeout(15, TimeUnit.SECONDS);
|
||||||
@Override
|
|
||||||
public okhttp3.Response intercept(Interceptor.Chain chain) throws IOException {
|
|
||||||
okhttp3.Request original = chain.request();
|
|
||||||
// Request customization: add request headers
|
|
||||||
okhttp3.Request.Builder requestBuilder = original.newBuilder().method(original.method(), original.body());
|
|
||||||
|
|
||||||
okhttp3.Request request = requestBuilder.build();
|
|
||||||
return chain.proceed(request);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
httpClient.readTimeout(5, TimeUnit.MINUTES);
|
|
||||||
httpClient.connectTimeout(5, TimeUnit.MINUTES);
|
|
||||||
OkHttpClient client = httpClient.build();
|
OkHttpClient client = httpClient.build();
|
||||||
if(serviceClass == CoingeckoService.class){
|
if(serviceClass == CoingeckoService.class){
|
||||||
// The MarketData class needs a custom de-serializer
|
// The MarketData class needs a custom de-serializer
|
||||||
|
|
Loading…
Reference in a new issue