86 lines
3.0 KiB
Java
86 lines
3.0 KiB
Java
package ch.pizzalemon.android;
|
|
|
|
import androidx.multidex.MultiDexApplication;
|
|
import com.onesignal.OneSignal;
|
|
import com.squareup.picasso.OkHttp3Downloader;
|
|
import com.squareup.picasso.Picasso;
|
|
|
|
import java.security.SecureRandom;
|
|
|
|
import javax.net.ssl.SSLContext;
|
|
import javax.net.ssl.TrustManager;
|
|
|
|
import ch.pizzalemon.android.api.ApiConstants;
|
|
import ch.pizzalemon.android.api.SSLTrustManager;
|
|
import io.github.inflationx.calligraphy3.CalligraphyConfig;
|
|
import io.github.inflationx.calligraphy3.CalligraphyInterceptor;
|
|
import io.github.inflationx.viewpump.ViewPump;
|
|
import okhttp3.Cache;
|
|
import okhttp3.OkHttpClient;
|
|
import okhttp3.logging.HttpLoggingInterceptor;
|
|
|
|
/**
|
|
* Created by cimenmus on 11/09/2017.
|
|
*/
|
|
|
|
public class App extends MultiDexApplication {
|
|
|
|
@Override
|
|
public void onCreate() {
|
|
super.onCreate();
|
|
initCalligraphy();
|
|
initPicasso();
|
|
initOneSignal();
|
|
}
|
|
|
|
private void initCalligraphy(){
|
|
ViewPump.init(ViewPump.builder()
|
|
.addInterceptor(new CalligraphyInterceptor(
|
|
new CalligraphyConfig.Builder()
|
|
.setDefaultFontPath("fonts/Quicksand-Regular.ttf")
|
|
.setFontAttrId(R.attr.fontPath)
|
|
.build()))
|
|
.build());
|
|
}
|
|
|
|
private void initPicasso(){
|
|
|
|
HttpLoggingInterceptor logging = new HttpLoggingInterceptor();
|
|
logging.setLevel(HttpLoggingInterceptor.Level.BODY);
|
|
|
|
OkHttpClient.Builder builder = new OkHttpClient.Builder()
|
|
.cache(new Cache(getCacheDir(), 48 * 1024 * 1024))
|
|
.connectTimeout(ApiConstants.API_CONNECT_TIMEOUT, java.util.concurrent.TimeUnit.SECONDS)
|
|
.readTimeout(ApiConstants.API_READ_TIMEOUT, java.util.concurrent.TimeUnit.SECONDS)
|
|
.retryOnConnectionFailure(true)
|
|
.addInterceptor(logging);
|
|
addSSLTrustToOkHttp(builder);
|
|
|
|
OkHttpClient okHttpClient = builder.build();
|
|
OkHttp3Downloader okHttp3Downloader = new OkHttp3Downloader(okHttpClient);
|
|
|
|
Picasso picasso = new Picasso.Builder(this)
|
|
.downloader(okHttp3Downloader)
|
|
.build();
|
|
Picasso.setSingletonInstance(picasso);
|
|
}
|
|
|
|
private void initOneSignal(){
|
|
OneSignal.initWithContext(this);
|
|
OneSignal.setAppId(ApiConstants.ONESIGNAL_APP_ID);
|
|
OneSignal.unsubscribeWhenNotificationsAreDisabled(true);
|
|
}
|
|
|
|
private void addSSLTrustToOkHttp(OkHttpClient.Builder okHttpClientBuilder) {
|
|
try {
|
|
TrustManager[] trustAllCerts = new TrustManager[]{new SSLTrustManager()};
|
|
SSLContext sslContext = SSLContext.getInstance("SSL");
|
|
sslContext.init(null, trustAllCerts, new SecureRandom());
|
|
HttpLoggingInterceptor logging = new HttpLoggingInterceptor();
|
|
logging.setLevel(HttpLoggingInterceptor.Level.BODY);
|
|
okHttpClientBuilder.sslSocketFactory(sslContext.getSocketFactory());
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
} |