mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-13 11:19:04 +01:00
91 lines
2.9 KiB
Java
91 lines
2.9 KiB
Java
package org.briarproject.android;
|
|
|
|
import android.app.Application;
|
|
import android.content.Context;
|
|
|
|
import org.acra.ACRA;
|
|
import org.acra.ReportingInteractionMode;
|
|
import org.acra.annotation.ReportsCrashes;
|
|
import org.briarproject.CoreModule;
|
|
import org.briarproject.R;
|
|
import org.briarproject.android.report.BriarReportPrimer;
|
|
import org.briarproject.android.report.BriarReportSenderFactory;
|
|
import org.briarproject.android.report.DevReportActivity;
|
|
|
|
import java.util.logging.Logger;
|
|
|
|
import static org.acra.ReportField.ANDROID_VERSION;
|
|
import static org.acra.ReportField.APP_VERSION_CODE;
|
|
import static org.acra.ReportField.APP_VERSION_NAME;
|
|
import static org.acra.ReportField.BRAND;
|
|
import static org.acra.ReportField.BUILD_CONFIG;
|
|
import static org.acra.ReportField.CRASH_CONFIGURATION;
|
|
import static org.acra.ReportField.CUSTOM_DATA;
|
|
import static org.acra.ReportField.DEVICE_FEATURES;
|
|
import static org.acra.ReportField.DISPLAY;
|
|
import static org.acra.ReportField.INITIAL_CONFIGURATION;
|
|
import static org.acra.ReportField.LOGCAT;
|
|
import static org.acra.ReportField.PACKAGE_NAME;
|
|
import static org.acra.ReportField.PHONE_MODEL;
|
|
import static org.acra.ReportField.PRODUCT;
|
|
import static org.acra.ReportField.REPORT_ID;
|
|
import static org.acra.ReportField.STACK_TRACE;
|
|
import static org.acra.ReportField.USER_APP_START_DATE;
|
|
import static org.acra.ReportField.USER_CRASH_DATE;
|
|
|
|
@ReportsCrashes(
|
|
reportPrimerClass = BriarReportPrimer.class,
|
|
logcatArguments = {"-d", "-v", "time", "*:I"},
|
|
reportSenderFactoryClasses = {BriarReportSenderFactory.class},
|
|
mode = ReportingInteractionMode.DIALOG,
|
|
reportDialogClass = DevReportActivity.class,
|
|
resDialogOkToast = R.string.dev_report_saved,
|
|
deleteOldUnsentReportsOnApplicationStart = false,
|
|
customReportContent = {
|
|
REPORT_ID,
|
|
APP_VERSION_CODE, APP_VERSION_NAME, PACKAGE_NAME,
|
|
PHONE_MODEL, ANDROID_VERSION, BRAND, PRODUCT,
|
|
BUILD_CONFIG,
|
|
CUSTOM_DATA,
|
|
STACK_TRACE,
|
|
INITIAL_CONFIGURATION, CRASH_CONFIGURATION,
|
|
DISPLAY, DEVICE_FEATURES,
|
|
USER_APP_START_DATE, USER_CRASH_DATE,
|
|
LOGCAT
|
|
}
|
|
)
|
|
public class BriarApplicationImpl extends Application
|
|
implements BriarApplication {
|
|
|
|
private static final Logger LOG =
|
|
Logger.getLogger(BriarApplicationImpl.class.getName());
|
|
|
|
private AndroidComponent applicationComponent;
|
|
|
|
@Override
|
|
protected void attachBaseContext(Context base) {
|
|
super.attachBaseContext(base);
|
|
ACRA.init(this);
|
|
}
|
|
|
|
@Override
|
|
public void onCreate() {
|
|
super.onCreate();
|
|
LOG.info("Created");
|
|
|
|
applicationComponent = DaggerAndroidComponent.builder()
|
|
.appModule(new AppModule(this))
|
|
.build();
|
|
|
|
// We need to load the eager singletons directly after making the
|
|
// dependency graphs
|
|
CoreModule.initEagerSingletons(applicationComponent);
|
|
AndroidEagerSingletons.initEagerSingletons(applicationComponent);
|
|
}
|
|
|
|
@Override
|
|
public AndroidComponent getApplicationComponent() {
|
|
return applicationComponent;
|
|
}
|
|
}
|