package com.arcao.trackables;
import android.app.Application;
import android.content.Context;
import android.content.pm.PackageManager;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.widget.ImageView;
import com.arcao.trackables.internal.di.component.AppComponent;
import com.arcao.trackables.preference.PreferenceHelper;
import com.arcao.trackables.ui.util.picasso.CropSquareTransformation;
import com.mikepenz.materialdrawer.util.DrawerImageLoader;
import com.squareup.picasso.Picasso;
import javax.inject.Inject;
import timber.log.Timber;
public class App extends Application {
private AppComponent component;
@Inject
protected PreferenceHelper preferenceHelper;
@Inject
protected Picasso picasso;
@Override
public void onCreate() {
super.onCreate();
if (BuildConfig.DEBUG) {
Timber.plant(new Timber.DebugTree());
} else {
// TODO Crashlytics.start(this);
// TODO Timber.plant(new CrashlyticsTree());
}
component().inject(this);
//initialize and create the image loader logic
DrawerImageLoader.init(new DrawerImageLoader.IDrawerImageLoader() {
@Override
public void set(ImageView imageView, Uri uri, Drawable placeholder) {
picasso.load(uri).placeholder(placeholder).transform(new CropSquareTransformation()).into(imageView);
}
@Override
public void cancel(ImageView imageView) {
picasso.cancelRequest(imageView);
}
@Override
public Drawable placeholder(Context context) {
return null;
}
});
}
public AppComponent component() {
if (component == null) {
component = AppComponent.Initializer.init(this);
}
return component;
}
public static App get(Context context) {
return (App) context.getApplicationContext();
}
public String getVersion() {
try {
return getPackageManager().getPackageInfo(getPackageName(), 0).versionName;
} catch (PackageManager.NameNotFoundException e) {
Timber.e(e, e.getMessage());
return "1.0";
}
}
public String getDeviceId() {
return preferenceHelper.getDeviceId();
}
}