Files
Pizzalemon/app/src/main/java/ch/pizzalemon/android/App.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();
}
}
}